Unity 序列化

Script Serialization

http://docs.unity3d.com/Manual/script-Serialization.html

自定义序列化及例子:

http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html

以下是上面2篇的摘要:

脚本的字段需要满足什么条件才能被序列化?(必须同时满足)

1. public 类型,或者有 [SerializeField]

2. 不是 static

3. 不是 const

4. 不是 readonly

5. 类型必须是 Unity 可以序列化的类型

Unity 可以序列化哪类型?

1. 自定义的,非 abstract 的类,且有 [Serializable]

2. 有 [Serializable] 的结构体

3. UnityEngine.Object 的子类的引用

4. 原生类型(int,float,double,bool,string, etc)

5. 以上类型的数组

6. 以上类型的 List<T>

ISerializationCallbackReceiver.OnBeforeSerialize

ISerializationCallbackReceiver.OnAfterDeserialize

摘要:

1、Unity 会帮你创建对象,并将值设置为你在编辑器中设置的值。

2、序列化发生在另一个线程。

3、当你需要自定义序列化时,只序列化那些 Unity 原生不支持的类型

时间: 2024-11-07 13:11:23

Unity 序列化的相关文章

Unity 序列化 总结

查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html 和Unity 圣典 在这博友 的基础上 再总结下Unity 的序列化 序列化的作用是: 可以显示变量(类,结构等)在inspe

Unity序列化和持久化

据我所知unity Serialization对于基本数据类型非常好用,但处理复类型时就有些基础缺陷了. 我的需求是连接组件和文件并永久保存这种关系.而组件(或游戏对象)的InstanceID不管用,因为每次场景加载都会不一样. Unity内置的持久化策略是通过“m_LocalIdentfierInFile”(将检视面板视图切换为Debug模式即可看到该字段)来连接场景文件和游戏对象及其组件的(这个肯定是Unity的拼写错误,应该是Identifier,当然它也没有要改正的倾向). 所以我也可以

unity序列化系统小结-来自unity手册(Script Serialization)

一.综述 在unity中,"东西"的序列化是unity一件很核心的事情,很多特性都是建立在序列化系统之上的:像检视面板.预制体(prefabs).实例化(Instantiation).保存场景.加载(loading).编辑器代码的热重新加载(Hot reloading of editor code).unity自己的垃圾回收器(Resource.GarbageCollectSharedAssets()).序列化系统是用C++写成的,用于所有的内部物体类型(Textures, Anima

unity序列化

什么是序列化 unity的序列化在unity的开发中起着举重足轻的地位,许多核心的功能都是基于序列化和反序列化来实现的.序列化简单来讲就是就是将我们所要保存的数据进行二进制存储,然后当我们需要的时候,在读取二进制文件,反序列化回来.下面是一些常用的序列化的例子: 存储脚本化的数据.在我们的c#代码中,可以将我们所要存储的数据进行序列化,进行存储 prefab与初始化.在unity开发过程中我们会制作很多的预制体(prefab),这些prefab都是序列化,以二进制的形式保存的.当你要对预制体进行

Unity AssetBundles and Resources指引 (三) AssetBundle基础

Unity AssetBundles and Resources指引 (二) Resources文件夹 本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and-resources?playlist=30089  A guide to AssetBundles and Resources 第三部分 AssetBundle基础 3.1概览 AssetBund

Unity AssetBundles and Resources指引 (一)

本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and-resources?playlist=30089  A guide to AssetBundles and Resources 为了消除一些歧义,文章里面的专有名词直接用英文单词,比如Assets.Resource.Object 这篇文章是关于在unity引擎中进行Assets和resource管理

Unity学习笔记 - Assets, Objects and Serialization

Assets和Objects Asset是存储在硬盘上的文件,保存在Unity项目的Assets文件夹内.比如:纹理贴图.材质和FBX都是Assets.一些Assets以Unity原生格式保存数据,例如材质.另一些Assets需要通过处理转换到原生格式,例如FBX. Object是一系列序列化数据,这些数据描述了具体的资源实例,这可以是Unity使用的任意类型的资源,例如mesh,sprite,audio clip或animation clip.所有的Objects都是UnityEngine.O

关于Unity中常用的数据结构和JSON处理(专题三)

数据结构通俗来讲就是用某个对象去存储数据集合,比如要存储100个整数,要用什么样的数据类型能把它们存储好. Jason处理,服务器对接,配置文件的使用,Unity和Jason之间相互的转换. Array 数组 1: 类型[] 名字 = new 类型[数量]{"初始化的值", "", ''"}; 如果有初始值也可以省略大小;2: 优点: (1)内存连续,速度快; 3: 缺点: (1)大小固定,容易访问越界; Array实例 1.创建Unity项目和文件目录,

【Unity】工具类系列教程—— 代码自动化生成!

转载自:https://zhuanlan.zhihu.com/p/30716595?utm_medium=social&utm_source=qq [为什么要做自动化工具] 工具类的创建是为了解决实际问题或者优化既有流程,我们来先看看一些项目里面经常遇到的问题. 程序代码有很多时候类是相似的,因此新建一个功能的时候你会直接复制了之前"相似"的代码块,然后删除掉无用的逻辑功能,但是有时候会出现漏网之鱼. 开完会,策划发过来一个功能案子,UI相关的界面非常的多,你费劲拼完了UI,写