首页 > 其他分享 >Unity生命周期

Unity生命周期

时间:2024-10-18 11:31:48浏览次数:1  
标签:生命周期 Log void Update Unity 调用 Debug FixedUpdate

基础概念

游戏的本质就是一个死循环,每一次循环都会处理游戏逻辑并更新一次游戏画面之所以能看到画面在动,是因为切换画面速度达到一定速度时人眼就会认为画面是动态且流畅的一帧就是执行了一次循环,Unity底层已经封装好了这个死循环我们只需要利用Unity的生命周期函数的规则来执行游戏逻辑即可。

  • Awake 始终在任何 Start 函数之前并在实例化预制件之后调用此函数。因为比Start快所以一般用于初始化一些字段(如果游戏对象在启动期间处于非活动状态,则在激活之后才会调用 Awake。)
  • OnEnable (仅在对象处于激活状态时调用)在启用对象后立即调用此函数。这个函数可以重复调用,意思就是激活后取消激活再激活还会调用
  • Start 仅当启用脚本实例后,才会在第一次帧更新之前调用 Start,这个函数只会调用一次所以可以用来注册一些自己的事件。
  • FixedUpdate 调用 FixedUpdate 的频度常常超过 Update。如果帧率很低,可以每帧调用该函数多次;如果帧率很高,可能在帧之间完全不调用该函数。在 FixedUpdate 之后将立即进行所有物理计算和更新。在 FixedUpdate 内应用运动计算时,无需将值乘以 Time.deltaTime。这是因为 FixedUpdate 的调用基于可靠的计时器(独立于帧率)FixedUpdate的使用可以用在2d玩家移动时碰撞的逻辑,因为RigiBody2D的内部也是使用FixedUpdate 帧率相同时碰撞时不会发生颤动,如果使用Update控制移动碰撞会发生颤动,这是之前遇到的bug需要注意一下。
  • Update 每帧调用一次 Update。这是用于帧更新的主要函数。
  • LateUpdate 每帧都会调用一次但在Update执行完成后,也就是比Update慢半拍。
  • OnDisable (仅在对象从激活状态到非激活状态时调用)可以说是OnEnable的反义函数。
  • OnDestroy OnDestroy:对象存在的最后一帧完成所有帧更新之后,调用此函数(可能应 Object.Destroy 要求或在场景关闭时销毁该对象)
    这里贴一张Unity官方提供的生命周期函数的执行图

代码示例

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;

public class GameMono : MonoBehaviour
{
    private void Awake()
    {
        Debug.Log("Awake执行了");
    }
    private void OnEnable()
    {
        Debug.Log("OnEnable执行了");

    }
    private void Start()
    {
        Debug.Log("Start执行了");
    }

    private void FixedUpdate()
    {
        Debug.Log("FixedUpdate正在执行");
    }
    private void Update()
    {
        Debug.Log("Update正在执行");
    }
    private void LateUpdate()
    {
        Debug.Log("LateUpdate正在执行");
    }

    private void OnDisable()
    {
        Debug.Log("OnDisable执行了");
    }
    private void OnDestroy()
    {
        Debug.Log("OnDestroy执行了");
    }
}

标签:生命周期,Log,void,Update,Unity,调用,Debug,FixedUpdate
From: https://www.cnblogs.com/comradexiao/p/18473937

相关文章

  • [Spring]——IOC,DI,Bean的生命周期
    目录一.反转(转移)控制(IOC)二.DI依赖注入三.bean的生命周期1.对象的生命周期2.为什么要学习生命周期3.生命周期的三个阶段(1)创建(2)初始化方法两种实现方法细节问题(3)销毁(资源释放的操作)两种实现方法(和初始化的差不多)细节分析4.对象生命周期的总结完整代码5.后置处......
  • UI范式:页面和自定义组件生命周期
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • Vue3 生命周期钩子
    1、setup():开始创建组件之前,在beforeCreate和created之前执行,创建的是data和method2、onBeforeMount():组件挂载到节点上之前执行的函数;3、onMounted():组件挂载完成后执行的函数;4、onBeforeUpdate():组件更新之前执行的函数;5、onUpdated():组件更新完成之后......
  • 【Unity微信】Unity发布微信小游戏+对接第三方SDK过程
    官方文档:https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/上面的文档,能完成库的导入和发布操作下面开始调用接口获取玩家信息12///<summary>3///初始化SDK4///</summary>5privatevoidInitSDK()6{7......
  • bean 生命周期
    生命周期实例化:通过反射调用构造方法创建Bean实例属性赋值:把配置文件的值或IOC容器中的其他bean注入属性中初始化:bean进入初始化阶段,spring提供了3种方式对bean加工处理@PostConstruct注解指定初始化方法实现InitializingBean接口,复写afterPropertiesSet......
  • Unity Pico开发之基础功能(1)
    前言:继专栏上一篇文章搭建开发环境后,本文就射线传送(包括区域传送、锚点传送)进行介绍,操纵摇杆在场景中移动、抓取物品、旋转镜头视角等基础功能将在下一篇文章中介绍。搭建开发环境传送门:UnityPico开发之环境搭建https://blog.csdn.net/m0_74799789/article/details/14282733......
  • Unity接入人工智能
    在Unity接入人工智能中,本篇实现了接入百度智能云ai进行npc智能对话,通过http方式,并非插件,适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。1-4节讲解测试,第5节讲解Unity中的实现,建议从头开始阅读。一、创建应用1.1注册百度智能云账号按照图片......
  • Unity纹理压缩
    1、贴图,texture和atlasTextureType贴图类型:Default:普通贴图,这是所有纹理最常用的设置。Normalmap:法线贴图,选择此选项可将颜色通道转换为适合实时法线贴图的格式。EditorGUIandLegacyGUI:UI贴图,把Texture用在HUDorGUIcontrols.上。Sprite(2DandUI):精......
  • 【Unity】mesh绘制简单图形
    应用使用mesh绘制一个彩虹色三角形、四边形、多四边形瓦片控制mesh移动,实现游戏的对象的身体关节的动作步骤mesh(网格类)Meshmesh=newMesh();vertices:顶点数组,包括mesh中的所有顶点,如三角形三个顶点//三角形三个顶点Vector3[]vertices=newVector3[3];vertices[0......
  • Vue组件及组件化:深入解析与组件生命周期
    Vue组件及组件化:深入解析与组件生命周期Vue.js作为一款渐进式JavaScript框架,凭借其易用性、灵活性和高性能,在前端开发领域占据了一席之地。其中,组件化开发是Vue.js的核心特性之一,它极大地提高了代码的可复用性、可维护性和可测试性。本文将深入解析Vue组件及组件化的概念,并......