"절대강좌! 유니티5"


책에 나왔있는 그대로 MonsterCtrl 스크립트를 구현했습니다
오탈자는 없는거 같구요..


그리곤 실행해보니 몬스터가 계속 idle 상태로 가만히있고

player를 추적하거나 공격하지않습니다 ㅠㅠ

어찌된일인지..


물론 이리저리 움직여서 몬스터 코앞까지 가봤습니다만


using UnityEngine;
using System.Collections;


public class MonsterCtrl : MonoBehaviour {

public enum MonsterState { idle, trace, attack, die };
public MonsterState monsterState = MonsterState.idle;


private Transform monsterTr;
private Transform playerTr;

private NavMeshAgent nvAgent;


public float traceDist = 10.0f;

public float attackDist = 2.0f;


private bool isDie = false;


// Use this for initialization


void Start () {
monsterTr = this.gameObject.GetComponent ();
playerTr = GameObject.FindWithTag (“Player”).GetComponent ();
nvAgent = this.gameObject.GetComponent ();


StartCoroutine (this.CheckMonsterState ());

StartCoroutine (this.MonsterAction ());
}


IEnumerator CheckMonsterState()
{
while(!isDie)
{
yield return new WaitForSeconds (2.0f);

float dist = Vector3.Distance (playerTr.position , monsterTr.position);


if (dist <= attackDist)
{
monsterState = MonsterState.attack;
}
else if (dist <= traceDist)
{
monsterState = MonsterState.trace;
}
else
{
monsterState = MonsterState.idle;
}
}
}


IEnumerator MonsterAction()
{
while (!isDie)
{
switch (monsterState){

case MonsterState.idle:


nvAgent.Stop();

break;


case MonsterState.trace:

nvAgent.destination = playerTr.position;

nvAgent.Resume();


break;


case MonsterState.attack:

break;
}
yield return null;
}
}
}



위 사진에 있는 스크립트 같은 스크립트입니다