using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class FSMState {
protected Dictionary<Transition, State> stateDic = new Dictionary<Transition, State>();
public State state;
protected Vector3 target;
protected Transform[] wayPonts;
protected float moveSpeed;
protected float turnSpeed;
protected float chaseDistance = 20;
protected float arriveDistance = 0.5f;
protected float attackDistance = 1.5f;
public void AddState(Transition trans,State state)
{
if (stateDic.ContainsKey(trans)) return;
stateDic.Add(trans,state);
}
public void DeleteState(Transition trans)
{
if (stateDic.ContainsKey(trans))
{
stateDic.Remove(trans);
}
}
public State GetState(Transition trans)
{
return stateDic[trans];
}
public abstract void Reason(Transform player, Transform aiObj);
public abstract void Action(Transform player, Transform aiObj);
public void FindNextPoint()
{
int index = Random.Range(0, wayPonts.Length);
target = wayPonts[index].position;
}
}
FSMState
最新推荐文章于 2019-11-13 16:44:09 发布