Awake()
当物体载入时里调用一次;经常用于在游戏开始前进行初始化,可判断当满足某种条件执行此脚本this.enable=true.在游戏运行时便开始执行,通常用于创建游戏对象
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lifeCycle : MonoBehaviour
{
private void Awake()
{
Debug.Log("Awake--" + Time.time+"--"+this.name);
}
}
测试效果
Start()
物体载入时且脚本对象启用时立即被调用一次。常用于数据或游戏逻辑的初始化,执行时机晚与Awake。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///<summary>
///
///</summary>
public class lifeCycle : MonoBehaviour
{
private void Awake()
{
Debug.Log("Awake--" + Time.time+"--"+this.name);
}
private void Start()
{
Debug.Log("Start--" + Time.time+"--"+this.name);
}
}
注意:当有两个游戏对象都有Awake()和Start()两个方法时,两个方法的执行顺序应该是(先执行分别两个物体各自的Awake(),当两个物体的Awake方法都执行完成时再分别执行两个游戏对象的Start()
FixedUpdate()
FixedUpdate()是执行在物理阶段的方法
固定更新,每隔固定时间执行一次(默认0.02S,固定时间间隔可以修改)
用于对物体做物理操作,适合对象的,比如:移动、爆炸、倒塌…不会受到渲染影响
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///<summary>
///
///</summary>
public class lifeCycle : MonoBehaviour
{
private void Awake()
{
Debug.Log("Awake--" + Time.time+"--"+this.name);
}
private void Start()
{
Debug.Log("Start--" + Time.time+"--"+this.name);
}
private void FixedUpdate()
{
Debug.Log(Time.time);
}
}
效果展示
Update()
脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关。
LateUpdate()
LateUpdate()为延时更新在Update函数被调用后执行,适用于跟随逻辑
比如,在需要相机跟随时,将物体的移动放在Update()中处理,而跟随相机放在LateUpdate()中进行处理
常见的鼠标输入事件
- OnMouseEnter 鼠标移入:
鼠标移入到当前Collider时调用。 - OnMouseOver 鼠标经过:
鼠标经过当前Collider时调用。 - OnMouseExit 鼠标离开:
鼠标离开当前Collider时调用。 - OnMouseDown 鼠标按下:
鼠标按下当前Collider时调用。 - OnMouseUp 鼠标抬起:
鼠标在当前Collider上抬起时调用。