关于Unity脚本的函数的执行顺序 | 您所在的位置:网站首页 › unity脚本执行顺序 › 关于Unity脚本的函数的执行顺序 |
分类:系统认知,反射 标签:Unity C# 反射 GameObject 众所周知,在Unity中实现像Ue4的蓝图构造函数是很麻烦的,所以Unity自有的是prefab的解决方案,但是对于一些在UE4里面很方便就能实现的曲线工具来讲,unity就显得力不从心,关键还是工具链完整性的问题,unity给了很高的自由度,以至于像这种类型的工具都需要自行编辑接上。 为了更好的熟悉unity脚本的函数执行顺序,根据网上一些博客参考,新建了一个脚本用于处理这种事情 using System.Collections; using System.Collections.Generic; using UnityEngine; public class lfy_UnityConstrust : MonoBehaviour { static int i; bool IsStart; bool FixedStart; public lfy_UnityConstrust() { i += 1; IsStart = true; FixedStart = true; Debug.Log("ConstructFuc" + i); } public void Awake() { Debug.Log("AwakeFuc" + i); } // Start is called before the first frame update void Start() { Debug.Log("StartFuc" + i); } // Update is called once per frame void Update() { if(IsStart) { Debug.Log("UpdateFuc" + i); IsStart = false; } } private void FixedUpdate() { if(FixedStart) { Debug.Log("FixedUpdateFuc" + i); FixedStart = false; } } } 此脚本在unity中运行所得的结果如下 图为执行结果分析出Unity的脚本执行顺序 Unity反射可以看到构造函数被调用了3次,分别是游戏运行,初始化GameObject,退出游戏或销毁 由此,可以得到Unity脚本的函数执行顺序 除此之外,还有 On Enable :在Awake和Start之间执行,是每次脚本可用后都会执行一次的函数,由于脚本是可关闭的,所以这个函数可以反复执行 Late Update :在 Update 之后才执行的 Update 类型函数,可以通过修改project>>time里面 Fixed Timestep 设置每隔多久更新一次,通常是用于物理脚本更新(指和硬件通信时使用硬件的更新频率传输数据) |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |