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

方便开发者开发的一些API

ExecuteInEditMode

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

【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试_第1张图片
未运行的情况下,显示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
用于丰富上下文菜单的功能

【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试_第2张图片
右键点击脚本标题或者点击齿轮部分弹出

相关代码

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
用于指定要选择的对象,通常用在控制视图中要选择的对象时候使用。

【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试_第3张图片
当点击多层级的对象后

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

using UnityEngine;

[SelectionBase]
public class NewBehaviourScript : MonoBehaviour
{
}
【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试_第4张图片
此时点击多层级的对象,将选中子物体,再次点击才会选中Cube

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


【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试_第5张图片
子对象层级选择顺序

你可能感兴趣的:(【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调试)