MonoBehaviour组件的生命周期

Editor:
Reset;

Initialization:
Awake
OnEnable
Start

Physic:
FixedUpdate
OnTriggerXXX
OnCollisionXXX

Input events:
OnMouseXXX

Game logic:
OnUpdate
LateUpdate

Scene rendering:
OnWillrenderObject
OnPrecull
OnBecameVisible
OnBecameInVisible
OnRenderObject
OnPostRender
OnRenderImage

Gizmo rendering:
OnDrawGizmos

GUI rendering:
OnGUI

Pausing:
OnApplicationPause

Disable:
OnDisable

Decommission:
OnDestory
OnApplicationQuit

Unity中的MonoBehaviour生命周期方法为我们提供了在不同游戏阶段执行特定逻辑的时机,而协程则可以处理延时和时间相关的任务。结合GUI系统,我们可以创建一个实时更新的计时器界面。以下是如何结合这些组件实现计时器功能的步骤和代码示例: 参考资源链接:[Unity编程基础:Monobehaviour与协程详解](https://wenku.youkuaiyun.com/doc/588g6b65ro) 1. **创建计时器类**:首先,创建一个新的C#脚本,并将其附加到一个新的GameObject上,这个脚本将继承自MonoBehaviour。 2. **使用`Awake()`和`Start()`方法**:`Awake()`用于在脚本实例化时执行一次的初始化,`Start()`用于游戏运行开始时的初始化。 3. **定义协程`StartCoroutine(Timer())`**:实现一个名为`Timer()`的协程,用于处理计时逻辑。 4. **更新GUI**:在`OnGUI()`方法中更新计时器的显示。`OnGUI()`方法每帧都会被调用,可以在这里响应用户的交互,比如开始和停止计时器。 以下是具体的代码实现: ```csharp using System.Collections; using UnityEngine; using UnityEngine.UI; public class TimerScript : MonoBehaviour { private float startTime; private bool isTiming; void Awake() { startTime = 0f; isTiming = false; } void Start() { // Start the timer coroutine StartCoroutine(Timer()); } IEnumerator Timer() { while (true) { // Display timer OnGUI(); yield return null; } } void OnGUI() { if (isTiming) { // Update and display the timer float t = Time.time - startTime; GUILayout.Label( 参考资源链接:[Unity编程基础:Monobehaviour与协程详解](https://wenku.youkuaiyun.com/doc/588g6b65ro)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值