本课将使用枚举类型为敌人设置一个简单的状态机实现状态切换的框架,并学习自动创建依赖项的RequireComponent语句(该语句需放在类名前)
直接上代码
public enum EnemyState { GUARD, PATROL, CHASE, DEAD} //枚举敌人状态:守卫(站桩)、巡逻、追逐、死亡
[RequireComponent(typeof(NavMeshAgent))] //若挂载物体没有该组件则自动创建
public class Enemy : MonoBehaviour
{
private NavMeshAgent agent;
public EnemyState enemyState;
private void Awake()
{
agent = GetComponent<NavMeshAgent>();
}
/// <summary>
/// 切换状态
/// </summary>
private void SwitchState()
{
switch(enemyState)
{
case EnemyState.GUARD:
{
break;
}
case EnemyState.PATROL:
{
break;
}
case EnemyState.CHASE:
{
break;
}
case EnemyState.DEAD:
{
break;
}
}
}
}