킬 존
Coddy Unity 여정의 물리와 게임플레이 섹션에 포함된 레슨. 63개 중 18번째.
킬 존은 플레이어가 도달해서는 안 되는 장소 위에 설치하는 트리거입니다. 용암, 가시 또는 레벨 아래의 빈 공간이 이에 해당합니다. 여기에 들어가면 플레이어가 스폰 지점으로 되돌아갑니다. 여기서는 용암 자체의 스크립트가 이 작업을 수행하며, Inspector에서 설정한 스폰 지점이 Transform 필드에 지정되어 있습니다:
public Transform spawnPoint;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
other.transform.position = spawnPoint.position;
other.attachedRigidbody.linearVelocity = Vector3.zero;
}
}other.attachedRigidbody는 진입한 콜라이더가 속한 Rigidbody입니다. transform.position을 설정하면 플레이어가 순간 이동하며, 이것이 리스폰에 필요한 동작입니다. 하지만 Rigidbody는 점프 중의 속도를 유지합니다. 예를 들어 초당 10유닛의 속도로 떨어진 플레이어는 스폰 지점에 도착한 뒤에도 초당 10유닛의 속도로 계속 떨어지고, 용암 속으로 달려든 플레이어는 계속 달리다가 곧장 다시 용암에 들어갑니다. linearVelocity를 Vector3.zero로 설정하면 플레이어가 멈춘 상태로 도착합니다. 태그 검사는 용암에 빠진 다른 모든 것을 그 자리에 그대로 둡니다.
챌린지
쉬움플레이어는 화살표 키로 힘을 받아 공허 위의 좁은 다리를 건넙니다. 이 부분은 이미 작성되어 있습니다. 아래 공간은 KillZone 태그가 지정된 트리거가 채우고, 다리 중간에는 트리거이기도 한 Checkpoint 태그가 지정된 깃발이 있습니다. 플레이어 스크립트에 부활 기능을 추가하세요.
- 게임이 시작되면 플레이어가 서 있는 위치가 부활 지점입니다.
Checkpoint에 닿으면 그 순간의 플레이어 위치가 새로운 부활 지점이 됩니다.KillZone에 들어가면 플레이어가 멈춰 선 채 부활 지점으로 돌아갑니다.
Play를 누르고 다리에서 걸어 떨어진 다음, Check를 누르세요.
직접 해보기
using UnityEngine;
public class Player : MonoBehaviour
{
public float force = 12f;
Rigidbody body;
Vector3 input;
// respawn: 플레이어가 다시 나타나는 위치
void Start()
{
body = GetComponent<Rigidbody>();
}
void Update()
{
input = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
}
void FixedUpdate()
{
body.AddForce(input * force);
}
// Checkpoint: 플레이어의 위치를 기억합니다. KillZone: 움직이지 않는 상태로 그 위치로 돌아갑니다.
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.