UnityユーザーのためのUEブループリント入門
コードとビジュアル両方のスクリプトを比較してゲームエンジンを学びます

12. 名前空間

名前空間はUnreal Engineブループリントにない機能です。
  • 名前空間
  • [Unityのみ]名前空間を使ってみよう
  • [Unityのみ]名前空間に書ける型
  • [Unityのみ]クラスや構造体の中に書ける型

12. 名前空間

12.1 名前空間

名前空間はフォルダみたいなものです。
using 〇〇;
でフォルダの中に入っている機能が使えます。〇〇の名前はFolderAなど好きなものをつけることができます。別のプロジェクトで作成したライブラリやUnity Asset Storeからダウンロードしたソースコードに、同じ名前のクラスがあったとしても、名前空間が異なれば利用することが可能です。

12.2 [Unityのみ]名前空間を使う

namespaceで名前空間を定義します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace FolderA{
    public class A : MonoBehaviour{
        void Start(){
        }
        void Update(){

        }
    }
}
名前空間を入れ子にすることも可能です。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace FolderA{
    namespace FolderB{
        public class A : MonoBehaviour{
            void Start(){
            }
            void Update(){

            }
        }
    }
}
作成した名前空間にアクセスします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FolderA;

public class A : MonoBehaviour{
    void Start(){
        A a = GetComponent<A>();
    }
    void Update(){

    }
}

12.3 [Unityのみ]名前空間に書ける型

名前空間に書ける型は、
  • クラス
  • 構造体
です。名前空間を書かない場合はglobal namespaceに入れられます。

12.4 [Unityのみ]クラスや構造体の中に書ける型

クラスや構造体の中に書けるものは、
  • フィールド関数(メンバ変数)
  • メソッド(メンバメソッド)
  • 内部クラス
  • 入れ子にされた型
です。

12. 名前空間

UE BPにおける名前空間の機能はUE5.1から搭載されています。
🔗 参考リンク
Unreal Engine デベロッパードキュメント
ブループリント名前空間
ただしその目的が「不要なアセットがロードされないようにすることで、エディタでブループリント アセットを開く際にかかる時間を最適化」するもので、Unityが持つ名前空間の機能とは違うように思います。
Unreal EngineのC++では名前空間の概念はあります。詳しくは下記URL先にありますコーディング規約を読んでご確認ください。ここではUE BPに絞りUnityと比較しているので説明は省きます。

12.1 他プロジェクトからアセットを移動させる方法

Unityで言うところの名前空間がUE BPでは使えません。プロジェクトから他のプロジェクトにアセットをコピーさせる方法を紹介します。対象がアセットなので、Unityの名前空間のようなライブラリ的な利用には及びません。それからコピー操作なので元のアセットとは別の独立したアセットとして扱うことになります。
🔗 参考リンク
Unreal Engine デベロッパードキュメント
アセットを移行する
新しくプロジェクトを作成します。
適当にアセットを作成します。AアクタとRedマテリアルを作成します。AアクタはCube Static Meshコンポーネントを追加して、Cube Static MeshコンポーネントにRedマテリアルを追加します。
作成したAアクタを選択して右クリック > Asset Actions > Migrate..を行います。Migrateは一度に複数のアセットを選択してMigrateすることはできません。
Migrateを実行すると、Aアクタに依存するアセットが自動的に選択されます。
移動先の別プロジェクトのContentフォルダを指定します。
移動先プロジェクトのContentフォルダを確認します。Migrate後に移動先プロジェクトを起動すると、マテリアルのアイコンに色が反映されていない場合がありますが、一度マテリアルエディタを開くと反映していることが分かります。
🔗 参考リンク
ヒストリアブログ
[UE4] 他プロジェクトからアセットを移動させる方法
ぼっちプログラマのメモ
【UE4】【UE5】ユニークな(=重複しない)アセットパス・名を生成してくれるCreateUniqueAssetNameノードについて