我有一个非常简单的统一类,UnitRange(有最小和最大范围)。
[System.Serializable]
public class UnitRange {
public int Minimum;
public int Maximum;
}
这显示在检查器中(如果我创建了这种类型的公共变量。)虽然它显示的默认方式不是很好:
现在,我想知道如何改变这个?我找到了如何改变monobehaviours的检查员,虽然找不到如何更改其他类的检查员。我希望它只是彼此相邻的两个数字,如下所示:
这只是一件小事,如果不可能的话,这不是一个大问题,虽然知道如何在以后证明更有用。
哦,是的,正如你可能已经注意到的那样,我正在使用c#,所以如果c#中的任何示例代码都会很好。
感谢。
答案 0 :(得分:2)
在Unity的更高版本中不再适用。
刚发现这是不可能的。
实现这一目标的唯一方法是,无论何时在单一行为中使用它,都要给那个monobehaviour一个自定义检查员,并在那里给你的自定义布局。为了使这更容易,你可以制作一个进行布局的方法,然后在每个monobehaviour中使用它。
答案 1 :(得分:1)
在Unity4中,您可以使用PropertyDrawer
进行此操作答案 2 :(得分:0)
一个需要编写较少自定义检查器的解决方案是将UnitRange
作为一个组件。任何需要UnitRange
的内容都可以使用[RequireComponent (typeof (UnitRange))]
进行注释,这样您就不必经历自己添加它的麻烦。让UnitRange
检查它是唯一附加的(如果不是则错误/删除自身等)。
然后让各个单元使用Start()
在GetComponent<UnitRange>()
上缓存附加的单位范围组件,以备日后使用(如您刚才所做,如果您只是将可见性更改为私有并重复使用)。< / p>
最后 - 编写看起来不错的UnitRange的检查器。