方便开发者开发的一些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
{
}
通过这种方式,可以自定义点击对象的层级选择: