control scheme
컨트롤러에 대한 분류를 추가하는 것
액션
무브, 룩 , 파이어 등 액션 단위
맵단위는 바꿔 줄 수 있는 그런 부분들인데
바인딩을 바꿀 수 있는데
액션은 좀 다르다? 무슨 말일까?
왼쪽오른쪽위아래 이건 벡터2로 표현할 수 있는 것이다
사실 왼쪽 키 하나 누른다고 투디 벡터가 되지는 않고 왼쪽 오른쪽 하나, 위 아래 하나 이렇게 두개를 합쳐서 투디벡터를 만드는 것이다. 두개의 축을 컴포짓해서 만드는 것이다.
Look의 경우 마우스의 위치 그 자체가 투디 벡터이다. 업다운같은 경우는 하나씩 하나씩 (안들림)인데 마우스 포인터는 그 자체로 투디 이기 때문에
유니티에서 왼쪽 키를 누를 때 캐릭터가 왼쪽으로 이동하기까지의 메서드 실행 순서는 다음과 같습니다:
Input System 처리: 유니티의 새 Input System에서는 사용자의 입력(여기서는 왼쪽 키)을 감지합니다. 이것은 PlayerInputController 클래스의 OnMove 메서드를 트리거합니다.
OnMove 메서드 실행: PlayerInputController 클래스에서 OnMove 메서드가 호출됩니다. 이 메서드 내에서, 입력 값을 Vector2 타입으로 변환하고 정규화하여 moveInput 변수에 저장합니다. 이 변수는 이동 방향을 나타냅니다.
CallMoveEvent 호출: OnMove 메서드 내에서 CallMoveEvent(moveInput)이 호출됩니다. CallMoveEvent 메서드는 OnMoveEvent 이벤트를 발생시키는 역할을 합니다.
OnMoveEvent 이벤트 트리거: TopDownController에 정의된 OnMoveEvent 이벤트가 CallMoveEvent 메서드를 통해 트리거됩니다. 이 이벤트는 TopDownMovement 클래스에서 구독하고 있습니다.
Move 메서드 실행: TopDownMovement 클래스에서 controller.OnMoveEvent += Move; 코드 라인을 통해 OnMoveEvent 이벤트에 Move 메서드가 연결되어 있습니다. 따라서, OnMoveEvent 이벤트가 트리거되면 Move 메서드가 호출됩니다. Move 메서드는 입력된 이동 방향을 movementDirection 변수에 저장합니다.
FixedUpdate 메서드 실행: 유니티 엔진은 물리 업데이트를 처리하는 FixedUpdate 메서드를 주기적으로 호출합니다. 이 메서드 내에서 ApplyMovement(movementDirection)가 호출되어 실제 물리 이동을 적용합니다.
ApplyMovement 메서드 실행: ApplyMovement 메서드는 movementDirection를 받아, 이를 이용하여 Rigidbody2D 컴포넌트의 속도(velocity)를 설정합니다. 이 경우, direction은 왼쪽 키 입력에 의해 왼쪽 방향으로 설정되며, 이는 캐릭터가 왼쪽으로 이동하게 합니다.
이러한 과정을 통해, 사용자가 왼쪽 키를 누르면 캐릭터가 왼쪽으로 이동하게 됩니다.