u3d DontDestroyOnLoad多场景问题

using UnityEngine;
using System.Collections;

public class DontDel : MonoBehaviour
{
    public GameObject temp;
    private static bool m_IsHaveOne =false;

    private GameObject m_clone;

    void Start ()
    {
        if (!m_IsHaveOne)
        {
            m_clone = Instantiate(temp) as GameObject;
            DontDestroyOnLoad(m_clone);
            m_IsHaveOne = true;
        }
    }

    // Update is called once per frame
    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            Application.LoadLevel("Scene2");
        }

        if (Input.GetKeyDown(KeyCode.Q))
        {
            Application.LoadLevel("Scene1");
        }
    }
}

这个脚本在多个场景里面绑定多个GameObject并没有问题,貌似static是全局的,怎么切换场景也只有一个clone

时间: 2024-08-01 20:22:43

u3d DontDestroyOnLoad多场景问题的相关文章

Unity 3D正在革命游戏开发市场

转自知乎 [高风险的大型游戏开发] 传统上来说,开发游戏是一件费时费力的事情,而且80%的情况下开发游戏这件事就是一个灾难.因为游戏是一个交互艺术,这个交互不仅体现在娱乐方式上,也体现在开发过程中.修修补补是开发游戏的家常便饭.但是,由于传统的游戏开发至少涉及策划.美术和程序,因此任何一点微小的调整都需要各个环节通力合作才能勉强达成.而游戏的品质如何,往往要到最后开发出来一个版本才能看到.这时,项目往往已经开发到50%以上的进度了,无论做什么调整,都意味着巨大的先期投入. 然而幸运的是.虽然开发

U3D 场景切换时 脚本对象,GO对象,资源对象的问题

脚本对象:在LUA中写了一个actor类,它封装了角色逻辑,引用了一个GO. GO对象:通过 GameObject.Instantiate(资源对象)生成的. 资源对象:制作好的模型prefab. 在场景切换时: actor是逻辑控制的,可以销毁也可以不销毁.销毁时可以手动销毁它使用的GO,也可以不手动销毁而坐等U3D在场景切换时销毁. GO对象是挂在场景上的(也即hierachy层级),如果不设置为 dontdestroyonload,则GO会在场景切换时被U3D销毁.这时我们的actor只剩

u3d 场景资源打包

搞了一天终于搞定u3d的场景打包,这样就可以不用修改太多程序,把资源放在外部修改了.好处多多 但是本来很简单的东西搞了一天,google来的说作为场景scene.unity 文件 打包成 unityd,结果一直都不行(时间就花在这里了,我相信他) 后来问了别人,别人说看文档,是打包frefab,我一次,一下就行 了,我去 下面是打包的代码 using UnityEngine; using System.Collections; using UnityEditor; public class as

U3D大型场景分布加载管理器的设计

场景中由关卡设计师分成无数个分块,只加载主角当前块的前前分块,后后分块. 1 - 2 - 3 - 4 - 5 假设主角在3的位置,加载分块是1和5.而2和4是默认就加载. 这种线性场景没有问题,但是假设迷宫有10个门,每个门后面都是不同的分支,这时候就有问题了. 有2种避免方法: 1.关卡设计师利用小的场景分块做缓冲 2.要给每个分块计算内存占用大小,在内存告急的时候,只能卡住游戏画面加载.

u3d 异步加载场景以及进度条的显示

1.先建立两个场景 2.把两个场景在在build setting 中添加两个建好的两个场景 3.在第一个场景中建立一个button和slider组件 4.代码处理 using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.SceneManagement;public class ButtonTest : MonoBehaviour { public Button ButtonTestTran

[Unity3D]Unity3D游戏开发之异步记载场景并实现进度条读取效果

大家好,我是秦元培.欢迎大家关注我的博客,我的博客地址是:blog.csdn.net/qinyuanpei.终于在各种无语的论文作业中解脱了,所以立即抓紧时间来这里更新博客.博主本来计划在Unity3D游戏开发之从<魂斗罗>游戏说起(上)--目标追踪这篇文章后再写一篇<Unity3D游戏开发之从<魂斗罗>游戏说起(下)>,只是眼下博主的项目进度有些缓慢,所以想等项目稳定下来以后再和大家分享. 作为大家等待博主更新博客的回报,我们今天来说一说Unity3D中的游戏场景异步

U3D学习笔记1: HelloWorld

Unity 版本: 5.3.5.f1 Hello World工程 1.新建工程 HelloWorld U3D可选2D和3D游戏 2.新建C#脚本文件 在project栏的assets目录右键->create->script->C# script 同时重命名成HelloWorld,双击即可打开 可以在Edit->preferences->External Tools中选择打开的编辑环境 3.编写代码 除了红色方块框起来的代码,其余的代码都是U3D框架自动帮我们生成好的代码  S

u3d shader学习笔记1

促使我学习SHADER的重要原因是希望深入理解3D渲染的机制,在此基础上可以灵活达到某种效果与性能的平衡,开发出具有良好体验的VR应用. 因为VR应用体验的好坏,直接由游戏的帧率决定,而游戏的帧率则受到渲染一帧画面所花时间的影响,因此如何提升渲染时间,而又可以得到期望的效果,必须要对SHADER或者说渲染机制有深入的理解. 一.在U3D中,shader是什么?shader即“着色器”,我们之所以能够看到屏幕上丰富多彩的3D画面,正是得益于它.U3D中与shader相关的概念以及它们同shader

U3D操作游戏对象

游戏对象:所有出现在场景中的实体都是游戏对象. 一.创建游戏对象 创建游戏对象有两种方式:一是通过在unity中创建模型,而是通过脚本动态创建游戏对象.通过脚本动态创建的灵活性较高,重点也在于通过脚本创建对象. 通过脚本动态创建游戏对象: 1.使用GameObject.CreateObject()方法可以创建u3D标准对象,如立方体,球体等 可以使用obj.renderer属性,获取创建对象的渲染器,然后设置材质.颜色等等属性 为了对象能够进行碰撞检测,需要给对象添加刚体组件:obj.AddCo