测试-Unity组件的调用顺序

前面2篇测试了GameObject的顺序,以及Awake和OnEnable的时机:

Unity脚本在层级面板中的执行顺序测试1

http://www.cnblogs.com/hont/p/4298110.html

Unity脚本在层级面板中的执行顺序测试2

http://www.cnblogs.com/hont/p/5034419.html



“Unity脚本在层级面板中的执行顺序测试1”中,得到一个结论:

1.非Prefab的GameObject,执行顺序和他被创建出来的时间有关,越后创建的执行顺序越优先。

2.Prefab化的GameObject,执行顺序由根节点向下。

本以为组件的顺序和GameObject差不多,但结果大跌眼镜。不管非Prefab化还是Prefab的,执行顺序都和创建时间有关

非Prefab:

Prefab:

那么,既然和创建顺序有关,改变执行顺序可以这么来:(测了一下,最好不要直接改源文件,源文件里的顺序更乱...)

先创建key为a3的脚本,然后a2,然后a1。然后调换脚本顺序。

这样,按照创建时间排序则为:a3->a2->a1

时间: 2024-07-29 15:55:04

测试-Unity组件的调用顺序的相关文章

VUE生命周期中的钩子函数及父子组件的执行顺序

先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等.同时在这个过程中也会运行一些叫做生命周期钩子的函数(回调函数),这给了用户在不同阶段添加自己代码的机会. 1.vue的生命周期图 在vue实例的整个生命周期的各个阶段,会提供不同的钩子函数以供我们进行不同的操作.先列出vue官网上对各个钩子函数的详细解析. 生命周期钩子 详细 beforeCreate 在实例初始化之后,数

c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)

现在来测试一下在多重继承,虚继承,MI继承中虚继承中构造函数的调用情况. 先来测试一些普通的多重继承.其实这个是显而易见的. 测试代码: //测试多重继承中派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!"<<endl; }

Activity生命周期方法的调用顺序工程与测试日志

下面为测试activity的方法的执行顺序   工程与测试资源地址 android工程 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.finalizetest"

controller.pp 各组件的安装顺序

controller 属性: admin_address => $controller_node_address, public_address => $controller_node_public, public_interface => $::public_int, private_interface => $::use_quantum ? { true=>false, default=>$::fuel_settings['fixed_interface']}, i

jquery更改ready方法调用顺序,在ready之后执行Js代码

*/--> jquery更改ready方法调用顺序,在ready之后执行Js代码 Table of Contents 问题描述 在所有的ready方法之后执行上面的方法 重写$.fn.ready方法 查看$.fn.ready的源码定义 修改自己的$.fn.ready 闭包,增加安全性 问题描述 我想要控制Input,回车不提交表单,思路如下: $(function(){ $("form input").on("keypress",function(event)

Unity3D中关于场景销毁时事件调用顺序的一点记录

先说一下我遇到的问题,我弄了一个对象池管理多个对象,对象池绑定在一个GameObject上,每个对象在OnBecameInvisible时会进行回收(即移出屏幕就回收),但是当场景切换或停止运行程序时场景中如果还有待回收的对象,就会报错,报错显示的信息为,我的对象池GameObject已经被销毁了云云,因为回收的对象我会把他们作为绑定了对象池的GameObject的子级来方便管理. 所以唯一的可能就是脚本方法调用顺序不可控,即不同GameObject的OnBecameInvisible在其它Ga

继承中参数传递及调用顺序

一.简单派生类的构造函数传参 C++语言的继承特性,指子类可以继承父类的属性和行为,并可以重新定义或添加新的属性和行为.父类中为private型的属性和行为虽然被继承,但是子类中仍不能访问.在继承机制下,构造函数是不能被继承的,所以基类构造函数的参数要由子类构造函数传! 单一继承的子类构造函数的声明(.h中)形式为: 派生类构造函数名(参数总表) (); 单一继承的子类构造函数的定义(.cpp中)形式为: 派生类名::派生类构造函数名(参数总表) : 基类构造函数名 (参数名表) { 派生类新增

自定义控件的初次建立的时候方法调用顺序

package com.football.app.view; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; /**  * 

Java对象创建阶段的代码调用顺序

在创建阶段系统通过下面的几个步骤来完成对象的创建过程 为对象分配存储空间 开始构造对象 从超类到子类对static成员进行初始化 超类成员变量按顺序初始化,递归调用超类的构造方法 子类成员变量按顺序初始化,子类构造方法调用 本文重点演示第三步到第五步: Grandpa类 1 package com.xinye.test; 2 3 public class Grandpa { 4 { 5 System.out.println("执行Grandpa的普通块"); 6 } 7 static