我有这个抽象类,它包含一个名为Hierarchy的类,它包含一些变量(unity3d不会在检查器窗口中显示Structs)。
这个抽象类有一些子节点,而对于它们中的大多数,这个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课程的内容,是否可能?
答案 0 :(得分:1)
我建议使用泛型类。像这样......
public class Points
{
...
}
public class TextAndButton
{
...
}
public class Hierarchy<T>
{
T Value { get; set; }
Hierarchy<T> Hierarchy { get; set; }
}
因此,您可以像使用Hierarchy<Point>
的实例一样轻松地使用Hierarchy<TextAndButton>
的实例。
答案 1 :(得分:0)
我可能不在话题,但这看起来像是一个完美的界面用例。所有类(如Point类)都可以实现一个公共接口,让我们称之为IChild,它引用了层次结构需要更新或访问的常用方法和变量。然后,您的Hierarchy类需要IChild成员而不是特定的类,如Point。
当你只需要访问常用方法时,你可以引用IChild,当你需要一个特定的类时,比如Point,你只需要访问它。