Menu
CoddyTech

러너

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

이 장에서는 Dodge the Blocks라는 작은 게임을 만듭니다. 블록이 하늘에서 떨어지는 동안 레인을 따라 달리는 캐릭터를 조종하며, 블록에 한 번 닿으면 달리기가 끝납니다. 게임 전체는 하나의 스크립트인 Runner로 구성되며, 각 강의에서 조종, 블록 낙하, 블록 정리, 충돌, 점수 기능을 하나씩 추가합니다.

첫 번째 기능은 레인 안에서 조종하는 것으로, Catch the Star에서 배운 Mathf.Clamp(value, min, max)를 사용합니다. 이 함수는 값이 범위보다 작으면 min을, 크면 max를 반환하고, 그 외에는 값 자체를 반환합니다. 클램프를 어디에 적용하는지가 중요합니다. 이 충전 게이지는 Space를 누르고 있는 동안 차오르고, 누르지 않으면 줄어들며, 0에서 10 사이를 벗어나지 않습니다.

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

값을 변경한 다음에 클램프를 적용합니다. 먼저 클램프를 적용하면 값이 해당 프레임에서 한 단계 한도를 넘어설 수 있고, 막대는 그 값을 기준으로 그려집니다. 또한 Mathf.Clamp는 전달한 변수를 변경하는 대신 새 숫자를 반환하므로, 반환된 결과를 다시 변수에 대입해야 합니다.

challenge icon

챌린지

중급

러너로 Dodge the Blocks를 시작하세요. Inspector에서 Runner 스크립트에 speed(6)와 laneEdge(4)를 지정합니다.

  • 왼쪽 및 오른쪽 화살표를 누르면 러너가 초당 speed 단위로 x축을 따라 이동합니다.
  • x값은 -laneEdge보다 작아지거나 laneEdge보다 커지지 않으므로 러너는 레인 안에 머뭅니다.

Play를 누르고 게임을 클릭한 다음 레인의 양 끝까지 달린 뒤 Check를 누르세요.

직접 해보기

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // 화살표 키로 x축을 따라 이동한 다음, x가 레인 안에 머물도록 한다
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

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