using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//============================================================
//支持中文,文件使用UTF-8编码
//@author	JiphuTzu
//@create	20220910
//@company	Umawerse
//
//@description:
//============================================================
namespace Umawerse.FiniteStateMachines
{
	public abstract class FiniteState
	{
		public StateName name { get; }

		public FiniteState(StateName name)
		{
			this.name = name;
		}

		public abstract void Enter();

		public virtual StateName Update()
		{
			return name;
		}
		public abstract void Exit();
	}
	public abstract class FiniteState<T>:FiniteState where T:MonoBehaviour
	{
		protected T root { get; }
		public FiniteState(T root,StateName name):base(name)
		{
			this.root = root;
		}
	}
}