2024년 1월 4일 목요일

Unity Tutorial - Input System

 

일반적으로 Input.GetKey() 함수등으로 입력을 받아와서

그에 따른 행동을 하거나 값을 변경하여 캐릭터를 이동하거나

점프시켰는데 이번에는 Input System으로 구현해보려고 한다.






먼저 패키지 매니저에서 Input System을 Import 해주고

(주의! 자동으로 껏다 켜짐)




키입력을 지정해 주기 위해 Input Action을 생성해준다.




생성된 액션에서 Map을 생성하면 안에 Action을 생성 가능한데 


컨트롤 타입을 Vector로 지정해주면 아래의 바인딩을 추가가능하다


상하좌우 키를 바인딩하여 Vector2 수치를 스크립트에서 받아와 

캐릭터를 이동시켜야하는데 이는 캐릭터 오브젝트에 Input Action을 끌어다 놓으면 된다.




버튼 이벤트처럼 동작된 Action에 해당하는 함수를 호출하는 방식인데

이는 불필요한 함수 호출을 줄일 수 있어서 좋다




호출될 함수에는 콜백 메시지를 받기 위해 매개변수에 사진처럼 추가해준다.

전달받은 Vector2 값을 변수에 저장하여 이를 캐릭터의 Transform Position이나

Character Controller로 이동 시키면 된다.




+EventSystem은 Canvas를 생성하면 자동으로 생성되는데 

이를 InputSystem으로 교체해야 한다. 






댓글 없음:

댓글 쓰기

c++ thread.h

 c++에서 쓰레드 돌릴려면 thread.h 헤더를 쓰면 되는데 이 친구는 쓰레드가 아직 실행 중인지, 아니면 강제 종료하거나 하는 함수가 없어서 조금 아쉬운 애다. std::thread 는 로컬 변수로 선언하든 new 동적 할당을 하든 start 함...