Unity跑在Awake之前的方法
Unity跑在Awake之前的方法
一、前言
相信大家和小黑一样,在写项目的时候遇到过以下这中情况:
____两个脚本的Awake中,都有获取信息的函数被调用。可是A脚本在B脚本获取到信息之后,才可以正常执行某个函数,可是B脚本却跑在A脚本之前,这可怎么办呢?
接下来小黑告诉大家几个非常实用的办法!
二、实际操作
方法1:在Unity的Script Excution Order中设置脚本执行顺序
1:找到Script Excution Order并且打开
具体位置:Edit > Project > Script Excution Order ;下面上图

2:在Script Excution Order中设置脚本顺序
在Script Excution Order中,我们把A脚本放到B脚本之前去,这样子就可以解决问题啦。

3:到现在我们的方法1就结束了。
这个解决办法, 还需要我们手动去设置,该是哪一个脚本在前执行。
那还有方法二等着我们去探索!,出发~
方法2:来重点了,写脚本!告诉你们一个跑的比Awake都快的办法!
1:告诉你们一个特性:[RuntimeInitializeOnLoadMethod]
对于这个特性,我相信大部分人还不知道呢,所以我要把它分享出来,以后大家一起用;
为什么我说它比Awake还快呢,是因为我在看到后做了测试,所以我要把测试也分享出来~
①:我们编写带Awake的脚本,它是继承着MonoBehaviour,并且需要挂在物体上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test0 : MonoBehaviour
{
void Awake()
{
print("Awake快");
}
}
②:编写带 [RuntimeInitializeOnLoadMethod] 的脚本,它可以不用继承MonoBehaviour
且要记住,我们用的是:
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test1
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void Function()
{
Debug.LogError("RuntimeInitializeOnLoadMethod快");
}
}
③:我们启动程序:

铛铛铛铛~!
看到结果了吧,跑的比Awake都快,小伙伴你们Get到了么
方法3:Reset
根绝官方提供的生命周期表中官方链接,有一个函数Reset,在Awake的上边,不过小黑公司用的是Unity5.6.1,我还没做测试。。这个就由大家去测试吧,测试结果记得告诉小黑一声;

至此,小黑今天的分享就要结束啦,我们明天见
!!
!!
帅哥or美女,请等一下,有个事请忘了和你说了,呢个(扭捏中~~~~~~~给小黑点个赞呗 )
什么?你需要优化? Unity项目优化——Web版
啥?你需要和后台对接加载?Unity打包资源,后台加载
程序的道路上学习永不停止,探索随时进行。
Let’s go. Just do it. We can.
好了客官,点个赞再走吧~~~
Unity跑在Awake之前的方法的更多相关文章
- Unity中让Update中的方法执行一次
Unity中让Update中的方法执行一次 Unity中,很多时候,代码需要放在Update中时刻监测状态,一旦状态符合,又只需要代码执行一次:其实可以通过设置控制量的方式,让代码只执行一次:方法:设 ...
- Unity、c#中的拓展方法讲解
很早以前看过这个东西,但是没有真正的用到过,希望之后会用到上面的方法, 大概的意思是这样的c#中尤其在用Unity的时候,已有的框架提供给我们一些固定的方法,但是有时我们想对这些方法进行修改, 这时我 ...
- Tip8:Unity中诸如 Awake() Start() Update()等函数的 执行顺序
Unity脚本中有很多的事件函数,下面是各种函数的执行顺序: 1.reset(); 2.Awake(); 3.OnEnable; 4.OnLevelWasLoaded(); 5.Start(); 6. ...
- 使用Unity拦截一个返回Task的方法
目标 主要是想为服务方法注入公用的异常处理代码,从而使得业务代码简洁.本人使用Unity.Interception主键来达到这个目标.由于希望默认就执行拦截,所以使用了虚方法拦截器.要实现拦截,需要实 ...
- Unity3d不支持vistual studio2012?用vs2012打开unity c#脚本进行编码的方法。
unity3d是支持vs2010的,但是有很多开发者反应,unity3d中的C#脚本不能用vs2012打开.我想了一下,先进入存放C#脚本的目录,在设置里面C#文件的打开方式,选择用vs2012打开, ...
- Unity中使物体自动寻路的方法
在做一个FPS游戏时,需要敌方自动找到玩家方位并向玩家移动,在查找资料(并走了不少坑)后,我试了三个方法,经测试,这三个方法都能实现自动寻路功能. 方法一:使用Mathf.Lerp()方法 代码很简单 ...
- [Unity WWW] 跨域访问解决方法
什么是跨域访问 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任 ...
- RF实现多次失败重跑结果合并的基础方法和优化方法
实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...
- 【Unity笔记】Awake()和Start()的区别
Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行. v ...
- C#正则表达式引发的CPU跑高问题以及解决方法
3月23日(周日)下午16:30左右,博客园主站负载均衡中的2台Web服务器CPU玩起了爬楼梯的游戏(见上图),一直爬到了接近100%.发现这个状况后,我们立即将这2台阿里云临时磁盘云服务器从负载均衡 ...
随机推荐
- Spring Core rce漏洞分析(CVE-2022-22965)
漏洞描述: Springmvc框架参数绑定功能,绑定了请求里的参数造成变量注入,攻击者可以实现任意文件写入,漏洞点spring-beans包中. 漏洞编号: CVE-2022-22965 影响范围: ...
- 对于python中“FileNotFoundError: [Errno 2] No such file or directory”的解决办法
在我们使用vscode运行Python代码时遇到的情况 一.出现原因:这里是由于Vscode中,python里的路径是相对与工作目录来进行定位的.所以在多级目录情况下,若不设置绝对路径,往往找不到相应 ...
- docker常用配置以及命令
1. Docker基本概念 1.1 什么是 docker hub DockHub是一个仓库 https://hub.docker.com/ 仓库是集中存放镜像文件的场所 仓库分为公开仓库(Public ...
- VO层
springboot中vo的作用: VO:View Object,视图层,其作用是将指定页面的展示数据封装起来,通常用于业务层之间的数据传递. 一般将vo层放置在model层下 类似于将前端页面传输的 ...
- 【题解】CF631B Print Check
题面传送门 解决思路: 首先考虑到,一个点最终的情况只有三种可能:不被染色,被行染色,被列染色. 若一个点同时被行.列染色多次,显示出的是最后一次被染色的结果.所以我们可以使用结构体,对每一行.每一列 ...
- 抠网页标题栏logo(图标)
1.打开自己需要抠的网页,例如百度页面 2.在这个网页链接后面+" /favicon.ico " 就可以提取ico图片 3.回车进去,右键鼠标,选择另存为图片就可以成功保存网页中的 ...
- 报错:com.mysql.jdbc.MysqlDataTruncation: Data truncation xxxx
报错 Out of range value for column 'pk' at row 1:表的字段长度不够 Data too long for column 'ip' at row 1:表的字段长 ...
- minio API demo
package mainimport ( "context" "fmt" "github.com/minio/minio-go/v7" &q ...
- Go语言核心36讲09
从本篇文章开始,我们正式进入了模块2的学习.在这之前,我们已经聊了很多的Go语言和编程方面的基础知识,相信你已经对Go语言的开发环境配置.常用源码文件写法,以及程序实体(尤其是变量)及其相关的各种概念 ...
- CentOS 7.x字符界面安装图形界面方法
1. 配置好yum源,可以使用光盘镜像源,也可以使用网络源. 阿里源下载示例: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali ...