【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试

方便开发者开发的一些API

ExecuteInEditMode

  • 添加该定以后,当游戏更新时候将被执行。
  • 在双击对象,加载场景,变量变化的时候被执行。
  • 此外,GUI在执行OnGUI的脚本被执行。

未运行的情况下,显示GUI

相关脚本

using UnityEngine;

[ExecuteInEditMode]
public class NewBehaviourScript : MonoBehaviour
{
    [Range(0,10)]
    public int number;

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

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

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

    private void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 150, 100), "I am a button"))
            print("You clicked the button!");
    }
}

ContextMenuItem
用于丰富上下文菜单的功能

右键点击脚本标题或者点击齿轮部分弹出

相关代码

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    [Range (0, 10)]
    public int number;

    [ContextMenu ("RandomNumber")]
    void RandomNumber ()
    {
        number = Random.Range (0, 100);
    }

    [ContextMenu ("ResetNumber")]
    void ResetNumber ()
    {
        number = 0;
    }
}

SelectionBase
用于指定要选择的对象,通常用在控制视图中要选择的对象时候使用。

当点击多层级的对象后

当写了如下脚本,并挂载到子物体上:

using UnityEngine;

[SelectionBase]
public class NewBehaviourScript : MonoBehaviour
{
}
此时点击多层级的对象,将选中子物体,再次点击才会选中Cube

通过这种方式,可以自定义点击对象的层级选择:


子对象层级选择顺序
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容