Unity 生命周期函数,事件函数

1、简介

生命周期也叫消息机制

1.什么是生命周期函数:     Unity 脚本从唤醒到销毁的过程。

    过程:初始阶段 -> 物理阶段 -> 输入事件 -> 游戏逻辑 -> 场景渲染 -> 结束阶段

2.生命周期(也叫消息机制)什么时候执行

当满足某种条件 Unity 引擎自动调用的函数。

如:物体载入时 Awake开始执行

3.生命周期的 函数名 蓝色所以要注意大小写的区分 不能输错

2、初始阶段

Reset:当拖动脚本到组件栏的时候,还有物体被reset的时候会调用

void Reset()
{
    Debug.Log("Reset");
}

Awake() 唤醒:脚本挂载在物体上,物体载入时立即调用一次且只执行一次,常用于游戏开始前进行初始化(无论当前组件是否启用)

void Awake()
{
    Debug.Log("Awake");
}

OnEnable() 当可用:每当脚本对象启用时调用(可重复调用)。

void OnEnable()
{
    Debug.Log("Enable");
}

Start() 开始:脚本挂载在物体上,物体载入且 脚本对象启用时被调1次。

常用于数据或游戏逻辑初始化,执行时机晚于Awake

void Start () {
    Debug.Log("Start");
}

3、物理阶段

1.FixedUpdate 固定更新:

执行时机:脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,跟物理相关的。

设置更新频率: “Edit”-->“Project Setting”-->“Time”--> “Fixed Timestep”值,默认为0.02s.

特性:不受渲染帧的影响,渲染时间固定,受时间缩放Time.timeScale的影响

void FixedUpdate()
{
    Debug.Log("FixedUpdate");
}

2.OnCollisionXXX 碰撞:

执行条件:挂载脚本的对象必须有RigidbodyCollider,且和另一个Collider物体发生接触

OnCollisionEnter:发生碰撞时触发一次

OnCollisionExit:退出碰撞是发生一次

OnCollisionStay:发生碰撞后每帧触发

当满足碰撞条件时调用。

3.OnTriggerXXX 触发:

当满足触发条件时调用。

4.OnControllerColliderHit(ControllerColliderHit hit) 角色控制器触发

4、输入事件

OnMouseEnter 鼠标移入:

    鼠标移入到当前 Collider 时调用。

OnMouseOver 鼠标经过:

    鼠标经过当前 Collider 时调用。

OnMouseExit 鼠标离开:

    鼠标离开当前 Collider 时调用。

OnMouseDown 鼠标按下:

    鼠标按下当前 Collider 时调用。

OnMouseUp 鼠标抬起:

鼠标在当前 Collider 上抬起时调用。

5、游戏逻辑(更新)

Update 更新:

// 实现时机:每帧(约0.02s)更新,受渲染帧影响      

// 适用性:游戏的逻辑

// 特性:受渲染帧影响,机器性能越高,渲染帧间隔越短,时间不固定

脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关。

LateUpdate 延迟更新:

// 适用性:跟随的逻辑  

// 特性:晚于Update

    在 Update 函数被调用后执行,适用于跟随逻辑。

6、场景渲染

OnBecameVisible 当可见:

    当 Mesh Renderer 在任何相机上可见时调用。

OnBecameInvisible 当不可见:

    当 Mesh Renderer 在任何相机上都不可见时调用。

7、结束阶段

OnDisable 当不可用:

对象变为不可用或附属游戏对象非激活状态时此函数被调用。

OnDestroy 当销毁:

当脚本销毁或附属的游戏对象被销毁时被调用。

OnApplicationQuit 当程序结束:

应用程序退出时被调用。

作用:调试方式,将消息打印至控制台Console

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值