关于有限状态机FSM的学习笔记

这篇博客探讨了有限状态机(FSM)在人工智能和玩家角色控制中的作用。FSM由FSMSystem、FSMState、StateID和Transition四个类构成,其中FSMSystem负责当前状态管理和状态切换,FSMState包含状态转换条件和角色行为定义。通过使用状态机,可以方便地添加和隔离人物行为,确保行为之间的独立性。博客详细阐述了FSM的基本结构和如何在游戏开发中利用它来实现复杂的行为逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有限状态机是通过控制状态来实现对人物行为的控制 这个状态机的思想不仅仅可以用在AI的实现,更可以用在对玩家角色的控制上 使用状态机的好处就是可以方便的添加人物行为,每个行为彼此间都是相互独立的,一个行为出现问题不会影响到其他行为
首先,FSM由一个基本类(FSMSystem),一个抽象类(FSMState),两个枚举类(StateID,Transition)四个类组成
Claim1.基本类FSMSystem不继承任何的类: 里面存放的是状态机当前执行的状态(FSMState类型对象),还有就是这个角色所具有的所有状态(我们可以用字典来存取,Key=StateID,Value=FSMState),然后就是切换方法PerformTransition(Transistion)
Claim2.抽象类FSMState:MonoBehaviour 这个类是所有状态类的父类 这个类要存放下一状态的ID以及切换到下一个状态的条件(用字典来存,Key=Transition,Value=StateID) 还有就是状态ID StateID 接着就是两个抽象方法Reason()【用来做判断是否执行下一个状态】 和Act()【当前状态角色应该做什么】 两个抽象方法要在子类中去实现 然后这两个方法要在角色脚本身上每一帧去执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值