• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

UFSM状态机: 适合于Unity中使用的状态机,方便为一个MonoBehaviour子类添加状态控制,代 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

UFSM状态机

开源软件地址:

https://gitee.com/xiongks/ufsm-state-machine

开源软件介绍:

UFSM状态机

介绍

适合于Unity中使用的状态机,方便为一个MonoBehaviour子类添加状态控制,代码精简,使用简单

简单使用教程

1.控制类继承自FSMBehaviour

public class CubeController : FSMBehaviour<CubeController>

2.定义状态类

//旋转状态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);    }}

3.创建状态对象

RotateState rotateState = new RotateState();MoveState moveState = new MoveState();

4.添加状态并设置状态切换条件,再设置一个初始状态就可以跑起来了

//下面两行代码添加状态并设置该状态拥有的转换条件fsm.AddState(rotateState).AddTranstion("ToMove", moveState.GUID);fsm.AddState(moveState).AddTranstion("ToRotate", rotateState.GUID);fsm.ChangeState(rotateState.GUID); //设置初始状态

状态转换

fsm.SendMessage("ToMove");

DebugMode

fsm.debugMode = true;

简单演示Demo

./Demo/Demo.unity


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap