Fetch the repository succeeded.
适合于Unity中使用的状态机,方便为一个MonoBehaviour子类添加状态控制,代码精简,使用简单
public class CubeController : FSMBehaviour<CubeController>
//旋转状态
class RotateState : State<CubeController>
{
public override void OnUpdate(CubeController owner)
{
ower.transform.Rotate(Vector3.up*180* Time.deltaTime);
if (Input.GetKeyDown(KeyCode.X))
{
ower.GetComponent<MeshRenderer>().material.color = Random.ColorHSV();
}
//也可以重写OnEnter和OnExit方法添加逻辑
}
}
//旋转状态
class MoveState : State<CubeController>
{
public override void OnUpdate(CubeController owner)
{
ower.transform. Translate(Vector3.forward * Time.deltaTime);
}
}
RotateState rotateState = new RotateState();
MoveState moveState = new MoveState();
//下面两行代码添加状态并设置该状态拥有的转换条件
fsm.AddState(rotateState).AddTranstion("ToMove", moveState.GUID);
fsm.AddState(moveState).AddTranstion("ToRotate", rotateState.GUID);
fsm.ChangeState(rotateState.GUID); //设置初始状态
fsm.SendMessage("ToMove");
fsm.debugMode = true;
./Demo/Demo.unity
Sign in for post a comment
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.
Comments ( 0 )