【Unity3d编辑器从入门到精通】标准的编辑器功能之方便开发调
2017-08-24 本文已影响17人
霸俊流年
方便开发者开发的一些API
ExecuteInEditMode
- 添加该定以后,当游戏更新时候将被执行。
- 在双击对象,加载场景,变量变化的时候被执行。
- 此外,GUI在执行OnGUI的脚本被执行。
相关脚本:
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
通过这种方式,可以自定义点击对象的层级选择:
子对象层级选择顺序