이름이 지정된 버튼
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 14번째.
키 외에도 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 목록을 비교하세요.
챌린지
쉬움Jump 버튼을 누르고 있는 동안 개구리가 뛰어오릅니다. Jump를 누르면 한 번 hop 단위만큼 올라가고, 손을 떼면 같은 만큼 다시 내려옵니다. 시작 코드에는 이미 올라가는 동작이 있지만, 게임을 실행하자마자 오류가 발생합니다.
플레이를 누르고 Console에서 오류를 확인하세요. 오류를 수정하고, 버튼을 놓을 때 착지하는 동작을 추가한 다음 확인을 누르세요.
직접 해보기
using UnityEngine;
public class Hopper : MonoBehaviour
{
public float hop = 1.5f;
void Update()
{
if (Input.GetButtonDown("Jumpp"))
{
transform.position += new Vector3(0, hop, 0);
}
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.