- 为一个场景对象添加上三个脚本,在场景开始运行时,脚本中的Start方法将会按照脚本添加的顺序来依次运行,而Update方法却是完全相反
比如:有A1、A2、A3三个脚本,它们的添加顺序是A1、A3、A2,那么在场景运行时,程序运行顺序是A1.Start()、A3.Start()、 A2.Start()、A2.Update()、A3.Update()、A1.Update()……,即使A1.Start()或A2.Update ()运算时间超过其它的方法,那么其它的方法也会等待其运行完成后才会开始运行之……
下面是三个脚本文件的例程:
jxxh01.cs
using UnityEngine; using System.Collections; public class jxxh01 : MonoBehaviour { // Use this for initialization void Start() { for (int temp02 = 0; temp02 < 5; temp02++) { for (int temp01 = 0; temp01 < 5; temp01++) { int a01 = 0; for (int temp = 0; temp < 50000; temp++) { a01++; a = a01; } a01 = 0; } } print(Time.time + " This is jxxh01 : " + a); } public int ForValue=10000; int a = 0; // Update is called once per frame void Update () { for (int temp = 0; temp < ForValue; temp++) { a = temp; } print(Time.time + " This is jxxh01 : " + a); } }
jxxh02.cs
using UnityEngine; using System.Collections; public class jxxh02 : MonoBehaviour { // Use this for initialization void Start() { for (int temp = 0; temp < 10000; temp++) { a++; } print(Time.time + " This is jxxh02 : " + a); } public int ForValue = 100; int a = 0; // Update is called once per frame void Update () { print(Time.time + " This is jxxh02 : " + a); } }
jxxh03.cs
using UnityEngine; using System.Collections; public class jxxh03 : MonoBehaviour { // Use this for initialization void Start() { for (int temp = 0; temp < 10000; temp++) { a++; } print(Time.time + " This is jxxh03 : " + a); } public int ForValue = 100; int a = 0; // Update is called once per frame void Update () { print(Time.time + " This is jxxh03 : " + a); } }
unity3d中脚本运行顺序的个人研究
最新推荐文章于 2024-03-03 10:54:49 发布