原文链接:Odin Serializer Quick Start | Odin Inspector for Unity 缺点:需要继承SerializedMonoBehaviour代替MonoBehaviour,侵入性的接口。 4. 使用List模拟字典的键值对,内部使用一个字典存储键的索引,在运行时更改字典可将修改反映到List(Inspector)上,并使用ReorderableList和PropertyDrawer自定义绘制方法。 原文链接:Serial...
Unity的Inspector面板显示自建类和事件 Unity的Inspector面板显示自建类和事件 代码 效果 代码 话不多说,直接上代码。 效果 其中UnityEvent是Unity一个封装的事件类。上面的方式,是我知道的Unity唯一可以将事件显示在Inspector面板上的方式。 以及自建的一个类可以在Inspector面板上的显示方法。......
public Slot slotPre; [Header("---")]//in bag public List<ItemSO> packageList = new List<ItemSO>(); 3、实现当玩家触碰到场景中的Item时,生成一个Slot在背包中 (1)在InventoryManager中获取到BagManager(要使用一个类中的参数一定要先获取它) [HideInInspector]public BagManager bagManager; private ...
例如,可以将 HideInInspector 特性添加到属性声明上方,从而防止 Inspector 显示该属性(即使是公共属性)。C# 在方括号内包含特性名称。 以Range和ExecuteInEditMode为例(更多其他属性点这里): using UnityEngine; using System.Collections; public class SpinScript : MonoBehaviour { //Range可以在面板上把输入值变成...
自定义 Inspector 属性面板的一些基础知识,和注意事项如下图所示: 传送门:http://www.ceeger.com/Script/Editor/Editor.html 接下来开始制作的我们自己的 Inpector,对于自定义 Inpector 面板可参考下图的API: 传送门:http://www.ceeger.com/Script/EditorGUILayout/EditorGUILayout.BeginVertical.html ...
2)Inspector窗口:Inspector窗口并不是用C#的API来得知它检视数据的属性。它要求物体进行序列化,然后展示序列化信息。 3)预制件:在内部实现上,一个预制件就是一个游戏物体或者组件的序列化信息流。一个实例就是一系列对于序列化信息的更改。预制件这个改变只存在编辑器里。当Unity执行构建的时候,预制件的更改将序列化...
Unity中HideInInspector和SerializeField http://blog.sina.com.cn/s/blog_697b1b8c0102uxvn.html Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来。 什么样的值会被显示在面板上?已经被序列化,但是没有用HideInInspector标记的...
public List<InventorySlot> BackPack; 现在来考虑如何向这个背包增加指定数量的物品,第一肯定能想到的是BackPack是个List,每次只要BackPack.Add(new Inventory(item,amount))就行了,但假若有重复的物品(比如背包里已经有fish了,探索游戏的过程中有拾取到了fish),我们应该先看List里是否已经有这个物品对应的Inventory...
有一个System.Serializable的class,平时作为public成员,可以直接在Inspector上显示和编辑。 我有成员变量比如float类型时,需要当某个属性被打开时,才在编辑器上显示,则将其设置成[HideInInspector],再在Editor代码中使用if(xxx){PropertyField(...)}的形式就可以实现了。
[HideInInspector][SerializedField] private int a; public int b{ get{returna;} } 然后在Editor中显示,EditorGUILayout.LabelField("value",game.B.ToString()); 4如果a是私有序列化变量,你不想在面板中做任何操作(不想看到,也不想写),但是想要在程序中给它赋值,那么用。