유니티에서 키보드로 이동하는 함수를 만들 때 입력 신호 조건문을 만들어 구현할 수 있다.
예를 들어 W를 눌렀을 때 앞으로 이동하려면 아래처럼 구현하면 된다.
if(Input.Gatkey(KeyCode.W))
{
앞으로 이동
}
(Getkey 등의 입력 함수 종류 참고 : https://greenchoco.tistory.com/219)
하지만 이런 방식은 키에 대한 각각 상태를 조건문으로 구현해야 해서 코드가 매우 길어진다.
이를 더 편하게 하기 위해서 유니티에서 제공하는 것이 바로 InputManager 시스템이다.
[Edit] - [Project Setting...] 으로 들어가면 Input Manager 를 찾을 수 있다.
여기서 Horizontal은 수평, Vertical은 수직이라는 뜻이다.
이 둘을 펼쳐서 보면 Negative Button, Positive Button 이 쓰여있다.
Negative 는 - 를, Positive는 + 를 뜻하는데 -는 왼쪽과 아래를, +는 오른쪽과 위를 향한다고 생각하면 된다.
Input Manager의 버튼을 인수로 사용하기 위해서는 아래처럼 GetButton() 함수를 이용하면 된다.
if(Input.GatButton("Vertical"))
{
이동
}
이렇게 적으면 Vertical 인수를 이용했으므로 화살표 위아래나 W나 S 중 하나라도 누르면 캐릭터는 이동한다.
참고로 Negative Button, Positive Button 은 수치로 표현하면 각각 -1, +1 로 인식한다.
이 숫자를 직접 확인해보고 싶으면 GetAxis() 함수를 아래처럼 사용하면 된다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
void Update()
{
float v = Input.GetAxis("Vertical");
print(v);
}
}
참고로 여기서 if문이 아닌 GetAxis함수를 사용한 이유는 반환값 때문이다.
if문의 반환값은 bool형만 가능하여 true, false만 출력하기 때문에 숫자로 된 수치를 확인할 수 없다.
그래서 float 자료형을 반환값으로 슬 수 있는 GetAxis() 함수를 사용한 것이다.
위 스크립트를 오브젝트에 적용한 후 콘솔창을 보고 키를 눌렀을 때, 화살표 위와 W키는 +1, 화살표 아래와 S키는 -1을 가리키는 것을 확인할 수 있다.
'유니티 C# > 이론' 카테고리의 다른 글
유니티 기초 - 오브젝트 Tag 하는 방법 (0) | 2024.04.30 |
---|---|
유니티 기초 - 버튼 눌러서 씬(Scene) 전환하는 법 (0) | 2024.04.25 |
유니티 기초 - Transform 설정하기 팁 (0) | 2024.04.25 |
유니티 기초 - 씬 이름 옆에 있는 *(별표)는? (0) | 2024.04.25 |
유니티 기초 - 게임 화면 해상도(크기) 조절하기 (0) | 2024.04.24 |
댓글