목표
- 수직(vertical), 수평(horizontal) 입력에 대해 알아보자.
- Edit > ProjectSettings > Input에 가보면 수직과 수평에 대해 정의되어 있다.
GetAxis
- 다음은 키보드 화살표 입력을 받는 예제이다.
- 위, 아래 화살표에 따라 vertical은 초기값 0, 최소 -1, 최대 1의 값을 가진다.
- 좌, 우 화살표에 따라 horizontal은 초기값 0, 최소 -1, 최대 1의 값을 가진다.
- 소수점 단위로, 값이 증가하기 때문에 입력 치고는 속도가 느리다.
- 화살표 말고 마우스 이동을 감지하고 싶으면 Mouse X, Mouse Y를 넣으면 된다.
- 방향과 운동량이 필요한 경우 사용한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputController : MonoBehaviour
{
public float horizontal;
public float vertical;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
//horizontal = Input.GetAxis("Mouse X");
//vertical = Input.GetAxis("Mouse Y");
}
}
GetAxisRaw
- 수직, 수평의 입력을 받는 기능은 GetAxis와 동일하다.
- 다만 상태값이 -1, 0, 1만 존재한다.
- 따라서 GetAxis보다 빠르며, 단순히 방향만 필요한 경우 사용한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputController : MonoBehaviour
{
public float horizontal;
public float vertical;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
vertical = Input.GetAxisRaw("Vertical");
//horizontal = Input.GetAxisRaw("Mouse X");
//vertical = Input.GetAxisRaw("Mouse Y");
}
}