타임 트라이얼
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 55번째.
정원을 가로지르는 타임 트라이얼입니다. 주자는 시계에 10초가 남은 상태로 한쪽 끝에서 출발해 울타리를 돌아 반대편 끝에 있는 흰색 목표 지점에 시간이 다 되기 전에 도달해야 합니다. 가는 길에 있는 황금 시계를 얻으면 몇 초씩 시간이 더 늘어납니다. 시간이 거의 다 되면 시계가 빨간색으로 바뀌고, 시간이 다 되면 경주가 처음부터 다시 시작됩니다. 시간 안에 목표 지점에 도달하면 게임은 Finish 장면으로 넘어갑니다.
스크립트 두 개를 작성하세요. 주자이자 CharacterController인 오브젝트에는 Runner를, Race 오브젝트에는 Race를 작성하세요.
챌린지
어려움빌드에는 Track과 Finish, 두 개의 씬이 있습니다. 트랙에서 시계에는 Clock 태그가, 결승점에는 Goal 태그가 지정되어 있으며, 둘 다 트리거입니다.
Inspector에서 Runner에 speed(6), gravity(-9.81), race(Race 스크립트)를 지정합니다.
- 프로젝트의 Move 액션은 러너를 초당
speed유닛의 속도로 이동시킵니다. x축을 따라 오른쪽과 왼쪽으로, z축을 따라 위와 아래로 움직입니다.gravity에 따라 떨어지며controller.Move로만 이동하므로 울타리에 막힙니다. - 시계에 부딪히면 시계를 사용하고 레이스에 보너스 시간을 추가합니다. 결승점에 부딪히면 레이스가 끝납니다.
Inspector에서 Race에 timeLimit(10), bonus(3), timeText를 지정합니다.
- 남은 시간은
timeLimit에서 시작해 실제로 경과한 시간만큼 줄어듭니다.timeText는 남은 시간을 소수점 한 자리까지 표시합니다(예:Time: 7.4). 흰색으로 표시되며, 남은 시간이 3초 미만이면 빨간색(Color.red)으로 표시됩니다. - 시계 하나당
bonus초가 추가됩니다. - 시간이 0에 도달하면
Time's up!을 로그에 출력하고 트랙을 처음부터 다시 불러옵니다. - 시간 안에 레이스를 마치면 남은 시간(예:
Finished with 4.2 s left)을 로그에 출력하고 Finish 씬을 불러옵니다.
Play를 눌러 제한 시간 안에 완주한 다음 Check를 누르세요.
직접 해보기
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class Race : MonoBehaviour
{
public float timeLimit = 10f;
public float bonus = 3f;
public TMP_Text timeText;
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.