[unity]多脚本情况下update函数的执行顺序

news2024/11/24 8:36:59

有的时候,执行某些脚本时会有先后顺序的要求。unity是按什么顺序来执行脚本的?如何设置?

默认的执行顺序

官方文档里面有个很长的图:

Unity - Manual: Order of execution for event functions (unity3d.com)

 

根据文档,在单个脚本里,函数的执行顺序是是Awake、Start、Update……

如果用到了多个脚本,就会存在多个Awake,多个Start,这时候应该按什么顺序来?

根据这个网页[1]:

先把所有脚本的Awake执行完,然后再执行所有脚本的Start……

那么,执行所有脚本start的时候,哪个脚本的start先执行?哪个脚本的start后执行?

根据这个网页[2] :

谁的start先执行,谁的start后执行,默认是有一个顺序的。

自定义执行顺序

但是,有的时候,默认的顺序不符合要求,需要自定义,这个怎么做?

比如,存在scriptA和scriptB,内容如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class scriptA : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        print("this is scriptA");
    }

    // Update is called once per frame
    void Update()
    {

    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class scriptB : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        print("this is script B");
    }

    // Update is called once per frame
    void Update()
    {

    }
}

按默认顺序的话,是先B后A:

但是实际使用的时候,需要先A后B,怎么办?如何设置?

打开窗口,点击加号,添加scriptA和scriptB,让scriptA排在scriptB的前面,就可以了。执行的时候,就会先执行A,再执行B了。

再执行,符合预期:

引用链接

[1]        Unity不同脚本之间的执行顺序-腾讯游戏学堂 (tencent.com) 

[2]        设置unity脚本的执行顺序-CSDN博客

相关链接

【Unity3D日常开发】Unity3D中实现不同脚本之间的执行顺序控制_unity update执行顺序-CSDN博客

unity如何手动更改脚本执行顺序_untiy 设置脚本执行顺序-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CocoaPods安装环境和流程以及各种情况】

CocoaPods 环境HomebrewRubyrbenvRubyGems 和 Bundler安装Ruby管理Ruby更新Ruby替换Ruby镜像方式1方式2 CocoaPods安装CocoaPodsCocoaPods使用如何插入一段漂亮的代码片安装的一些问题 参考的链接 环境 Homebrew Ruby 目前流行的Ruby环境管理工具有 RVM 和 rbenv。这里推荐使…

记录C# WinForm项目调用Rust生成的dll库

一、开发环境 1.RustRover (version:2023.3 EAP) 2.Visual Studio 2019 (version:16.11.30) 3.Windows 10 64位 OS 4.WinR:控制台程序,cmd.exe 二、使用RustRover编译Rust脚本为dll 1.下载安装Rust,https://www.…

蓝桥杯第3513题——岛屿个数

解答代码 解题思路全在代码注释中,本题作者使用bfs方式作答 import java.util.*; //1:无需package //2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//T组数据,遍历T次…

数据库数据恢复——MongoDB数据库报错“错误1067”的数据恢复案例

MongoDB数据库介绍: MongoDB数据库是文档数据存储库,将文档存储在集合之中,不是像MySQL一样的关系型数据库。 MongoDB数据库是开源数据库,同时提供具有附加功能的商业版本。 MongoDB数据库中的数据是以键值对(key-value pairs)的形…

vite + electron引入itk报错

代码 import { readImageArrayBuffer } from itk-wasm console.log(readImageArrayBuffer)通过itk-wasm官网,创建新的项目vitevue(vue2或者vue3),都没问题。加入electeon后包此错。通过排查,意外找到原因,…

短视频电商时代来临,除了抖音,快手,又一个短视频进军电商了!

大家好,我是电商糖果 是一个95后,现居河南郑州。 做电商行业有六年多的时间了,京东,闲鱼,天猫都搞过。 在2020年紧跟当时的电商风口,开始做短视频电商,几个合作人开了一家抖音小店。 因为当…

