복습: 경비견
Coddy Unity 여정의 물리와 게임플레이 섹션에 포함된 레슨. 63개 중 55번째.
챌린지
중급경비견은 낯선 사람이 개집에 가까이 오지 못하게 합니다. Dog 스크립트를 작성하세요. Inspector에서 player, kennel(개집 앞의 빨간 매트), speed(3.5), guardRange(6), bite(5)를 지정합니다. Player와 Health 스크립트는 준비되어 있습니다. 화살표 키를 누르면 플레이어가 밀리고, 플레이어의 Health에는 공개 메서드 TakeDamage(int amount)가 있습니다.
- 플레이어가 지면을 따라 측정했을 때 개집에서
guardRange보다 가까이 있으면, 개가 플레이어를 향해 달려갑니다. 거리는 개가 아니라 개집을 기준으로 측정합니다. - 그렇지 않으면 개가 개집으로 돌아가고, 개집에서 0.3 이내에 도달하면 멈춰 섭니다.
- 개는 Rigidbody의 속도를 지면을 따라
speed로 설정해 달리며, y 속도는 유지합니다. - 개가 플레이어와 부딪히면(태그가
Player인 경우), 플레이어의 Health가 피해를 1 받고, 플레이어는 개에게서 곧장 멀어지는 방향으로 지면을 따라bite크기의 Impulse를 받습니다.
Play를 누르고 개집까지 걸어간 다음 Check를 누르세요.
직접 해보기
using UnityEngine;
public class Dog : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private Transform kennel;
[SerializeField] private float speed = 3.5f;
[SerializeField] private float guardRange = 6f;
[SerializeField] private float bite = 5f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// 개집을 지켜라: 근처에 있는 플레이어를 쫓거나 집으로 돌아가라
}
}