特定のクラスのすべてのサブクラスのコンパニオン オブジェクトを自動的に生成する方法はありますか?
たとえば、サブクラスであるべき場所class Component[T]
を持つ があります。例: .val companion: CompType[T]
T
class Transform extends Component[Transform]
各サブクラスのコンパニオン オブジェクトを生成する方法はありますか?
編集:
これらすべての最終目標は、エンティティ システムです。各コンパニオン オブジェクトには、コンポーネントの配列からその特定のタイプのコンポーネントを検索するために使用できる一意の整数 (継承された特性から取得する) があります。たとえば、Transform コンポーネントをエンティティに追加する場合は、次のように呼び出します。
addComponent(entity, Transform, new Transform(params))
新しいTransform
オブジェクトは、Transform コンパニオン オブジェクトによって提供されるインデックスで、エンティティを表すコンポーネントの配列に配置されます。しかし、コンパニオン オブジェクトは、継承したトレイトからインデックスを取得するため、名前を除いて、タイプアウトされた違いはありません。したがって、それらを生成するのが良い理由です。
最初から具体的でなくてすみません。それでも混乱する場合は、私がこれを完全に間違った方法で行っている可能性があります。そう思うなら遠慮なく言ってください。