ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本。
在Unity默认情况下,脚本只有在运行的时候才被执行。
但加上ExecuteInEditMode属性后,不运行程序,也能执行脚本。
ExecuteInEditMode与PlayMode不同的是,函数并不会不停的执行。调用规则如下:
Awake: 加载时调用。
Start: 第一次激活时调用。
Update: 只有当场景中的某个物体发生变化时,才调用。
OnGUI: 当GameView接收到一个Event时才调用。
OnRenderObject和其他的渲染回调函数: SceneVidw或者GameView重绘时,调用。
演示代码:
using UnityEngine;
[ExecuteInEditMode]
public class Example : MonoBehaviour
{
public Transform m_target;
private void OnEnable()
{
Debug.Log(m_target.name);
}
}