이름이 지정된 버튼
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 목록의 이름을 비교하세요.
챌린지
쉬움개구리의 점프를 수정해 다시 착지하게 하세요.
- ‘플레이’를 누르세요. Console에 버튼
"Jumpp"에 관한 오류가 표시됩니다. 이를"Jump"로 바꾸세요. 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 플레이그라운드