29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

MonoBehaviourは通常、Playモードのみで実行される。
Playモードとは再生ボタンが押下され実行されている状態のこと。
play_mode.PNG

ExecuteInEditMode属性を追加するとPlayモードでないとき(==Editモード)にスクリプトを実行できるようになる。

TestEditMode.cs
using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class TestEditMode : MonoBehaviour {

	void Start() {
		Debug.Log("Start");
	}

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

	void OnGUI() {
		Debug.Log("OnGUI");
	}

	void OnRenderObject ()
	{
		Debug.Log("OnRenderObject");
	}
}

公式ドキュメントをみる限りだと、Editモード実行できるものは

  • Update
  • OnGUI
  • OnRenderObject

の3つのようみたい。

Update

シーンの中で何か変更があったときに実行される。

Update.PNG
GameObjectを追加してみた。
Update2.PNG
実行された。

Update3.PNG
Update4.PNG
GameObjectを移動してみた。
Update5.PNG
実行された。

OnGUI

ゲームビューがイベントを受け取ったとき実行される?

OnGUI.PNG
ゲームビューをアクティブにしてみると
OnGUI2.PNG
実行された。

OnRenderObject

シーンビューやゲームビューが描画されるたびに実行される。

上のUpdateとOnGUIのログをみるとこのメソッドが実行されていることがわかります。
とりあえず、なんか描画されれば実行される。

29
22
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?