unity执行顺序问题(如何再次执行start方法)
版权声明:本文为博主原创文章,未经博主允许不得转载。
unity执行顺序的文章已经很多了,其实不用看文章,那么麻烦,一张图就搞定了!
Look:
这里看到最特殊最常用的应该就是OnEnable了。OnEnable是在Awake之后Start之前执行的,特殊之处就是他会在物体隐藏之后再次显示时再次调用,而Start和Awake是做不到这一点!
为了证明宝宝没有说谎,请看实例:
下面有一个sphere(默认隐藏)和一个cube,在按钮上绑定一脚本quite点击按钮会让cube隐藏让sphere显示,而按键盘O键会让cube显示让sphere隐藏。在cube上绑定了一个脚本TESTONE。
按钮上绑定的脚本:
- using UnityEngine;
- using System.Collections;
- public class quite : MonoBehaviour {
- public GameObject[] GO;
- // Use this for initialization
- void Start () {
- }
- // Update is called once per frame
- void Update () {
- if (Input.GetKey(KeyCode.O))//按键盘O键
- {
- // Debug.Log("cube出现");
- GO[1].SetActive(false);
- GO[0].SetActive(true);
- }
- }
- public void Clickthisbutton()//点击按钮
- {
- // Debug.Log("球出现");
- GO[0].SetActive(false);
- GO[1].SetActive(true);
- // Application.Quit();
- }
- }
然后再看在cube上的脚本;
- using UnityEngine;
- using System.Collections;
- public class TESTONE : MonoBehaviour {
- void Awake()
- {
- Debug.Log("Awake---1cube");
- }
- void OnEnable()
- {
- Debug.Log("OnEnable---1cube");
- }
- // Use this for initialization
- void Start () {
- Debug.Log("START--1cube");
- }
- // Update is called once per frame
- void Update () {
- }
- }
下面运行一下看下图的Log;cube上log的执行顺序很明显(这些方法全都只执行一次):
然后点击按钮看下图:cube已经隐藏,而sphere出现,所有的log还是原来的。
然后我们清理掉log,按键盘O键看下图;看到cube再次显示,但是log中只有OnEable方法执行了。怎么样宝宝没骗你们吧!!!
那么如何再次执行AWake 或Start方法呢?不用想我肯定是开始说废话了,没错,那就是在OnEable方法里调用这两个方法(如果是在其他脚本写的OnEable方法那就要把那两个改成Public方法了)!好吧,这样其实在最开始就会执行两次Start和Awake方法。
- using UnityEngine;
- using System.Collections;
- public class TESTONE : MonoBehaviour {
- public void Awake()
- {
- Debug.Log("Awake---1cube");
- }
- void OnEnable()
- {
- Debug.Log("OnEnable---1cube");
- Start();
- Awake();
- }
- // Use this for initialization
- public void Start () {
- Debug.Log("START--1cube");
- }
- // Update is called once per frame
- void Update () {
- }
- }
所以当遇到类似的情况就用宝宝的大法吧!哈哈哈!
unity执行顺序问题(如何再次执行start方法)的更多相关文章
- hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR
hive语句执行顺序 msyql语句执行顺序 代码写的顺序: select ... from... where.... group by... having... order by.. 或者 from ...
- Unity脚本执行顺序自研框架
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52372611 作者:car ...
- Unity3D中脚本的执行顺序和编译顺序
http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与 ...
- 【转】Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)
http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与 ...
- (转)Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)
自:http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行 ...
- 【转】Unity3D中脚本的执行顺序和编译顺序
支持原文,原文请戳: Unity3D中脚本的执行顺序和编译顺序 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦 ...
- final、static、代码块、静态代码块、内部类、代码执行顺序
final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上 ...
- java中的异常以及 try catch finally以及finally的执行顺序
java中的 try.catch.finally及finally执行顺序详解: 1.首相简单介绍一下异常以及异常的运行情况: 在Java中异常的继承主要有两个: Error和Exception 这两个 ...
- js函数和变量的执行顺序【易错】
js函数和变量的声明与执行顺序 一.函数执行顺序 1.正常顺序 function f(){ alert(2); } f(); //alert 2 所有浏览器都能测试通过. 2.倒序调用 f(); // ...
- java中return与finally的执行顺序
可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机.接下来我就带您一步一步的揭开这个 finally 的神秘面纱. 问题分析 首先来问大家一个问题:finally 语句块一定 ...
随机推荐
- 每日英语:South India's Streetside Coffee Culture
Early one morning last week I queued outside Sri Gopi Iyengar Coffee and Tiffin Center, a coffee bar ...
- 每日英语:Chinese Show Global Real-Estate Appetite
Chinese investors have been snapping up real estate in the world's most important cities this year. ...
- 每日英语:Making the Most of Your Lunch Hour
More Americans are eating lunch at their desks or even forgoing it altogether. Is passing up a prope ...
- grpc-golang实现账号and密码认证
// I would recommend to use interceptors: // client grpc.Dial(target, grpc.WithPerRPCCredentials(&am ...
- LeetCode: Linked List Cycle II 解题报告
Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cyc ...
- 【Linux】crontab 每隔1小时 2小时的执行job写法
crontab -l crontab -e 每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每2小时执行 0 */2 * * * 每天执行 0 0 ...
- 自定义NSOperation下载图片
自定义NSOperation的话,只是需要将要下载图片的操作下载它的main方法里面,考虑到,图片下载完毕,需要回传到控制器里,这里可以采用block,也可以采用代理的方式实现,我采用的是代理的方式实 ...
- Python爬虫技巧
Python爬虫技巧一之设置ADSL拨号服务器代理 reference: https://zhuanlan.zhihu.com/p/25286144 爬取数据时,是不是只能每个网站每个网站的分析,有没 ...
- red hat enterprise linux 6
i386(32位):http://rhel.ieesee.net/uingei/rhel-server-6.3-i386-dvd.iso迅雷快传:http://kuai.xunlei.com/d/PF ...
- 大数据 -- Spark
Spark体系架构 zhuangzai Spark体系架构包括如下三个主要组件: 数据存储 API 管理框架 接下来让我们详细了解一下这些组件. 数据存储: Spark用HDFS文件系统存储数据.它可 ...