Unity官方提供了4种加载场景(scene)的方法,分别是: 
1. Application.LoadLevel():同步加载 
2. Application.LoadLevelAsync():异步加载 
3. Application.LoadLevelAddictive():同步附加式加载 
4. Application.LoadLevelAddictiveAsync():异步附加式加载

下面对这四种方法进行简要的介绍和分析: 
1.同步加载:假设当前场景为A,我们要切换到场景B,unity会在切换场景的时候将场景B中的所有内容(场景B中所有的静态物体,不包括后续代码中Instantiate实例化的物体)都加载到内存中,然后销毁A,显示B。由于加载B是同步进行的(也就是在一个线程中),所以当B场景较大的时候执行此方法会感觉到卡顿。 
2.异步加载:这个与第一种情况基本一样,唯一的区别是加载B的过程是异步的(也就是加载新场景的行为是在一个后台线程中进行的,不影响主线程的运行),这样在加载B的时候当前场景A不受影响,可以继续运行,所以即使场景B很大也不会感觉到卡顿。 
3.同步附加式加载:假设当前场景是A,我们要加载场景B,unity在加载B的时候不会销毁A,也就是说加载结束之后A和B将同时存在,这个适合于世界地图比较大的时候,根据人走到的位置来动态的加载世界地图中的不同部分。当然前提是将世界地图做成多个不同的scene文件。 
4.异步附加式加:这种情况与上一种基本一样,区别仍然在于加载B的过程是在一个后台线程中异步进行的。

注意:异步加载的方式最主要的应用就是制作场景切换过程中的过渡界面。具体方法可以参见雨松大大的blog。地址:http://www.xuanyusong.com/archives/1427/

Unity----Scene加载问题的更多相关文章

  1. UNITY 多SCENE加载与编辑

    Unity内部场景的加载分为两步: Loading.是指从文件.内存(主要是Streamed scene AssetBundle)中加载Scene的内容,创建并读取所有相关的Game objects. ...

  2. Dll的编写 在unity中加载

    1. 在VS中新建Dll项目 2.在头文件中对函数进行声明 extern "C" int _declspec(dllexport) testunity(); 3.在源文件中写函数体 ...

  3. 细谈unity资源加载和卸载

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如 ...

  4. Unity动态加载和内存管理(三合一)

    原址:http://game.ceeger.com/forum/read.php?tid=4394#info 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Re ...

  5. unity动态加载(翻译) .

    AssetBundles are files which you can export from Unity to contain assets of your choice. These files ...

  6. unity之加载场景

    游戏中的Loading分为:静态Loading和动态Loading. 简单形象的做个比喻: 静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态 ...

  7. unity中加载场景不销毁以及切换场景重复实例化

    问题描述 游戏开发中会有多个场景,有时会有这样的需求,我们需要保证场景跳转但是需要保持某个游戏对象不被销毁,比如:音乐 实现思路 unity中提供了DontDestroyOnLoad(),这个API ...

  8. Unity资源 ----加载最好需要做哪些事

    先上图解 一.基本关键词 1)AssetBundle:一种保存“一个或多个资源的转变为某种利于传输等的特殊格式(二进制之类)”的文件.(我这边是使用Unity制作手游的角度来说明) 简称AB. 2)对 ...

  9. Unity的加载路径

    1.Resources 路径 只读 不能动态的修改 存放内容 预制体(prefabs) - 不容易变化的预制体 prefabs打包的时候 会自动过滤不需要的资源 有利于减小资源大小 主线程加载 Res ...

  10. unity动态加载FBX模型(Http下载到Rescources文件,场景Load直接调用):

    using UnityEngine; using System.Collections; using System.IO; using System.Net; using System; using ...

随机推荐

  1. django rest_framework入门

    1.rest_framework的作用 1)可以对orm和非orm资源序列化 2)支持restful风格编程(POST,PUT,PATCH) 3)使用类视图编写API的view,而不是函数视图,类视图 ...

  2. cocos2dx+lua注册事件函数详解 事件

    coocs2dx 版本 3.1.1 registerScriptTouchHandler             注册触屏事件 registerScriptTapHandler             ...

  3. 【工具】我的Eclipse使用习惯

    查看代码结构 查看类的层级结构,可用选中类名,按F4,可查看: 类的层级结构: 类的上级结构: 类的下级结构: 安装反编译工具Eclipse Class Decompiler 在Eclipse Mar ...

  4. Asp.Net支付宝手机网站支付接口API之C#版

    一.准备工作 1.使用企业支付宝签约手机网站支付 2.下载支付宝官方demo 文档地址:https://doc.open.alipay.com/doc2/detail?treeId=60&ar ...

  5. java double类型保留两位小数4种方法

    http://blog.csdn.net/huaishuming/article/details/17752365 ****************************************** ...

  6. 在Windows上弄一个redis的docker容器

    [本文出自天外归云的博客园] Docker核心概念简介 镜像是一个面向docker引擎的只读模板,包含了文件系统. 镜像是创建容器的基础,容器类似于一个沙箱,用来运行和隔离应用. 容器是从镜像创建的应 ...

  7. 关于IT学习的老马私人订制服务

    各位寒门学子好,老马的前端教程发布以来,受到好多同学的关注.老马辛勤付出也收货了很多好评.在这非常感谢大家. 最近一段时间来,老马已经完成了html.css.css项目.js基础.js高级.dom与特 ...

  8. Node.js学习笔记(4)--简单路由,老师学生id

    说明(2017-5-2 17:57:23): 1. foo.js var http = require("http"); var url = require("url&q ...

  9. Linux下如何查看tomcat是否启动,并杀死重启

    在Linux系统下,遇到过这样的问题,项目中使用 ./shutdown.sh 关闭Tomcat失败 Using CATALINA_BASE: /usr/local/tomcat Using CATAL ...

  10. ctags简易用法

    vim + ctags a 首先我们必需给要阅读的原始码建一个或多个tags文件, 在shell下利用ctags命令给单个文件建立tags如下: $ ctags filename.c 要给同一个目录下 ...