【Unity】简单说说ScriptableObject

【Unity】简单说说ScriptableObject,第1张

很早就看到有这个东西了,但是一直没有去好好看,一看不知道,看了就爱上他了,真的是一个好用的东西。

用来存储数据的一个 资源文件 ,像是JSON、XML、文本文件这样的存储文件,可以用来存储数据。但是这里他在最开始的时候不需要再次读文件,就像是JSON在游戏开始时,我们需要加载JSON文件中的数据,我们就需要读取这个文件,然后在赋值给对象。他就可以直接使用其中的数据。因为他是资源文件,所以他有着资源文件的特性,我们ResourceLoad他就可以使用他了。

其实可以简单的理解为把你所有的数据都用变量在一个类中声明,然后我们使用的时候,直接实例化这个类就好了。

●他可以作为一个引用在脚本上,因为他是资源文件。

●不会被unity序列化机制影响,所以可以多场景共有。( 序列化文章 )

●在实例化对象时用它来做配置文件降低了内存的消耗

●有自己的回调OnEnable、OnDisable、OnDestroy。

用简单的例子来看看怎么用。

数据体类:

创建:

使用:

当然你也可以用菜单创建这个,如下:

今天就简单说说这个吧,其实他的用处和好处不仅仅是这么一点点,还有很多很多,今天就不一一说到了。

突然觉得这篇写的好水,虽然一直都好水。哈哈,见谅见谅。

脚本文件名称一定要与继承ScriptableObject的类名一样。不然会出现脚本为空的情况。

这样会导致你现在序列化存储的数据在,等你修改了场景或者打包的时候数据就不会存在了。就会出现下面这种情况。

如果你这个时候再次指定脚本为None,这个问题就解决了。但还是会想上一张图那样,但是数据就是一直序列化了,修改场景然后保存都不会出现第二张图的情况。

但是严谨的思维,还是把脚本文件名称一定要与继承ScriptableObject的类名弄成一样。这样的话那个script上就不是None,出错的概率会少一些。

以下是 Unity 支持的 3D 模型格式:

所以,Unity 并不内建支持 json 格式的模型。

考虑到游戏开发工作流的快捷和标准化,公司一般都会 FBX 或 Collada 用作引擎中的 3D 模型格式在美工和程序员之间交换。

有的时候为了实现特殊的功能(比如动态加载模型、从服务器端传送模型等)可能需要自定义 3D 模型/动画格式,这就是引入像 json、xml 这类数据来保存模型的原因。这个时候,你要了解这些格式的具体规格,调用 Unity 的底层 API 写 3D 模型 Mesh 绘制的 *** 作。

骨骼动画有很多种 最有名的是spine live2d Unity商店里也有很多类似的骨骼插件 你要先找到这个游戏到底是用什么方法做的骨骼 再去查相关的文件

每一家基本上都那几样东西 一个json记录了骨骼的位置信息 一个png图集 上面有所有的相关 但是具体怎么还原到工程里 还是要看用什么软件制作的

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码

LitJson我觉得除了第一次加载dll的速度比NewtonsoftJson快之外,还有Web可以使用估计就没什么比NewtonsoftJson好用了

LitJson官网 可以查阅使用API 比一些博客上面的强多了 也比较简洁

>

以上就是关于【Unity】简单说说ScriptableObject全部的内容,包括:【Unity】简单说说ScriptableObject、unity3d支持json格式的模型吗、unity2D出包的游戏中骨骼动画包含哪几个文件如何提取和导入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9564353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存