Unity----Scene加载问题
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加载问题的更多相关文章
- UNITY 多SCENE加载与编辑
Unity内部场景的加载分为两步: Loading.是指从文件.内存(主要是Streamed scene AssetBundle)中加载Scene的内容,创建并读取所有相关的Game objects. ...
- Dll的编写 在unity中加载
1. 在VS中新建Dll项目 2.在头文件中对函数进行声明 extern "C" int _declspec(dllexport) testunity(); 3.在源文件中写函数体 ...
- 细谈unity资源加载和卸载
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如 ...
- Unity动态加载和内存管理(三合一)
原址:http://game.ceeger.com/forum/read.php?tid=4394#info 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Re ...
- unity动态加载(翻译) .
AssetBundles are files which you can export from Unity to contain assets of your choice. These files ...
- unity之加载场景
游戏中的Loading分为:静态Loading和动态Loading. 简单形象的做个比喻: 静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态 ...
- unity中加载场景不销毁以及切换场景重复实例化
问题描述 游戏开发中会有多个场景,有时会有这样的需求,我们需要保证场景跳转但是需要保持某个游戏对象不被销毁,比如:音乐 实现思路 unity中提供了DontDestroyOnLoad(),这个API ...
- Unity资源 ----加载最好需要做哪些事
先上图解 一.基本关键词 1)AssetBundle:一种保存“一个或多个资源的转变为某种利于传输等的特殊格式(二进制之类)”的文件.(我这边是使用Unity制作手游的角度来说明) 简称AB. 2)对 ...
- Unity的加载路径
1.Resources 路径 只读 不能动态的修改 存放内容 预制体(prefabs) - 不容易变化的预制体 prefabs打包的时候 会自动过滤不需要的资源 有利于减小资源大小 主线程加载 Res ...
- unity动态加载FBX模型(Http下载到Rescources文件,场景Load直接调用):
using UnityEngine; using System.Collections; using System.IO; using System.Net; using System; using ...
随机推荐
- 【Linux技术】autotools制作makefile过程详解
Preface Makefile固然可以帮助make完成它的使命,但要承认的是,编写Makefile确实不是一件轻松的事,尤其对于一个较大的项目而言更是如此.那么,有没有一种轻松的手段生成Makefi ...
- js生成二维码实例
<!DOCTYPE html><html><head> <title></title> <meta charset=&qu ...
- uboot命令实现举例
之前一直在想,为什么没有人出一个完全从零写uboot和移植剪裁内核的教程,后来发现,确实这样的教程十分不容易,还有就是我们也没有必要花那么多时间去做别人已经做好的事情,所以,一般而言我们只用管怎么实现 ...
- C#学习笔记(10)——再谈委托,不同国家问候的例子
说明(2017-6-14 09:08:38): 1. 首先是一个简单的委托 (1)命名空间下定义一个委托MyDel: public delegate void MyDel(string name); ...
- RabbitMQ安装 ubuntu12.04LTS
RabbitMQ安装需要安装较多的依赖包,之前如果安装过RabbitMQ-server必须要先彻底删除. 重装的ubuntu系统(ubuntu server)的开发环境几乎是裸的,再重新编译安装erl ...
- Android——ViewPager滑动背景渐变(自定义view,ViewPager)
效果: ActivityBackgroundImage,java(自定义视图) package com.example.chenshuai.test322; import android.conten ...
- 如何使用sendEmail发送邮件
sendEmail是一个轻量级,命令行的SMTP邮件客户端.如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php.bashperl和web站 ...
- Android7.0 Doze模式分析(一)Doze介绍 & DeviceIdleController
參考:http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中.Google就引入了Doze模式.它定义了一种全新的 ...
- 阿里云免费SSL证书绑定+sever2012 IIS配置
1.阿里云域名 2.点击证书 3.免费证书 4.下载证书 5.服务器-运行-mmc 进入制台程序 6.制台程序,选择菜单“文件"中的"添加/删除管理单元”-> “添加”,从“ ...
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...