Unity开发中ExecuteInEditMode的使用

发表于2018-11-06
评论0 6.1k浏览
ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本。在Unity默认情况下,脚本只有在运行的时候才被执行,但加上ExecuteInEditMode属性后,不运行程序,也能执行脚本。

与PlayMode不同的是,函数并不会不停的执行。

Update : 只有当场景中的某个物体发生变化时,才调用。
OnGUI : 当GameView接收到一个Event时才调用。
OnRenderObject 和其他的渲染回调函数 : SceneVidw或者GameView重绘时,调用。

Awake与Start调用规则:
Awake:加载时调用。
Start:第一次激活时调用。

这个与运行模式下的调用规则一致。参见《Unity3D中函数执行顺序》。

需要注意的是,由于在两种模式下都可以运行,所有,切换模式的那一刻,值得我们留意一下。
不管是从编辑模式进入运行模式,还是从运行模式进入编辑模式,unity都会重新加载资源,所以:
  • 当该MonoBehavior在编辑器中被赋于给GameObject的时候,Awake, Start 将被执行。
  • 当Play按钮被按下游戏开始以后,Awake, Start 将被执行。
  • 当Play按钮停止后,Awake, Start将再次被执行。
  • 当在编辑器中打开包含有该MonoBehavior的场景的时候,Awake, Start将被执行。

使用方法:
using UnityEngine;  
using System.Collections;  
[ExecuteInEditMode]  
public class Example : MonoBehaviour {  
    public Transform target;  
    void Update() {  
        if (target)  
            transform.LookAt(target);  
    }  
}  

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论