ElasticSearch的集群、节点、索引、分片和副本

Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,我们将Elasticsearch里存储文档数据和关系型数据库MySQL存储数据的概念进行一个类比 ES里的Index可以看做一个库,而Types相当于表,Documents则相当…

SpringDataJpa(三)

七、Specifications动态查询 有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。相比JPQL,其优势是类型安全,更加的面向对象。 import …

霍兰德职业兴趣测试,对职业选择是否有帮助?

人们不喜欢标新立异,喜欢墨守成规,这也是有一定道理的,因为以往的传统更稳妥更可靠。创新是需要承担一定的风险的,求职应聘也是一样,不过虽然时代的发展,招聘方式越来越多的新花样,应聘也变的越…

2023年Q3乳品行业数据分析(乳品市场未来发展趋势)

随着人们生活水平的不断提高以及对健康生活的追求不断增强,牛奶作为优质蛋白和钙的补充品,市场需求逐年增加。 今年Q3,牛奶乳品市场仍呈增长趋势。根据鲸参谋电商数据分析平台的相关数据显示,2023年7月-9月,牛奶乳品市…

【并发编程-2】JUC-1

Lock 互斥锁: 1、锁的可重入性: 当一个线程调用object.lock()获取到锁,进入临界区后,还可以再次调用object.lock()。 通常锁都应该设计为可重入,否则就会发生死锁。 比如synchronized就是可重入,在一个s…

大数据是什么?

1.什么是数据? 数据是什么?什么样的称之为数据呐?我想找个问题提出来,各位小伙伴一定会喷我,脸数据都不知道的还在写什么大数据?但是我们转身再想一想,数据,我们真的了解本质吗&…

5G边缘计算网关的功能及作用

5G边缘计算网关具有多种功能。 首先,它支持智能云端控制,可以通过5G/4G/WIFI等无线网络将采集的数据直接上云,实现异地远程监测控制、预警通知、报告推送和设备连接等工作。 其次,5G边缘计算网关可以采集各种数据,包…

虚拟机ping不通百度,SecureCRTPortable连接不上

虚拟机ping不通百度,SecureCRTPortable连接不上 文章目录 虚拟机ping不通百度,SecureCRTPortable连接不上1、打开虚拟网络编辑器2、更改设置3、NAT设置4、设置网关4、设置网关 cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet PROXY_METHO…

Web Worker:JS多线程的伪解药?

前言 在前端开发领域,JavaScript 的单线程限制一直是一个难以忽视的挑战。当谈到解决JavaScript的单线程限制时,HTML5引入的Web Worker被普遍认为是一剂解药💊。同时,业界中大量的文章也是聚焦于讨论web worker的神奇力量。然而&…

Banana Pi BPI-M6开源硬件开发板介绍以及与 Raspberry Pi 5 的比较

Banana Pi BPI-M6 Banana Pi BPI-M6是Banana-Pi组织最新开发的一款类似于Raspberry Pi的单板计算机,具有相同的尺寸格式和相似的功能。 今天我想向您介绍这些功能,并将它们与新的 Raspberry 5 提供的功能进行一些比较。 Raspberry Pi是英国 Raspberry P…

Cesium教程(二十):动态加载图片

1、效果预览 备注: 箭头图片可以去这里下载:箭头下载地址 2、代码编写 创建容器 <div id="cesiumContainer" class="fullSize"

软件版本控制系统VCS工具——cvs vss svn git

版本控制 版本控制系统&#xff08;Version Control System&#xff0c;VCS&#xff09;是用于跟踪和管理源代码和文档的工具。可追踪和管理修改历史&#xff0c;包括修改的内容、时间、作者等信息。有助于团队协作、追踪变更、恢复历史版本等。VCS的主要目的是帮助团队协作开…

竞赛选题 深度学习机器视觉车道线识别与检测 -自动驾驶

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…

Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用

前言 平常我们功能测试用例非常多时&#xff0c;比如有1千条用例&#xff0c;假设每个用例执行需要1分钟&#xff0c;如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时&#xff0c;会需要协调多个测试资源来把任务分成两部分&#xff0c;于是执行时间缩短一半&#…