본문 바로가기

코딩 공부/Unity C#

키보드 입력 및 게임패드(Joystick) 처리, 오브젝트 이동

키보드 입력으로 오브젝트 이동시키기

- 초당 5 유니티 유닛만큼 이동한다

- 키보드는 양수와 음수 입력이 모두 가능하기 때문에 != 0으로 설정한다

(마우스는 양수 입력만 있었기에 >0 으로 설정한 것이었다)

가로축(horizontal)과 세로축(vertical)의 이동

- Input.getAxis()의 값은 -1~1이므로 네거티브 값과 포지티브 값을 모두 계산할 수 있다

- 인풋값 * 초당유닛이동값 * 소요시간 = 이동거리

- x축과 y축 동시에 이동을 진행하면 대각선으로 이동할 수 있다

(하지만 대각선의 이동 속도가 5의 제곱근 배 더 빠르다. )피타고라스(2+2+1)

 


게임패드로 오브젝트 이동시키기

게임패드용 horizental축

- 동일한 이름의 축이 여러 개 존재할 수 있다.

- 키보드용 horizontal축과 게임패드용 horizontal축이 따로 존재한다.

- 스크립트 내에서 해당 액세스를 가져오면 특정 액세스에 대한 모든 매핑에 대한 입력을 받게 된다.

- 키보드 입력만 제대로 작동한다면 게임패드에 대한 입력을 따로 조정할 필요가 없다

>>> 스크립트 코드를 손 보지 않아도 된다는 뜻

 

joystick button 0는 a키

 

- mouse 0 (마우스 왼쪽 버튼)을 누르면 캐릭터가 변경되는 액션을 입력 관리자에서만 설정을 하면 조이스틱으로도 같은 액션을 취할 수 있다.