TransformComponent

엔티티의 위치, 회전, 크기를 나타냅니다.

# Properties

[{"index":"Vector3 Position (Sync)","0":"엔티티의 부모를 기준으로 좌표를 나타냅니다."}]

[{"index":"Quaternion QuaternionRotation (Sync) (HideFromInspector)","0":"엔티티의 회전 값을 Quaternion으로 나타냅니다."}]

[{"index":"Vector3 Rotation","0":"엔티티의 회전 값을 오일러 각으로 나타냅니다. 2차원에서는 Z축을 이용하여 회전할 수 있습니다. QuaternitonRotation에 의해 동기화됩니다."}]

[{"index":"Vector3 Scale (Sync)","0":"엔티티의 크기 비율을 나타냅니다."}]

[{"index":"Vector3 WorldPosition","0":"엔티티의 월드 기준 좌표를 나타냅니다."}]

[{"index":"Vector3 WorldRotation (HideFromInspector)","0":"엔티티의 월드 기준 회전 값을 오일러 각으로 나타냅니다."}]

[{"index":"float WorldZRotation","0":"엔티티의 월드 기준 오일러 각 회전 값 중 Z축의 값을 나타냅니다."}]

[{"index":"float ZRotation","0":"엔티티의 오일러 각 회전 값 중 Z축의 값을 나타냅니다."}]

##### inherited from Component:

[{"index":"boolean Enable (Sync)","0":"컴포넌트 활성화 여부를 확인합니다."}]

[{"index":"boolean EnableInHierarchy (ReadOnly) (HideFromInspector)","0":"계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니다. Enable이 true일지라도 엔티티의 Enable이 false라면 false를 반환합니다."}]

[{"index":"Entity Entity (ReadOnly)","0":"이 컴포넌트를 소유한 엔티티입니다."}]

# Methods

[{"index":"FastVector3 PositionAsFastVector3()","0":"Position값을 FastVector3 타입으로 반환합니다."}]

[{"index":"void Rotate(float angle)","0":"이 엔티티를 angle만큼 반시계 방향으로 회전시킵니다."}]

[{"index":"Vector3 ToLocalDirection(Vector3 worldDirection)","0":"입력 받은 방향을 월드 좌표에서 로컬 좌표로 변환합니다. Scale과 Position에 영향을 받지 않습니다."}]

[{"index":"Vector3 ToLocalPoint(Vector3 worldPoint)","0":"입력 받은 월드 좌표를 로컬 좌표로 변환합니다. Scale에 영향을 받습니다."}]

[{"index":"Vector3 ToWorldDirection(Vector3 localDirection)","0":"입력 받은 방향을 로컬 좌표에서 월드 좌표로 변환합니다. Scale과 Position에 영향을 받지 않습니다."}]

[{"index":"Vector3 ToWorldPoint(Vector3 localPoint)","0":"입력 받은 로컬 좌표를 월드 좌표로 변환합니다. Scale에 영향을 받습니다."}]

[{"index":"void Translate(float deltaX, float deltaY)","0":"이 엔티티의 좌표를 deltaX, deltaY만큼 이동시킵니다."}]

[{"index":"FastVector3 WorldPositionAsFastVector3()","0":"WorldPosition 값을 FastVector3 타입으로 반환합니다."}]

##### inherited from Component:

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

# Examples

다음은 `ZRotation` 프로퍼티를 이용해 Entity를 일정한 속력으로 회전시키는 예제입니다.
    
    
    @Component
    script Spinner extends Component
        property number AngularSpeed = 360
    
        @ExecSpace("ServerOnly")
        method void OnUpdate(number delta)
        local transform = self.Entity.TransformComponent
        local zRotation = transform.ZRotation
    
        transform.ZRotation = zRotation + (self.AngularSpeed * delta)
        end
    end
    

동일한 동작을 하는 코드를 `Rotate` 함수를 이용해 작성하면 다음과 같습니다.
    
    
    @Component
    script EntityRotator extends Component
        property number AngularSpeed = 360
    
        @ExecSpace("ServerOnly")
        method void OnUpdate(number delta)
        local transform = self.Entity.TransformComponent
    
        transform:Rotate(self.AngularSpeed * delta)	
        end
    end
    

다음은 엔티티를 자유낙하 시키는 예제입니다. `Translate` 함수와 `delta`를 이용해 Entity를 현재 속도만큼 이동시킵니다.
    
    
    @Component
    script GravityMovement extends Component
        property Vector2 Gravity = Vector2(0,-9.8)
        @Sync
        property Vector2 CurrentVelocity = Vector2(0,0)
    
        @ExecSpace("ServerOnly")
        method void OnUpdate(number delta)
        local transform = self.Entity.TransformComponent
    
        self.CurrentVelocity = self.CurrentVelocity + (self.Gravity * delta)
    
        local deltaX = self.CurrentVelocity.x * delta
        local deltaY = self.CurrentVelocity.y * delta
    
        transform:Translate(deltaX, deltaY)
        end
    end
    

# SeeAlso

  * Vector2
  * [엔티티의 위치, 크기, 회전 조정](/docs?postId=82)