unity-学习笔记-有限状态机和ScriptableObject

unity-学习笔记

有限状态机

.这两天研究了一下下Ai的有限状态机的逻辑
在看完视频以及实际敲过一遍之后
个人的感觉这个有限状态机的核心思想就是接口,多态
通过实现接口所有的方法来统一管理不同的ai状态
一般的ai都有三个主要的方法:enter,udpate和exit
在这三个方法里切换不同的动作和逻辑
这个内容涉及的有点多不太能一次性讲的完全和清晰
在这里插入图片描述
先写接口,通过把class改成interface即可(和java如出一撤)
在这里插入图片描述
像这样继承刚才写的接口,然后实现接口里的方法
这样做的好处第一个就是代码复用,和统一管理.提升效率和代码的美观性
第二个个人感觉是提高了安全性
因为多态的形式在方法之间调用时除了编写的人一般需要花更长的时间去分析接口和实现类的关系
在这里插入图片描述
还写了个枚举方便查看状态和切换状态
在看完整个视频之后我的最大感悟基本就是上面这些了,具体的更多的是思维和逻辑的感受很难表述,也加上将近过了一天了基本也忘得差不多了hh
哦对了,其实我这里和视频教程里的有一个不一样的地方,视频里的参数是通过[Serializable]实例化的,既可以在代码中调用,也可以在编辑器里实时查看信息,这是一个好办法
不过小弟今天看完了scripable object之后,觉得那个好像实用的更舒服一点,所以就结合了这两个,把有限状态机里参数的部分通过scriptable object的方式实现了出来.这样做的目的主要是为了能在实践中理解他们的原理

ScriptableObject

这个是将参数实例到本地的方式,他就好像配置文件一样存在unity里
效果大致是这样的
在这里插入图片描述
这样做的目的是在他打包的时候文件格式是asset,而不是txt或者脚本的形式,提高了安全性
也能更好的将参数类的数据和脚本代码进行区分
方法是先创建一个脚本在这里插入图片描述
给这个脚本的开头加入createasseetmenu的注解,然后括号里添加新建时的初始名称以及文件路径
需要继承scriptableobject
然后在里面添加你需要变为配置信息的数据类型
然后就可以在unity的asset右键新建了在这里插入图片描述
你可以在里面添加基本类型,也可以添加自定义的类型,比如集合和其他的引用数据类型
这个需要和前面一样在你写好的自定义数据类型的开头添加[Serializable]就可以了
在这里插入图片描述
像这样就可以了
至于如何调用,直接打出这个自定义数据类型的名称就可以了,如果没有的话就添加一下这个脚本的引用即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值