2017-12-12战斗有限状态机FSM -第三天


1.Move和SimpleMove区别

Move不受重力影响,不会自适应刚体,针对的是碰撞体,当碰到碰撞体,会沿着碰撞体的边缘移动;

都能移动


2.角色涉及到射击

如果说,想换成刀

可以用接口实现:


用Knite、Gun来实现接口

然后在下面给一个接口的引用:


然后初始化,赋值的时候,赋值子类Knite、Gun的实例

这样就给,每个角色赋值不同的武器了


elapseTime:消逝的时间,距离上一次射击的时间


MonoBehaviour提供了Start、Awake、Update、FixedUpdate方法,如果不想用,自己定义。比如虚方法Init、FSMUpdate、FSMFixedUpdate

如何每帧更新这3个虚方法呢?



--------------

3.子类,要挂载到物体上的,必须其父类或更高层级的父类,是继承自MonoBehaviour


4.管理类:

存储状态,首选List<FSMState>

当前的行为编号:CurrentActionID

当前的 状态:CurrentState,从list里获取

构造函数初始化

AddFSMState

DeleteFSMState

PerfromTransition转变状态


FSM和行为树

如果一个游戏,如果状态转变太复杂,相互转变太多,不用FSM,另外FSM判断不清,代码复用不是很彻底

如果是战地3里的怪,只能话躲避,用行为树,React,付费插件;


寻路:A*和Unity内置的



5.管理类的状态

字典里的状态







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值