コマンドライン引数
ゲームオブジェクト

起動時エディタスクリプト実行

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Unity起動の直後に,ユーザのアクションなしでプロジェクトのエディタスクリプト コードを実行することが役立つことがしばしばあります。これは InitializeOnLoad 属性を static constructor (スタティック コンストラクタ)のあるクラスに適用することで実現できます。スタティック コンストラクタはクラスと同じ名前の関数で静的に宣言された関数であり,戻り値や引数がありません(詳細は ここ を確認下さい):-

using UnityEngine;
using UnityEditor;

[InitializeOnLoad]
public class Startup {
    static Startup()
    {
        Debug.Log("Up and running");
    }
}

スタティック コンストラクタは,どのようなスタティック関数やクラスのインスタンスが使用されるよりも先に呼び出しされることが保証されていますが,InitializeOnLoad 属性によりエディタ起動時に呼び出しされることを保証します。

このテクニックが使用される例は,エディタで通常のコールバックをセットアップするとき(いわば“フレーム アップデート”)です。EditorApplicationクラスにはupdate というデリゲートがあり,これはエディタが実行されている間,1秒間に何度もコールされます。プロジェクト起動時にこのデリゲートを有効化するには,次のようなコードを使用します:-

using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
class MyClass
{
    static MyClass ()
    {
        EditorApplication.update += Update;
    }

    static void Update ()
    {
        Debug.Log("Updating");
    }
}

コマンドライン引数
ゲームオブジェクト