经过跟队长的一致讨论,决定还是用<有限状态机>来实现怪物的行为逻辑,这样耦合性更低,更好操作。
这次的还是定点巡逻的小怪。
有三个脚本文件,IState作为接口,NewIdleS记录所有存在的状态,NewFSM为有限状态机。
具体实现形式:
1.接口:
public interface NewIstate
{
void OnEnter();
void OnUpdate();
void OnExit();
}
2.记录所有存在的状态:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewIdleSta : NewIstate
{
private NewFSM manager;
private Parameter1 parameter;
private float timer;
//状态机对象
public NewIdleSta(NewFSM manager)
{
this.manager = manager;
this.parameter = manager.parameter;
}
public void OnEnter()
{
parameter.animator.Play("Idle");
}
public void OnUpdate()
{
timer += Time.deltaTime; //计时器
if (timer >= parameter.idleTime)
{
manager.TransitionStat