【发布时间】:2015-07-13 22:19:08
【问题描述】:
当我有一个private 变量id 时,我在定义它之前写[SerializeField]:
class A{
[SerializeField]
private int id;
}
还有,我还有一门课
Class B : A{
}
当我在一个对象上添加组件B时,我可以在inspector中看到变量id,我该如何隐藏它?
【问题讨论】:
当我有一个private 变量id 时,我在定义它之前写[SerializeField]:
class A{
[SerializeField]
private int id;
}
还有,我还有一门课
Class B : A{
}
当我在一个对象上添加组件B时,我可以在inspector中看到变量id,我该如何隐藏它?
【问题讨论】:
编写自定义检查器很好,但如果您唯一需要更改的是序列化字段的可见性,则通常很乏味。
在序列化字段之前尝试[HideInInspector] 属性。它将被序列化,但不会显示在检查器中。
编辑
我会尽量简单解释一下:
设置对象字段并获取它们的过程, 分别称为反序列化和序列化。团结的 序列化程序能够序列化许多不同类型的字段,但是 不是全部。
简而言之:
序列化
这个术语用来表示从运行时内存到外部的每个数据流(例如检查器、磁盘上的文件……)
序列化
该术语用于指示流向运行时内存的每个数据流到外部(例如,更改检查器中的值,序列化程序线程会将其反序列化到运行时内存中)。
重点是在某些情况下,您希望对给定字段进行序列化(例如,将其保存到磁盘上的预制件中),但又不想在检查器中显示它。
如果是这种情况,重写整个检查器是一种矫枉过正。请改用[HideInInspector] 属性。
如果您不希望它被序列化或显示在检查器中,只需将其设为不带[SerializedField] 的私有或公共并将其标记为[NonSerialized]。
【讨论】:
【讨论】:
AssetBundles,发现我可以换编辑器,这对我来说是新的。现在我发现我可以换inspector了。 Unity 真的让我大吃一惊。