6

我有一个非常简单的统一类,UnitRange(具有最小和最大范围)。

[System.Serializable]
public class UnitRange {
    public int Minimum;
    public int Maximum;
}

这会显示在检查器中(如果我创建了这种类型的公共变量。)虽然它的默认显示方式不是很好:

在此处输入图像描述

现在,我想知道如何改变这一点?我找到了如何更改单一行为的检查员,但找不到如何更改其他类的检查员。我希望它只是彼此相邻的两个数字,如下所示:

在此处输入图像描述

这只是一件小事,如果不可能,也不是什么大问题,尽管知道如何做也可以在以后证明更有用。

哦,是的,您可能已经注意到,我使用的是 c#,所以如果有任何示例代码在 c# 中,那就太好了。

谢谢。

4

3 回答 3

2

这在 Unity 的更高版本中不再适用。

才发现这是不可能的。

做到这一点的唯一方法是,每当您在单一行为中使用它时,为该单一行为提供一个自定义检查器,并在其中为该类提供您的自定义布局。为了使这更容易,您可以制作一个进行布局的方法,然后在每个单一行为中使用它。

于 2012-11-13T17:09:01.400 回答
1

在 Unity4 中,您可以使用PropertyDrawer

于 2015-02-03T14:16:32.117 回答
0

一种需要编写较少自定义检查器的解决方案是制作UnitRange一个组件。任何需要UnitRange你都可以注释的东西,[RequireComponent (typeof (UnitRange))]这样你就不必自己添加它了。检查UnitRange它是唯一连接的(如果不是,则错误/删除自身等)。

Start()然后让您的各个单元在using上缓存附加的单元范围组件,以GetComponent<UnitRange>()供以后使用(就像您当前所做的那样,如果您只是将可见性更改为私有并重用)。

最后 - 为 UnitRange 编写看起来不错的检查器。

于 2012-11-15T21:06:31.887 回答