축
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 20번째.
Input.GetAxis("Horizontal")는 왼쪽 및 오른쪽 화살표 키(그리고 A와 D)를 -1부터 1 사이의 하나의 숫자로 바꿉니다. 왼쪽은 -1, 오른쪽은 1, 아무 키도 누르지 않으면 0입니다. Input.GetAxis("Vertical")은 아래쪽 및 위쪽 화살표 키(S와 W)도 같은 방식으로 처리합니다. 한 번 호출하면 if 두 개를 대신할 수 있고, 게임패드 스틱도 추가 코드 없이 같은 축을 조작합니다.
숫자가 갑자기 바뀌지는 않습니다. Unity의 기본 설정에서는 초당 3씩 목표값에 가까워지므로, 키를 누른 뒤 1에 도달하는 데 3분의 1초가 걸리고, 키에서 손을 뗀 뒤 0으로 돌아가는 데도 3분의 1초가 더 걸립니다. 이렇게 부드럽게 변화하므로 이 호버크래프트는 서서히 속도를 높이고 미끄러지듯 멈춥니다.
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}Input.GetAxisRaw("Horizontal")은 부드러운 변화를 건너뜁니다. 매 프레임 정확히 -1, 0 또는 1이므로 움직임이 즉시 시작하고 멈춥니다. 묵직한 느낌을 줘야 하는 동작에는 GetAxis를, 반응이 즉각적인 조작에는 GetAxisRaw를 사용하세요. 양쪽 화살표 키를 모두 누르면 두 방향이 상쇄되므로 어느 쪽을 사용해도 0이 됩니다. (Unity 6 프로젝트에서는 「키로 조종하기」의 Active Input Handling 설정이 축에도 적용됩니다.)
챌린지
쉬움감속 없이 로버가 즉각적으로 움직이게 하세요.
Update()에서float h = Input.GetAxisRaw("Horizontal");와float v = Input.GetAxisRaw("Vertical");를 읽으세요.new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime)를transform.position에 더하세요.
‘플레이’를 누르고, 게임을 클릭한 다음 화살표 키나 WASD로 움직여 보세요. 로버가 즉시 출발하고 멈춥니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// Horizontal은 x축 방향으로, Vertical은 z축 방향으로 이동하며, 이징은 적용하지 않습니다.
}
}
Unity 스크립팅 기초의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드