实例介绍
UnityHFSM是一个简单但功能强大的基于类的分层有限状态机,适用于Unity游戏引擎。它通过类的方式实现了可扩展和可定制,并支持函数(lambda)以进行快速原型设计。通过函数重载,它最大程度地减少了样板代码的编写,同时仍支持泛型。它特别关注状态转换的时间方面,非常适合处理时间和同步敏感的问题。
【实例截图】
【核心代码】文件清单
└── UnityHFSM-eb590da7fb7680684ffc1b6801cc50c46417c38d
├── Changelog.md
├── Changelog.md.meta
├── docs
│ ├── Banner.png
│ ├── Banner.png.meta
│ ├── Flowcharts
│ │ ├── OnLogic.svg
│ │ ├── OnLogic.svg.meta
│ │ ├── OnLogic.txt
│ │ ├── OnLogic.txt.meta
│ │ ├── StateChange.svg
│ │ ├── StateChange.svg.meta
│ │ ├── StateChange.txt
│ │ └── StateChange.txt.meta
│ ├── Flowcharts.meta
│ ├── Images
│ │ ├── AnimatorAnyState.png
│ │ └── AnimatorAnyState.png.meta
│ ├── Images.meta
│ ├── Inheritance
│ │ ├── StateInheritance.svg
│ │ ├── StateInheritance.svg.meta
│ │ ├── StateInheritance.txt
│ │ ├── StateInheritance.txt.meta
│ │ ├── TransitionInheritance.svg
│ │ ├── TransitionInheritance.svg.meta
│ │ ├── TransitionInheritance.txt
│ │ └── TransitionInheritance.txt.meta
│ ├── Inheritance.meta
│ ├── StateDiagrams
│ │ ├── EnemySpyExample
│ │ │ ├── Hierarchical.afdesign
│ │ │ ├── Hierarchical.afdesign.meta
│ │ │ ├── Hierarchical.png
│ │ │ ├── Hierarchical.png.meta
│ │ │ ├── HierarchicalWithExitTransition.afdesign
│ │ │ ├── HierarchicalWithExitTransition.afdesign.meta
│ │ │ ├── HierarchicalWithExitTransition.png
│ │ │ ├── HierarchicalWithExitTransition.png.meta
│ │ │ ├── Simple.afdesign
│ │ │ ├── Simple.afdesign.meta
│ │ │ ├── Simple.png
│ │ │ └── Simple.png.meta
│ │ └── EnemySpyExample.meta
│ └── StateDiagrams.meta
├── docs.meta
├── LICENSE.md
├── LICENSE.md.meta
├── package.json
├── package.json.meta
├── README.md
├── README.md.meta
├── Samples~
│ ├── GuardAI
│ │ ├── Animations
│ │ │ ├── GuardAnimator.controller
│ │ │ ├── GuardAnimator.controller.meta
│ │ │ ├── GuardHit.anim
│ │ │ ├── GuardHit.anim.meta
│ │ │ ├── GuardIdle.anim
│ │ │ ├── GuardIdle.anim.meta
│ │ │ ├── GuardTelegraph.anim
│ │ │ ├── GuardTelegraph.anim.meta
│ │ │ ├── PlayerAnimator.controller
│ │ │ └── PlayerAnimator.controller.meta
│ │ ├── Animations.meta
│ │ ├── GuardAI.unity
│ │ ├── GuardAI.unity.meta
│ │ ├── Pixel.png
│ │ ├── Pixel.png.meta
│ │ ├── Scripts
│ │ │ ├── GuardAI.cs
│ │ │ ├── GuardAI.cs.meta
│ │ │ ├── PlayerController.cs
│ │ │ └── PlayerController.cs.meta
│ │ └── Scripts.meta
│ └── Sample3d
│ ├── Scenes
│ │ ├── Sample
│ │ │ ├── NavMesh.asset
│ │ │ └── NavMesh.asset.meta
│ │ ├── Sample.meta
│ │ ├── Sample.unity
│ │ └── Sample.unity.meta
│ ├── Scenes.meta
│ ├── Scripts
│ │ ├── CustomSendData.cs
│ │ ├── CustomSendData.cs.meta
│ │ ├── EnemyController.cs
│ │ ├── EnemyController.cs.meta
│ │ ├── PlayerController.cs
│ │ └── PlayerController.cs.meta
│ └── Scripts.meta
├── src
│ ├── Base
│ │ ├── IActionable.cs
│ │ ├── IActionable.cs.meta
│ │ ├── IStateMachine.cs
│ │ ├── IStateMachine.cs.meta
│ │ ├── ITransitionListener.cs
│ │ ├── ITransitionListener.cs.meta
│ │ ├── ITriggerable.cs
│ │ ├── ITriggerable.cs.meta
│ │ ├── StateBase.cs
│ │ ├── StateBase.cs.meta
│ │ ├── TransitionBase.cs
│ │ └── TransitionBase.cs.meta
│ ├── Base.meta
│ ├── Exceptions
│ │ ├── Common.cs
│ │ ├── Common.cs.meta
│ │ ├── ExceptionFormatter.cs
│ │ ├── ExceptionFormatter.cs.meta
│ │ ├── StateMachineException.cs
│ │ └── StateMachineException.cs.meta
│ ├── Exceptions.meta
│ ├── StateMachine
│ │ ├── HybridStateMachine.cs
│ │ ├── HybridStateMachine.cs.meta
│ │ ├── StateMachine.cs
│ │ ├── StateMachine.cs.meta
│ │ ├── StateMachineShortcuts.cs
│ │ └── StateMachineShortcuts.cs.meta
│ ├── StateMachine.meta
│ ├── States
│ │ ├── ActionState.cs
│ │ ├── ActionState.cs.meta
│ │ ├── ActionStorage.cs
│ │ ├── ActionStorage.cs.meta
│ │ ├── CoState.cs
│ │ ├── CoState.cs.meta
│ │ ├── State.cs
│ │ ├── State.cs.meta
│ │ ├── StateWrapper.cs
│ │ └── StateWrapper.cs.meta
│ ├── States.meta
│ ├── Transitions
│ │ ├── ReverseTransition.cs
│ │ ├── ReverseTransition.cs.meta
│ │ ├── TransitionAfter.cs
│ │ ├── TransitionAfter.cs.meta
│ │ ├── TransitionAfterDynamic.cs
│ │ ├── TransitionAfterDynamic.cs.meta
│ │ ├── Transition.cs
│ │ ├── Transition.cs.meta
│ │ ├── TransitionOnKey.cs
│ │ ├── TransitionOnKey.cs.meta
│ │ ├── TransitionOnMouse.cs
│ │ ├── TransitionOnMouse.cs.meta
│ │ ├── TransitionWrapper.cs
│ │ └── TransitionWrapper.cs.meta
│ ├── Transitions.meta
│ ├── Util
│ │ ├── ITimer.cs
│ │ ├── ITimer.cs.meta
│ │ ├── Timer.cs
│ │ └── Timer.cs.meta
│ └── Util.meta
├── src.meta
├── Tests
│ ├── TestActionSystem.cs
│ ├── TestActionSystem.cs.meta
│ ├── TestActiveHierarchyPath.cs
│ ├── TestActiveHierarchyPath.cs.meta
│ ├── TestCanExit.cs
│ ├── TestCanExit.cs.meta
│ ├── TestExampleScene.cs
│ ├── TestExampleScene.cs.meta
│ ├── TestExitTransitions.cs
│ ├── TestExitTransitions.cs.meta
│ ├── TestFsmBaseTransitions.cs
│ ├── TestFsmBaseTransitions.cs.meta
│ ├── TestGenericsInHierarchical.cs
│ ├── TestGenericsInHierarchical.cs.meta
│ ├── TestGhostStates.cs
│ ├── TestGhostStates.cs.meta
│ ├── TestHybridStateMachine.cs
│ ├── TestHybridStateMachine.cs.meta
│ ├── Tests.asmdef
│ ├── Tests.asmdef.meta
│ ├── TestStartUp.cs
│ ├── TestStartUp.cs.meta
│ ├── TestTransitionAfter.cs
│ ├── TestTransitionAfter.cs.meta
│ ├── TestTransitionAfterDynamic.cs
│ ├── TestTransitionAfterDynamic.cs.meta
│ ├── TestTransitionCallbacks.cs
│ ├── TestTransitionCallbacks.cs.meta
│ ├── TestTwoWayTransitions.cs
│ ├── TestTwoWayTransitions.cs.meta
│ ├── Util
│ │ ├── Recorder.cs
│ │ ├── Recorder.cs.meta
│ │ ├── TestTimer.cs
│ │ └── TestTimer.cs.meta
│ └── Util.meta
├── Tests.meta
├── UnityHFSM.asmdef
└── UnityHFSM.asmdef.meta
24 directories, 176 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论