博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mono生命周期小实验
阅读量:5318 次
发布时间:2019-06-14

本文共 1351 字,大约阅读时间需要 4 分钟。

今天在写代码的时候,遇到一个初始化顺序问题,于是做了一个实验,下面记录结果:

情景:

  1.在 脚本A中实例化 一个预制体,该预制体挂有脚本B

  2.在 脚本A中,获取实例化物体 身上的 脚本B,并且设置 B中的变量

  问题:脚本B中的变量在哪个阶段被设置成功?

答案:

  注意:实例化出的物体,无论身上的脚本B 是否 enable,都会首先调用 Awake()方法,这个Awake()调用,在A脚本的赋值操作之前。

  实际操作中,在脚本B中,需要在OnEnable()之后,才能获得 A脚本设置的值。

代码:

  脚本B,挂载在预制体上:

1 public class PlayerControllerTest : MonoBehaviour { 2     public TestLife life; 3     bool hasCallUpdate = false; 4     private void Awake() 5     { 6         Debug.Log("执行Awake,  life 设置成功:"+(life!=null).ToString()); 7     } 8  9     private void Start()10     {11         Debug.Log("执行Start,   life 设置成功:" + (life != null).ToString());12     }13 14     private void OnEnable()15     {16         Debug.Log("执行Enable, life 设置成功:"+(life != null).ToString());17     }18 19     private void Update()20     {21         if (!hasCallUpdate)22         {23             Debug.Log("执行Update");24             hasCallUpdate = true;25         }26     }27 }

  脚本A,挂载在主摄像机上: 

1 public class TestLife : MonoBehaviour { 2  3     PlayerControllerTest test; 4     private void Awake() 5     { 6         var go = Resources.Load("Cube") as GameObject; 7  8         var temp = Instantiate(go); 9 10         var sp = temp.GetComponent
();11 12 test = sp;13 14 test.life = this;15 16 }17 }

结果:

  

 

转载于:https://www.cnblogs.com/leiGameDesigner/p/9146264.html

你可能感兴趣的文章
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
原生JavaScript第六篇
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Centos7.2正常启动关闭CDH5.16.1
查看>>
Android 监听返回键、HOME键
查看>>
Android ContentProvider的实现
查看>>
sqlserver 各种判断是否存在(表名、函数、存储过程等)
查看>>
给C#学习者的建议 - CLR Via C# 读后感
查看>>
Recover Binary Search Tree
查看>>
Java 实践:生产者与消费者
查看>>
[转]IOCP--Socket IO模型终结篇
查看>>