0

我有这个抽象类,它包含一个名为 Hierarchy 的类,其中包含一些变量(unity3d 不会在检查器窗口上显示结构)。

这个抽象类有一些孩子,虽然对于他们中的大多数人来说,这个 Hierarchy 类是合适的,但对于其中一个人来说却不是。所以我想知道是否可以为这个孩子设置一个特定的 Hierarchy 类,而其余的孩子仍然使用父 Hierarchy 类?

    public class Hierarchy
{   
public Points points;
}

public class Points
{   
public GameObject[] pointsToActivateOnCorrectAnswer;
public GameObject[] pointsToDeactivateOnCorrectAnswer;

public GameObject[] pointsToActivateOnWrongAnswer;
public GameObject[] pointsToDeactivateOnWrongAnswer;
}
public Hierarchy hierarchy;

更具体地说,我想为一个孩子而不是其他孩子修改 Points 类的内容,这可能吗?

4

2 回答 2

1

我建议使用泛型类。像这样的东西...

public class Points
{
    ...
}

public class TextAndButton
{
    ...
}

public class Hierarchy<T>
{
    T Value { get; set; }
    Hierarchy<T> Hierarchy { get; set; }
}

因此,您可以Hierarchy<Point>像使用Hierarchy<TextAndButton>.

于 2013-03-19T10:21:19.917 回答
0

我可能跑题了,但这看起来是接口的完美用例。所有类(如您的 Point 类)都可以实现一个通用接口,我们称其为 IChild,它引用了 Hierarchy 需要更新或访问的通用方法和变量。然后,您的 Hierarchy 类期望 IChild 成员而不是特定类,例如 Point。

当您只需要访问常用方法时,您可以引用为 IChild,当您需要特定类(如 Point)时,您只需访问它即可。

于 2013-03-20T12:38:03.467 回答