Unity3D-FSM的简单实现
来源:互联网 发布:岳阳开淘宝网店培训班 编辑:程序博客网 时间:2024/05/18 04:04
public enum BossStateType{ Run, Attack, Die}public class State { public virtual void EnterState() { } public virtual void UpdateState() { } public virtual void ExitState() { }}public class BossState : State { public BossStateMachine machine;}public class BossRunState : BossState{ public override void EnterState() { } public override void UpdateState() { } public override void ExitState() { }}public class BossAttackState : BossState{ public override void EnterState() { } public override void UpdateState() { } public override void ExitState() { }}
using UnityEngine;using System.Collections.Generic;public class BossStateMachine { private Dictionary<BossStateType, BossState> _dic = new Dictionary<BossStateType, BossState>(); private BossState _currentState; private BossState _lastState; public Boss boss; public BossStateMachine(Boss boss) { this.boss = boss; } public void Register(BossStateType key,BossState value)//注册状态 { if(!_dic.ContainsKey(key)) { value.machine = this; _dic.Add(key, value); } } public void ChangeState(BossStateType key)//改变当前状态 { if (_dic.ContainsKey(key)) { _currentState = _dic[key]; } else { Debug.Log("转换失败"); } } public void DoWork() { if(_currentState != _lastState)//进入状态 { _currentState.EnterState(); _lastState = _currentState; } _lastState.UpdateState();//更新下一状态 if(_lastState != _currentState) { _lastState.ExitState();//退出状态 } }}
阅读全文
0 0
- Unity3D-FSM的简单实现
- Unity3D-FSM有限状态机的简单设计
- Unity3D-FSM有限状态机的简单设计
- 简单有限状态机(FSM)的实现
- 基于C++的简单的FSM实现
- Unity3D数学基础(5)_ 简单的FSM
- [Unity3D] 通过修改PlayMaker源代码实现进化版的FSM
- Unity3D游戏开发框架-FSM状态机的实现
- Unity3D 利用FSM设计相机跟随实现
- 设计模式_实现简单的有限状态机(FSM)
- [python]有限状态机(FSM)简单实现
- [python]有限状态机(FSM)简单实现
- 转载:[python]有限状态机(FSM)简单实现
- [python]有限状态机(FSM)简单实现
- [python]有限状态机(FSM)简单实现
- [python]有限状态机(FSM)简单实现
- FSM 在游戏中的简单实现
- [python]有限状态机(FSM)简单实现
- mysql cluster集群搭建
- JZOJ 5435. 【NOIP2017提高A组集训10.30】Graph
- stack容器
- JS获取访问设备信息的方法
- 条件随机场CRF
- Unity3D-FSM的简单实现
- 上传小结
- UVa12563
- 生活小记34
- c3p0 配置参考
- 使用URLSearchParams处理axios发送的数据
- 数据库语言的个人笔记
- javaScript 笔记
- Spring MVC之DispatcherServlet解析