コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Resourcesフォルダからのプレハブのパスを定数で管理するクラスを生成する拡張機能

関連記事

// プレハブを読み込みます
Resources.Load<GameObject>("Enemy");

Resources.Loadでプレハブを読み込む処理を実装する場合は
文字列でResourcesフォルダからのパスを指定するので
プレハブを別のフォルダ階層に移動した場合にコンパイルエラーになりません(当然ですが…)

その問題を防ぐために、プレハブのパスを定数で管理するクラスを
自動生成する機能を作りました

上記のファイルをUnityプロジェクトのEditorフォルダに追加すると
Unityエディタのメニューに「Tools>Create Prefab Path」が追加されます
これを選択するとプレハブのパスを定数で管理するPrefabPath.csが生成されます

/// <summary>
/// プレハブのパスを定数で管理するクラス
/// </summary>
public static class PrefabPath
{
    public const string Enemy = "Enemy";
}
// プレハブを読み込みます
Resources.Load<GameObject>(PrefabPath.Enemy);

プレハブを別のフォルダ階層に移動した後に
「Tools>Create Prefab Path」を実行すると定数名が変わるので
コンパイルエラーを発生させることができてゲーム実行時エラーを防ぐことができます