每个Unity脚本派生的基类。
一、Public Function
1、在几秒之后调用方法
public void Invoke(string methodName,float time);
注:1)应在脚本生命周期(Start、Update、OnGUI、FixedUpdate、LaterUpdate)中调用。
2)不接受含参数的方法。
3)在Time.timeScale=0时,无效;支持重复调用:InvokeRepeating。
2、在n秒后调用方法,之后每隔m秒重复调用
public void InvokeRepeating(string methodName,float time,float repeatRate);
3、取消所有调用
public void CancelInvoke();
4、启动一个协同程序
public Coroutine StartCoroutine(IEnumerator routine);
注:协同程序的返回类型必须为IEnumerator,使用yield return。
5、等待若干秒
WaitForSeconds
6、终止一个协同程序
public void StopCoroutine(string methodName);
public void StopCoroutine(IEnumerator routine);
二、Static Function
在Unity控制台输出消息
public static void print(object message);
三、Message
1、脚本实例被创建时调用
Awake
注:用于游戏对象的初始化,早于所有脚本的Start函数。
2、Update函数第一次运行之前调用
Start
注:用于游戏对象的初始化。
3、每帧调用一次,更新频率与设备的性能有关。
Update
注:用于更新游戏场景和状态,帧率是变化的。
4、每个固定物理时间间隔调用一次
FixedUpdate
注:用于物理状态的更新。
5、每帧调用一次(在Update调用之后)
LateUpdate
注:用于更新游戏场景和状态,和相机相关的更新一般放在这里。
6、鼠标移入GUI控件或者碰撞体时调用
OnMOuseEnter
例:根据鼠标状态,设置游戏对象的颜色
7、鼠标停留在GUI控件或者碰撞体时调用
OnMouseOver
8、鼠标移出GUI控件或者碰撞体时调用
OnMouseExit
9、鼠标在GUI控件或者碰撞体上按下时调用
OnMouseDown
10、鼠标按键释放时调用
OnMouseUp
11、当其它碰撞体进入触发器时调用
OnTriggerEnter
注:可以被用作协同程序,在函数中调用yield语句
例:贪吃蛇,蛇吃掉食物。
12、当其他碰撞体离开触发器时调用
OnTriggerExit
13、当其他碰撞体停留在触发器时调用
OnTriggerStay
14、当碰撞体或者刚体与其它碰撞体或者刚体接触时调用
OnCollisionEnter
15、当碰撞体或者刚体与其它碰撞体或者刚体停止接触时调用
OnCollisionExit
16、当碰撞体或者刚体与其它碰撞体或者刚体保持接触时调用
OnCollisionStay
注:OnCollisionEnter与OnTriggerEnter的区别
1、如果想实现两个刚体物理的实际碰撞效果时候用OnCollisionEnter,Unity引擎会自动处理刚体碰撞的效果。OnCollisionEnter方法必须是在两个碰撞体都不勾选isTrigger的前提下才能进入。
2、如果想在两个物体碰撞后自己处理碰撞事件用OnTriggerEnter。只要勾选一个isTrigger,那么就能进入OnTriggerEnter方法。
17、当控制器移动时与碰撞体发生碰撞时调用
OnControllerColliderHit
注:触发需具备的条件
1、脚本一定要挂在带有角色控制器的物体上。
2、调用Move方法,使角色控制器运动。
例:角色控制器可以利用这个方法推开前面的碰撞体。
18、对于任意一个相机可见时调用
OnBecameVisible
19、对于任意一个相机不可见时调用
OnBecameInvisible
注:1)OnBecamevisible与OnBecameInvisible所在的脚本需要挂在要判断的物体上,同时该物体需要有Renderer Component。
2)调试时需满足出了摄像机以及Scene窗口,才能调用OnBecameInvisible,打包成exe无影响。
20、对象启用或激活时调用
OnEnable
注:调用时间:在Awake之后、Start之前调用。
21、对象禁用或取消激活时调用
OnDisable
22、脚本销毁时调用
OnDestroy
23、渲染GUI和处理GUI消息时调用
OnGUI
注:MonoBehaviour的enable属性设为false,OnGUI()将不会被调用。