拓展编辑器(十六)_拓展Game视图

  Game视图输出的是最终的游戏画面,理论上是不需要拓展的,不过Unity也可以对其进行拓展。它的拓展主要分为两种:运行模式下以及非运行模式下。

  游戏挂在游戏对象后,需要运行游戏才可以执行脚本的生命周期,不过非运行模式下其实也可以执行脚本,比如,Game视图在非运行模式下也可以绘制GUI。其原理就是在脚本类名上方声明[ExecuteInEditMode],表示此脚本在编辑模式中生效。代码如下所示:

 

using UnityEngine;
#if UNITY_EDITOR
[ExecuteInEditMode]
public class 拓展Game视图 : MonoBehaviour
{
    private void OnGUI()
    {
        if (GUILayout.Button("Click"))
        {
            Debug.Log("click!!");
        }
        GUILayout.Label("Hello World!");
    }
}
#endif

  如代码所示,在类上面标记[ExecuteInEditMode],表示非运行模式下也会执行代码的声明周期,接着在OnGUI()方法中就可以绘制元素了。此外,此类脚本通常只是用来做编辑器,正式发布后是不需要的,此时可以用UNITY_EDITOR条件编译发布后剥离掉。

  效果如下:

 

 

posted @ 2018-11-06 23:01  むふむふ  阅读(256)  评论(0编辑  收藏  举报