【Unity】Unityでファクトリーデザインパターンを当てはめてみる

2023年12月20日

Unityにおけるファクトリーパターンは、オブジェクトの生成をカプセル化するためのデザインパターンです。ファクトリーパターンは、クラスのインスタンス化を制御し、クライアントコードが具体的なクラスを直接参照することなくオブジェクトを生成できるようにします。

Unityにおいては、ファクトリーパターンは主にPrefabのインスタンス化やコンポーネントの生成に使用されます。通常、PrefabはUnityエディタ内で作成され、ゲーム中にインスタンス化されます。Prefabはゲームオブジェクトのテンプレートのようなものであり、同じ構造やコンポーネントを持つ複数のオブジェクトを簡単に生成するために使用されます。

サンプル

以下に、Unityでのファクトリーパターンの簡単な例を示します。

public class ObjectFactory : MonoBehaviour
{
    public GameObject prefab; // 生成するPrefab

    public GameObject CreateObject()
    {
        return Instantiate(prefab); // Prefabのインスタンス化
    }
}

上記の例では、ObjectFactoryクラスがファクトリーとなります。CreateObjectメソッドは、指定されたPrefabをインスタンス化して生成します。これにより、クライアントコードは具体的なクラスやPrefabを意識することなく、ファクトリーメソッドを呼び出すだけでオブジェクトを生成することができます。

ファクトリーパターンは、オブジェクトの生成に関する複雑さを隠蔽し、柔軟性と拡張性を向上させることができます。また、生成するオブジェクトの種類を動的に切り替えることも容易です。Unityにおいては、このパターンを使用することで、ゲームオブジェクトやコンポーネントの生成を効果的に管理することができます。

参考動画(公式)