체크포인트
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 50번째.
챌린지
중급허공으로 떨어져도 전체 진행 상황을 잃는 대신 조금만 손해를 보도록 하세요. 이전 수업에서 만든 모든 것을 그대로 유지하세요. 코스에는 빨간 기둥 두 개, Checkpoint1과 Checkpoint2가 있으며, 각 기둥에는 트리거와 Checkpoint 스크립트가 있습니다.
Player에서:
- Inspector에서 설정하는
fallY필드(-5)와 플레이어가 시작하는 위치에서 시작하는 리스폰 지점이 있습니다. point를 리스폰 지점으로 설정하는 공개 메서드SetCheckpoint(Vector3 point)가 있습니다.- 플레이어가
fallY아래로 떨어지면 리스폰 지점으로 돌려보내고velocity를 초기화합니다.transform.position을 설정하는 것만으로는 충분하지 않습니다. 컨트롤러의 다음Move는 물리 시스템이 마지막으로 플레이어를 감지한 위치에서 시작하므로 이동을 되돌립니다. 플레이어를 이동하는 동안 컨트롤러를 비활성화하고(controller.enabled = false), 이동한 뒤 다시 활성화하세요.
Checkpoint에서:
- 플레이어(
Player스크립트가 있는 객체)가 처음으로 트리거에 들어오면 체크포인트의 위치를 플레이어의 리스폰 지점으로 설정하고, 기둥을 초록색으로 바꾸고(Color.green),Checkpoint reached를 로그에 출력합니다. - 다시 들어와도 아무 일도 일어나지 않으므로, 이전 체크포인트가 리스폰 지점을 이전 위치로 되돌리지 않습니다.
Play를 누르고 체크포인트에 도달한 다음 허공으로 뛰어내리고, Check를 누르세요.
직접 해보기
using UnityEngine;
public class Checkpoint : MonoBehaviour
{
// 이 부분은 이후 강의에서 구현합니다: 떨어진 후 다시 돌아올 위치를 바꾸는 깃발입니다.
}