본문 바로가기

코딩 공부/Unity C#

입력 관리자(Input Manager)

--

progect settings - input manager - axes

기본 30개 정도의 입력축을 설정할 수 있다

 

키보드 및 마우스 매핑 설정 

- 왼쪽, a 키는 네거티브 버튼으로 입력고 오른쪽, d 키는 포지티브 버튼으로 입력된다

- 조이스틱, 여러 조이스틱 등 입력 관리자로 입력에 대한 액션을 관리할 수 있다


getMouseButtonDown 대신 getAxis(입력 관리자) 사용하기

~ 클릭을 하면 캐릭터의 스프라이트가 변화하는 프로그램 재검토~

Input.GetAxis 설명

기본 개념:

Input.GetAxis 함수는 지정된 입력 축(axis)의 값을 반환합니다. 입력 축은 연속적인 값으로 나타나며, 보통 -1에서 1 사이의 범위로 변화합니다. 이 값은 사용자가 입력 장치를 어떻게 움직였는지에 따라 달라집니다.

- 입력 관리자에서 축을 31개로 설정하면, 가장 아래에 새로운 축이 생긴 걸 확인할 수 있다.

- 새로 추가된 축 이름을 ChangeCharater으로 변경하고 왼쪽 마우스(Mouse 0)입력을 매핑힌다.

왼쪽에서 오른쪽으로 변경

>>> 기존과 다르게 클릭을 한 번만 해도 스프라이트가 여러 번 바뀐다.

(마우스의 한계로 아무리 짧게 클릭해도 2번은 바뀜)


클릭 한 번에 스트라이프를 한 번만 바꾸고 싶다면?

- 기존 스크립트(ChangeCharater)에서 플래그 설정

- 마우스를 눌렀을 때 플래그를 true로 설정한다

- 플래그가 true이면 (!previousChangeCharaterInput)이 false가 되어 캐릭터가 바뀌지 않는다

- 마우스를 누르지 않으면 플래그를 false로 설정한다

 

>>> 플래그의 설정으로 연속적인 캐릭터 체인지를 방지한다