0

いくつかの変数を保持するHierarchyというクラスを含むこの抽象クラスがあります(unity3dはインスペクターウィンドウに構造体を表示しません)。

この抽象クラスにはいくつかの子があり、それらのほとんどにはこの Hierarchy クラスが適していますが、そのうちの 1 つには適していません。それで、残りの子がまだ親階層クラスを使用している間に、この子に特定の階層クラスを持つことが可能かどうか疑問に思っていましたか?

    public class Hierarchy
{   
public Points points;
}

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

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

より具体的には、1 人の子供のポイント クラスの内容を変更し、他の子供は変更したくないのですが、可能ですか?

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 クラスは、Point のような特定のクラスではなく IChild メンバーを期待します。

一般的なメソッドにのみアクセスする必要がある場合は IChild として参照でき、Point などの特定のクラスが必要な場合は、そのようにアクセスするだけです。

于 2013-03-20T12:38:03.467 に答える