목표

  • 수직(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");
    }
}

+ Recent posts