隐藏一个类中检查器中的字段,但不隐藏另一个类
本文关键字:隐藏 字段 另一个 一个 检查 | 更新日期: 2023-09-27 18:28:15
我有三个类,A
类是抽象的,B
和C
类扩展了它。
当我把C
放在游戏对象上时,有没有办法隐藏类A
中的属性,当我把类B
放在游戏物体上时,可以显示它?
public abstract class A : MonoBehaviour {
public float myFloat = 0f;
}
public class B : A {
// Show myFloat in inspector
}
public class C : A {
// Do not show myFloat in inspector
}
我唯一能想到的另一种方法是为这两个类创建我自己的Editor类,但如果可能的话,我希望避免这种情况。。。
查看自定义检查器:https://unity3d.com/learn/tutorials/modules/intermediate/editor/building-custom-inspector.这允许您为任何您喜欢的类型自定义检查器。
这肯定会起作用,尽管如果你的类型中有很多成员,这可能会很麻烦。除此之外,我看不到太多机会。
查看[HideInInspector],您需要在定义变量的位置应用属性。
Unity3d文档网站中引用的示例(提供的帮助很少…):
public class ExampleClass : MonoBehaviour
{
[HideInInspector]
public int p = 5;
}
我想你的意思是,你是否可以在一个派生类中向父(抽象)类隐藏变量,并让它可以从另一个派生类别访问?如果我是对的,那么C#不能使用私有/受保护的继承,因为C#只允许公共继承。