본문 바로가기
관/핫한 유니티 공부

알아두면 편한 유니티 엔진에서 제공하는 간편한 입력기능.

by 4차원 박스 2020. 8. 14.

이전 포스팅에서 유니티의 작동방식 예제를 살펴보면서 키보드와 마우스의 입력값을 직접 받아 출력하는 방식을 보았다. 이번에는 버튼방식으로 유니티 엔진상의 버튼을 사용하는 방식을 소개한다.

메뉴에서 프로젝트 세팅을 찾아서 input으로 들어가면 된다.

이건 유니티 상에서 기본적으로 제공해주는 기능이다.

 

다음 예시처럼 사용이 가능하다.

 

if (Input.GetButtonDown("Jump"))

Debug.Log("점프");

 

if (Input.GetButton("Jump"))

Debug.Log("점프 모으는중");

 

if (Input.GetButtonUp("Jump"))

Debug.Log("슈퍼점프");

 

 

이렇게 사용가능한데

메서드의 형태로는

GetKey(KeyCode.LeftArrow)

GetButtonDown("Jump"))

에서 더욱 간결하게 줄어들었고. "Jump" 라는 의미도 직관적으로 딱 알 수 있는 형태인 장점이 있다.

 

이런 차이가 있다.

 

즉 함수부터 다르고 매개변수부분이 클래스 형태로 사용하는 것이 아닌 변수로 바로 사용가능한 점이다.

, 사용할 때 유니티 엔진 상에서 정해준 이름을 사용해야 하며 엔진상에서 정해준 이름이 마음에 들지 않거나 원하는 키보드나 마우스 값이 할당 되어있지 않을 경우에는 자신이 새롭게.

유니티 엔진 에서 복사해서 하나 더 늘일 수 있다.

 

<Input계열 메서드>

GetAxis = 수평, 수직 버튼 입력을 받으면 float 값을 반환, 가속도느낌으로 가중치로 처리된다.

GetAxisRaw = 1씩 움직인다.(어느 입출력 기계이든 같다.)

 

다음은 그동안의 입력을 총망라한 예시이다.

void Update()

{

if (Input.anyKeyDown)

Debug.Log("아무키나 눌렀음");

 

 

//점프

if (Input.GetButtonDown("Jump"))

Debug.Log("점프");

 

if (Input.GetButton("Jump"))

Debug.Log("점프 모으는중");

 

if (Input.GetButtonUp("Jump"))

Debug.Log("슈퍼점프");

 

 

//좌우 횡이동

if (Input.GetButton("Horizontal"))

{

Debug.Log("좌우 횡 이동중..."+ Input.GetAxisRaw("Horizontal"));

 

}

if (Input.GetButton("Vertical"))

{

Debug.Log("상하 종 이동중..." + Input.GetAxisRaw("Vertical"));

}

 

이렇게 간단하게 문자로만 처리하는 포스팅을 해보았고

이를 응용하여 실제로 물체(오브젝트라고 한다)를 움직여 본다!

다음 포스팅부터 해본다!.

댓글