【Unity】UnityEditor上でScriptのUpdate()などを動作させる


コーディング作業

UnityEditorでScriptを実行していない状態でもUpdate()などのメソッドを呼び出す方法を記載します。

方法

[ExecuteinEditMode]をつけることでそのクラスのUpdateなどが実行時以外でも呼び出されます。

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour {
    public Transform target;
    void Update() {
        if (target)
            transform.LookAt(target);
        
    }
}

Editor上でログを出力したり、UIを動的に変更するのに使いました。

スクリプトをEditモードで実行します

デフォルトでは、スクリプトコンポーネントはPlayモードでのみ実行されます。
この属性を追加することで各々のスクリプトコンポーネントはエディタがPlayモードでないときにコールバック関数が実行されます。
関数はPlayモードと異なり継続的に呼び出しされません。

Updateはシーンの何かが変更されたときのみ呼び出しされます。
OnGUIはゲームビューがEventを受け取った時のみ呼び出しされます。OnRenderObjectおよび他のレンダリングコールバック関数はシーンビューまたはゲームビューの再描画の都度、呼び出しされます。

https://docs.unity3d.com/jp/460/ScriptReference/ExecuteInEditMode.html

と公式に書いてますので、ほかにもOnGUIやOnRenderObjectも動作するようです。

2 thoughts on “【Unity】UnityEditor上でScriptのUpdate()などを動作させる

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です