Unity 中 Awake 和 Start 时机与 GameObject Active 的关系

这篇具有很好参考价值的文章主要介绍了Unity 中 Awake 和 Start 时机与 GameObject Active 的关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AwakeStart很相似,都是在脚本的初始阶段执行
但是有两点重要不同:

  1. Awake先执行
  2. Awake即便在脚本 disabled (即enabled = false)时,也会执行,但是Start就不会执行了

对一个物体:

  • 当初始没有激活时,物体上的所有脚本都不会执行,包括AwakeStart
  • 当初始没有激活,运行后SetActive(true),会执行一次AwakeStart,但是再次禁用物体、激活物体,AwakeStart不会再执行。也就是说,物体的整个生命周期,AwakeStart只会执行一次,就是在物体active的一瞬间
  • 脚本中OnEnableOnDisable会 分别 在SetActive(true)SetActive(false)时执行
  • OnEnable只有在脚本enabled和其所在物体active时,才会执行;而OnDisable会在脚本disabled或其所在物体inactiveSetActive(false)都会执行,也就是满足其中一个,脚本就是禁用状态

使用AwakeStart可以把物体初始化分为两个步骤

例如,一个脚本的自身初始化(如对其他的组件的引用、变量初始化等等)可以放在Awake,这样其他脚本在Start中获取该脚本的数据时,就能避免错误产生。

https://gamedevbeginner.com/start-vs-awake-in-unity/文章来源地址https://www.toymoban.com/news/detail-696032.html

到了这里,关于Unity 中 Awake 和 Start 时机与 GameObject Active 的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity基础】什么是GameObject

    环境: UnityHub3.3.0-c8 Unity2021.3.20f1c1 LTS Visual Studio 2022 在 Unity 中, GameObject 是游戏中最基本的实体。它可以被看作是游戏场景中所有其他对象的容器。 GameObject 可以包含许多不同的组件,如 Transform、Renderer、Collider``等。通过添加这些组件,GameObject 可以具有不同的属性和功能,

    2024年02月08日
    浏览(39)
  • unity netcode for gameobject(NGO)逻辑代码教程

    本文均为作者摸索得出的经验,主要介绍制作联机游戏的逻辑代码,比如生成/销毁物体,逻辑同步等。以下内容仅仅是NGO的冰山一角,用于快速开发联机内容,我会在以后的文章里更新NGO类型的详细介绍 作者的信息源: youtube code monkeyLearn Unity Multiplayer (FREE Complete Course, Net

    2024年02月04日
    浏览(50)
  • [Unity]将物体(gameObject)与预制体(Prefab)取消关联,解绑

    在如下Hierarchy窗口中右键点击要解绑的物体  在右键菜单中选择prefab-》Unpack即可将对象与预制体解除关联      

    2024年02月11日
    浏览(49)
  • 【Unity】API学习 --> GameObject(物体)创建的三种方式

    GameObject 就是Unity中最关键的物体 1 通过构造函数进行创建 可以直接new一个GameObject 在start函数里创建,游戏物体可以在任何地方创建,测试创建一次 默认只有Transform 可以在新建是进行传参,创建指定物体 2 Instance Instantiate是静态方法,可以通过 GameObject.Instantiate(); 调用,需要

    2024年02月06日
    浏览(58)
  • Unity 3D提示“No valid unity editor license found, please active your license”如何解决?

            初次安装Unity 3D,打开提示“No valid unity editor license found, please active your license”,不妨尝试一下本文的方法。 进入Unity3D中文下载官网, https://unity.cn/releases(Unity 3D安装包也可以通过此渠道下载); 需要登录(如没有账号先注册,很简单); 下载Unity Hub;  打开

    2024年02月11日
    浏览(55)
  • Unity 之 Start 与Update 方法的区别

    Start 方法: Start 方法在脚本所附加的游戏对象被激活后,仅会在第一帧渲染之前被调用一次。它适用于进行一次性的初始化设置和准备工作。如果游戏对象被多次禁用再激活, Start 方法仍然只会在首次激活时被调用。 适用场景: 在 Start 方法中,您可以进行一次性的初始化

    2024年02月11日
    浏览(34)
  • Unity实战问题-解决UnityHUb的Failed to start the Unity Package Manager local server process

    点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游

    2024年02月13日
    浏览(52)
  • Unity寻路报错“SetDestination“ can only be called on an active agent that has been placed on a NavMesh.

    这个报错表示NavMeshAgent所在节点未放置在寻路网格上。出现这个错误一般伴有 \\\"Failed to create agent because it is not close enough to the NavMesh\\\"类似警告。 表明寻路代理创建失败,后续设置目的地肯定就会导致失败。 出现此类问题需要检查: 在调用SetDestination的时候,NavMeshAgent是否启用

    2023年04月08日
    浏览(45)
  • 【Unity 框架】QFramework v1.0 使用指南 工具篇:13. 其他事件工具 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏

    QFramework 除了支持了 TypeEventSystem、EasyEvent 还支持了 EnumEventSystem、StringEventSystem。 EnumEventSystem 前身是 老版本 QFramework 的 QEventSystem StringEventSystem 的前身是,老版本的 MsgDispatcher TypeEventSystem: 事件体定义简洁 比较适合用于设计框架 支持 struct 获得较好内存性能 使用反射,CPU

    2023年04月17日
    浏览(61)
  • 【Unity 框架】QFramework v1.0 使用指南 架构篇:03. 引入 Command | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏

    我们回顾一下目前的代码,如下; 现在,数据共享的问题通过 引入 Model 解决了。 这里再次强调一下,需要共享的数据放 Model 里,不需要共享的,能不放就不放。 虽然引入了 Model,但是这套代码随着项目规模的发展还是有很多的问题。 其中最严重也最常见的就是 Controller

    2024年02月06日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包