[英]Unity Serializable Class Custom Inspector
我有一个非常简单的统一类,UnitRange(具有最小和最大范围)。
[System.Serializable]
public class UnitRange {
public int Minimum;
public int Maximum;
}
这显示在检查器中(如果我创建了这种类型的公共变量。)虽然它显示的默认方式不是很好:
现在,我想知道如何改变这个? 我找到了如何改变monobehaviours的检查员,虽然找不到如何更改其他类的检查员。 我希望它只是彼此相邻的两个数字,如下所示:
这只是一件小事,如果不可能的话,这不是一个大问题,虽然知道如何在以后证明更有用。
哦,是的,你可能已经注意到了,我正在使用c#,所以如果c#中的任何示例代码都会很好。
谢谢。
在Unity的更高版本中不再适用。
刚发现这是不可能的。
实现这一目标的唯一方法是,无论何时在单一行为中使用它,都要给那个monobehaviour一个自定义检查员,并在那里给你的自定义布局。 为了使这更容易,你可以制作一个进行布局的方法,然后在每个monobehaviour中使用它。
在Unity4中,您可以使用PropertyDrawer进行此操作
一个需要编写较少自定义检查器的解决方案是使UnitRange
成为一个组件。 任何需要UnitRange
东西都可以使用[RequireComponent (typeof (UnitRange))]
进行注释,这样你就不必经历自己添加它的麻烦了。 使UnitRange
检查它是唯一附加的(如果不是则错误/删除自身等)。
然后使用GetComponent<UnitRange>()
使各个单元在Start()
上缓存附加的单元范围组件,以备日后使用(如您刚才所做,如果只是将可见性更改为private GetComponent<UnitRange>()
用)。
最后 - 编写看起来不错的UnitRange的检查器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.