名古屋出身ソフトウェアエンジニアのブログ

Unity でエディター拡張の設定をソースコードからオーバーライドする方法

公開:
更新:

Unity でエディター拡張パッケージを作成していて、パッケージ利用者がソースコードから設定(定数)を変更できる仕組みを考案しました。partial クラスを用いて実現しています。

純粋な C# スクリプトのみで動作するので、設定ファイルを読み込むロジック作成が不要になります。 Unity 以外でも、使い所はないかもしれないですが応用可能です。

やり方

配布元のパッケージには、デフォルト設定の定義を partial クラスで置いておきます。

// デフォルト設定の定義と値
public static partial class MyConfClass
{
    public static readonly float A = 1f;

    public static readonly float B = 2f;
}

利用者側では任意の場所にその partial クラスを拡張するスクリプトを配置し、静的コンストラクターで設定値を上書きします。

public static partial class MyConfClass
{
    static MyConfClass ()
    {
        // A の設定を 3 に変える
        A = 3f;
    }
}

スクリプトを変更するたびにコンパイルが走るので、常に最新の値を参照できます。