unity3d中脚本运行顺序的个人研究

  • 为一个场景对象添加上三个脚本,在场景开始运行时,脚本中的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);
    
    
    
    }
    
    }          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值