XML序列化:将一个对象或参数的公开字段和属性以及方法的返回值转换(序列化)成遵循XSD文档标准的XML流。因为XML是一个开放的标准,XML能被任何需要的程序处理,而不管在什么平台下,因此XML序列化被用到带有公开的属性和字段的强类型类中,它的这些发生和字段被转换成序列化的格式(在这里是XML)存储或传输。”添加Syste...
一、普通类型和UnityEngine空间类型序列化 对于普通的MonoBehaviour对象常用public数据类型是支持直接序列化的,如果是namespace UnityEngine下的对象都可以被序列化 在inspector面板下,我们看到如果是基础类型和UnityEngine命名空间下类型,可以直接序列化。 二、数组、list的序列化 在实际过程中我们往往需要数组或列表序列化。...
[Serializable]// 可序列化对象publicclassBaseBuilding{publicstringBID;// 三个属性均为可序列化属性,所以可以直接使用方法进行序列化。publicintXCoord;publicintYCoord;}publicclassTest:MonoBehaviour// 测试输出的Json来看序列化是否正确{publicBaseBuildingBuilding;privatevoidUpdate(){if(Building==null){Building=new...
最近在做的小游戏里打算加个关卡编辑器的功能,关卡中部分物体通过配置文件来加载,这就需要将物体的Transform信息序列化并记录到配置文件中了,实现起来比较简单,在这里记录和分享一下。 二、主要功能 Transform与自定义可序列化类(CustomTransform)的相互转化 Unity中V2,V3,V2Int,V3Int,Quaternion的序列化 三、代码实现...
假设我们创建一个 Test 组件,并定义一个 string 类型的列表,代码如下: 1usingSystem.Collections.Generic;2usingUnityEngine;34publicclassTest : MonoBehaviour5{6publicList<string>strs;7} 挂载组件后,我们会得到下面的效果: Unity 自动帮我们把 strs 这个 List 序列化到了面板上,我们还可以通过修改 Size 的大小...
序列化Vector2类型: 先说一句,LitJson的扩展性很强,在你自己实现自定义解析方案的情况下,LitJson可以支持任何类型。 自己实现类型解析 voidStart(){ Action<Vector2,JsonWriter> writeVector2 = (v,w) => { w.WriteObjectStart();//开始写入对象w.WritePropertyName("x");//写入属性名w.Write(v.x.ToString...
JSON(JavaScript Object Notation) 常用于网络通信的数据交换还有打包、解压数据。在Unity就内嵌了处理JSON数据的类(UnityEngine.JsonUtility),本篇文章就和大家介绍下JSON文件的写入与读取以及自定义JSON编辑器的使用。 JsonUtility 可用于的类型 MonoBehaviour的子类 ...
2.1 自定义类 2.2 序列化自定义类RPG物品数据库示例 public class Item:自定义类“Item”,只是对Item的定义,因此可以删掉monobehaviour。在这个类里定义物体具有的属性。 在Item.cs中建立一个constructor。(constructor可以建立多个,monobehaviour不能建立constructor) ...
1.定义XY轴和箭头常量 1.1先定义一下XY轴的一些常量,写在一个单独的类中并序列化,这样可以在Inspector面板上显示常量并方便调节常量。 //序列化该类型 [Serializable] public class FunctionalGraphBase { /// /// 是否显示X轴 /// public bool ShowXAxis...
在上面的代码中,我们使用到了一个名为“SerializedPropertyType”的枚举,它存放的是序列化属性的类型,它包含的类型很多,但是在该篇文章中我们只使用到了这几个,感兴趣的同学看可以去尝试其它类型。 我们使用该枚举为value获取相对应类型的值,然后使用一个Label在Inspector面板中绘制出来(\t为制表符,为了美化显示)。