2、unity导入模型方法:unity支持直接拖放的,把需要导入的模型直接拖拽进去即可。Unity支持多种外部导入的模型格式,但并不是对每一种外部模型的属性都支持。
优点:
1.unity内置的一种储存容器(不用作为组件挂载在物体上,也可以被序列化)
2.可以以asset形式储存(不需要其他额外的文件解析转换之类的,同时可跨项目使用)
3.可以在PlayMode储存数据更改(再也不怕更改数据没保存了)
4.可以储存大量数据(其他对象都可以调用,有效避免产生冗余数据,这一点太有用了)
5.可以添加引用到脚本中
缺点:
1.需要扩展Editor
2.不可以在unity外 *** 作
3.这是用来储存开发数据的,而不是储存玩家数据的。
什么时候用?
1.就如优点所展示的那样,当有一些数据被同时大量使用,为了避免数据冗余,可以使用。同时应该注意,因物而异的变量不应该声明在此处。
2.作为唯一的资源交给版本控制器。例如,本地化数据、清单目录、表格、敌人配置等
3.ScriptableObject除了可以存储数据外,我们还可以在ScriptableObject中定义一些方法。。这类似于插槽设计模式,ScriptableObject提供一些槽,MonoBehaviour可以把自己插进去。适用于AI类型、回血的buff或debuffs等(回血例子见结尾)
如何实现?
step1.创建你用于共享数据的类(例如EnemyData)
step2.新建一个脚本扩展Editor,使编辑器能够创建自定义的ScriptableObject对象
step3. 在需要引用的脚本中引用
另外注意:每次新建项名称都相同,这意味着不及时改名就会被覆盖。请及时归类或重命名
到第三步为止,是 ScriptableObject最基础的用法,或许它的优点还不明显,接下来再举例第四步
further step. 创建区域化控制脚本(可以是GameManager这种)
回血buff例子
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)