MovementComponent

RigidbodyComponent, KinematicbodyComponent, SideviewbodyComponent를 제어하기 위한 이동 관련 기능을 제공합니다. 점프력과 속력을 간단하게 수정할 수 있습니다.

# Properties

[{"index":"float InputSpeed (Sync)","0":"이동 속력을 설정합니다. 값이 클수록 이동 속력이 빨라집니다.\- RigidbodyComponent가 true인 경우 좌우의 속력이 변경됩니다.\- KinematicMove가 true인 경우 상하좌우의 속력이 변경됩니다.\- KinamaticbodyComponent가 true인 경우 상하좌우 속력이 변경됩니다.\- SideviewbodyComponent가 true인 경우 좌우 속력이 변경됩니다."}]

[{"index":"boolean IsClimbPaused (Sync) (ReadOnly) (HideFromInspector)","0":"등반 도중 멈춘 상태인지를 확인합니다."}]

[{"index":"float JumpForce (Sync)","0":"점프 힘을 설정합니다. 값이 클수록 높게 점프합니다."}]

##### 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":"boolean DownJump()","0":"아래로 점프합니다. 아래 점프 성공 여부를 반환합니다."}]

[{"index":"float GetClimbableHeight()","0":"캐릭터가 사다리나 로프에 오를 수 있는 상호작용 높이를 반환합니다.이 값은 캐릭터의 Y축 스케일에 비례하며 PlaycerControllerComponent:ActionClimb method의 climbHeight 매개 변수로 사용하기를 권장합니다."}]

[{"index":"boolean IsFaceLeft()","0":"Entity가 왼쪽으로 향하는지 여부를 반환합니다."}]

[{"index":"boolean Jump()","0":"점프합니다. 점프 성공 여부를 반환합니다."}]

[{"index":"void MoveToDirection(Vector2 direction, float deltaTime)","0":"direction 방향으로 이동합니다. deltaTime은 사다리를 타고 있을 때만 적용되며, 초 단위입니다."}]

[{"index":"void SetPosition(Vector2 position)","0":"로컬 좌표 기준으로 엔티티의 위치를 설정합니다."}]

[{"index":"void SetWorldPosition(Vector2 position)","0":"월드 좌표 기준으로 엔티티의 위치를 설정합니다."}]

[{"index":"void Stop()","0":"이동을 멈춥니다."}]

[{"index":"void UpdateClimbableOffset()","0":"캐릭터가 사다리나 로프를 오르는 동안 ClimbableComponent와의 상대 오프셋을 업데이트합니다.PlayerControllerComponent의 커스텀 스크립트를 구현할 때 사용합니다."}]

##### inherited from Component:

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

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

# Events

[{"index":"ChangedMovementInputEvent","0":"MovementComponent에서 이동 입력이 변경될 때 발생합니다."}]

[{"index":"ClimbPauseEvent","0":"물체를 타고 오르다 멈췄을 때 발생하는 이벤트입니다."}]

# Examples

플레이어가 왼쪽을 바라보면 키 입력이 없어도 움직임이 시작됩니다, 또한 특정 엔티티에게 닿으면 점프 높이가 조절되고 점프하며 멈추는 행동을 하는 예제입니다.
    
    
    @Component
    script ObstacleCourseController extends Component
        @ExecSpace("ClientOnly")
        method void OnUpdate(number delta)
        if self.IsFinished then
        	-- 입력에 의한 이동도 불가능
        	self.Entity.MovementComponent:Stop() 
        	return
        end
    
        if self.IsStarted == false and self.Entity.MovementComponent:IsFaceLeft() then
        	self.IsStarted = true
        end
    
        if self.IsStarted == false then
        	return
        end
    
        self.Entity.MovementComponent:MoveToDirection(Vector2(1,0), delta)
        end
    
        @ExecSpace("ClientOnly")
        @EventSender("Self")
        handler HandleTriggerEnterEvent(TriggerEnterEvent event)
        -- Parameters
        local TriggerBodyEntity = event.TriggerBodyEntity
        --------------------------------------------------------
    
        if TriggerBodyEntity.Name == "Name" then
        	self.Entity.MovementComponent.JumpForce = 1.5
        	self.Entity.MovementComponent:Jump()
        elseif TriggerBodyEntity.Name == "Name" then
        	self.Entity.MovementComponent:DownJump()
        elseif TriggerBodyEntity.Name == "Name" then
        	self.IsFinished = true
        end
        end
    end
    

# SeeAlso

  * TriggerEnterEvent
  * [MovementComponent를 활용한 엔티티의 이동 제어](/docs?postId=546)