Menu
CoddyTech

이름이 지정된 버튼

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 21번째.

키 외에도 Unity에는 버튼이 있습니다. Input Manager(Edit, Project Settings, Input Manager)에 나열된 이름이며, 각 이름은 하나 이상의 키와 연결되어 있습니다. Input.GetButtonDown("Fire1")은 키가 아니라 이름을 확인합니다. 새 프로젝트에는 다음 항목이 있습니다.

  • "Jump": 스페이스바
  • "Fire1": 왼쪽 Ctrl 키 또는 마우스 왼쪽 버튼
  • "Fire2": 왼쪽 Alt 키 또는 마우스 오른쪽 버튼
  • "Submit" 및 "Cancel": Enter 키와 Escape 키

게임패드 버튼도 같은 이름과 연결되어 있으며, 코드를 건드리지 않고 Input Manager에서 키를 변경할 수 있습니다. GetButton, GetButtonDown, GetButtonUp은 GetKey, GetKeyDown, GetKeyUp과 같은 방식으로 작동합니다. 이 블래스터는 Ctrl 키를 누르거나 클릭할 때마다 발사 기록을 남깁니다.

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

이름은 문자열이므로 철자가 틀려도 컴파일됩니다. Unity는 해당 줄이 실행될 때 이름을 조회하며, 그 이름의 버튼이 없으면 매 프레임 예외를 발생시킵니다. ArgumentException: Input Button Fier1 is not setup. 이 메시지가 표시되면 코드의 이름과 Input Manager 목록의 이름을 비교하세요.

challenge icon

챌린지

쉬움

개구리의 점프를 수정해 다시 착지하게 하세요.

  1. ‘플레이’를 누르세요. Console에 버튼 "Jumpp"에 관한 오류가 표시됩니다. 이를 "Jump"로 바꾸세요.
  2. Input.GetButtonUp("Jump")을 사용하는 두 번째 if를 추가하고, new Vector3(0, hop, 0)을 transform.position에서 빼세요.

‘플레이’를 누르고 Space를 누른 채로 있다가 놓으세요. 개구리가 위로 뛰어오른 다음 착지합니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

Unity 스크립팅 기초의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드