代码拉取完成,页面将自动刷新
适合于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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型