Unity3dBug - OnEnable

最近 项目 因为 使用 active 代替 instantiate机制,很多时候 OnEnable 代理 OnStart.

然后发现一个 奇怪的 问题

    void Awake() {
        Debug.Log("Awake");
    }

    void OnEnable()
    {
        Debug.Log("OnEnable");
        gameObject.SetActive(false);
    }

你如果在 OnEnable 中 gameObject.SetActive(false);

那么 这个 物体 就再也 无法 生成生成了。

我认为 可能OnEnable 中 如果 set false 就等于 没产生,没产生自然也就没有物体会出现。

可是 我又错了。

1     void Awake() {
2         Debug.Log("Awake");
3         gameObject.SetActive(false);
4     }
5
6     void OnEnable()
7     {
8         Debug.Log("OnEnable");
9     }

直接上结果

当前Unity3d 版本

时间: 2024-07-28 18:51:16

Unity3dBug - OnEnable的相关文章

【酷熊科技】工作积累 ----------- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期

Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake函数仅执行一次:如果游戏对象(即gameObject)的初始状态为关闭状态,那么运行程序,Awake函数不会执行:如果游戏对象的初始状态为开启状态,那么Awake函数会执行:值得注意的一点是,Awake函数的执行与否与脚本实例的状态(启用或禁用)并没有关系,而是与脚本实例所绑定的游戏对象的开关状态有关.如果重新加载场景,那么场景内Awake函数的执行情况重新遵循上述两点. Start()将在MonoB

unity, SerializedObject.FindProperty不要写在Editor的OnEnable里,要写在OnInspectorGUI里

如果像下面这样写: using UnityEngine;using System.Collections;using UnityEditor;using System.Collections.Generic;using UnityEngine.Assertions.Must;[CustomEditor(typeof(xxxControl))]public class xxxControlEditor : Editor{    SerializedProperty m_a;    void OnE

Uploadify/uploadifive上传(中文文档)

Uploadify是一款基于JQuery的优秀的文件/图片上传的插件,有基于Flash和HTML5两种版本. Uploadify/uploadifive主要特点有: 1. 多文件上传 2. 个性化设置 3. 上传进度条显示 4. 拖拽上传(HTML5版本) 官网:http://www.uploadify.com 部署 在部署一个Uploadify实例前,请确保满足最低要求: 1.jQuery 1.4.x 或更高版本 2.Flash Player 9.0.24 或更高版本 3.支持PHP, ASP

理解HTC Vive更新——控制相机旋转和位移

本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/72188658 作者:cartzhang 一.写在前面 在HTC的vive 头盔中, 一旦Vive头盔连接都unity游戏中,就会控制所有Camera的旋转和位置. 这对于有需要的控制非头盔相机带来了烦恼. 比方说,上篇博客中,在VR中,对某个特点位置截图,就会由于头盔控制所有相机的旋转, 造成截图不精确和出现偏移. 地址:

Unity3d插件研究之Easytouch

但我们开发移动端的游戏时,发现使用Input.GetMouseButtonDown的方法不可用,怎么办? 虽然unity3d也有自带触屏的方法,但是使用起来代价太高,什么单击,双击这些功能都要自己封装. 下面我们来讲下EasyTouch这个插件,它将所有触屏的手势,都已经写好了. 而且Easytouch也支持NGUI,使用起来十分的方便. 接下来,我们详细地学习这个插件改如何运用到我们的项目中来. 首先,我们导入easytouch插件,这里我是用3.0版本的,可能有些老了,我都没更新,但是大致的

Unity NGUI实现移动端输入法取认事件响应

NGUI已经实现了事件的监听功能,看下图:On Return Key(选择Snbmit) ,可以直接注册监听事件. 实现如下: 1.搭建一个简单场景 2.新建一个脚本InputTest.cs 挂载在Input物体下,并拖拽赋值Txt_content, input using UnityEngine; //笔者通过集成InputField,在update中监听软件盘的状态捕获到回车事件 public class InputTest : MonoBehaviour {     public UILa

cocos creator随笔

接触一个月cocos creator做个笔记... 1.socket.io 封装了websocket , Ajax等,故任何浏览器都可以使用socket.io建立异步连接.websocket 双向需要握手建立连接,http 单向. 短连接:一次性交换数据,如登入,创建角色等  长连接:推送 (一) socket.emit('tell one person'); socket.broadcast.emit('tell to everyone'); socket.on('I heard',funct

UI图像拖动更换

今天做一个拖动图像的demo,效果图如下: 1 拖动的类需要实现 IDropHandler, IPointerEnterHandler, IPointerExitHandler 这三个接口: 2 接受的类需要实现 IBeginDragHandler,IDragHandler,IEndDragHandler 这三个接口: 下面贴代码 Drag.cs using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; //

Tanks!Tutorial 学习

using UnityEngine; namespace Complete { public class CameraControl : MonoBehaviour { /// <summary> /// 相机重新聚焦的时间 /// </summary> public float m_DampTime = 0.2f; /// <summary> /// /// </summary> public float m_ScreenEdgeBuffer = 4f;