`
wgcode
  • 浏览: 593521 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Unity3D异步加载游戏场景

 
阅读更多
[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Test : MonoBehaviour  
  5. {  
  6.     public UISlider slider;  
  7.     AsyncOperation async;  
  8.     bool flag = false;  
  9.   
  10.     // Use this for initialization  
  11.     void Start()  
  12.     {  
  13.   
  14.     }  
  15.   
  16.     // Update is called once per frame  
  17.     void Update()  
  18.     {  
  19.         if (flag)  
  20.         {  
  21.             slider.value = async.progress;  
  22.         }  
  23.     }  
  24.   
  25.     void OnClick()  
  26.     {  
  27.         StartCoroutine(LoadScene());  
  28.     }  
  29.   
  30.     IEnumerator LoadScene()  
  31.     {  
  32.         async = Application.LoadLevelAsync("Scene");  
  33.         yield return async;  
  34.         flag = true;  
  35.     }  
  36. }  

 

加载场景但不激活

 

[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Test : MonoBehaviour  
  5. {  
  6.     public UISlider progressSlider;  
  7.     bool flag = false;  
  8.     AsyncOperation async;  
  9.     // Use this for initialization  
  10.     void Start()  
  11.     {  
  12.         StartCoroutine(LoadScene());  
  13.     }  
  14.   
  15.     // Update is called once per frame  
  16.     void Update()  
  17.     {  
  18.         if (flag && progressSlider.value!=1)  
  19.         {  
  20.             progressSlider.value = async.progress;  
  21.         }  
  22.     }  
  23.   
  24.   
  25.     void OnClick()  
  26.     {  
  27.         async.allowSceneActivation = true;  
  28.     }  
  29.   
  30.     IEnumerator LoadScene()  
  31.     {  
  32.         async = Application.LoadLevelAsync("Scene");  
  33.         async.allowSceneActivation = false;  
  34.         flag = true;  
  35.         yield return async;  
  36.     }  
  37. }  


此处有个bug,或许是我做的不对,async.progress最大只能到9。

 

http://forum.unity3d.com/threads/using-allowsceneactivation.166106/

导出webplayer版发现进入第一个场景后,第二个场景没有预加载,原因是勾选了Streamed。

分享到:
评论

相关推荐

    Unity3D异步加载场景代码

    ### Unity3D异步加载场景代码详解 #### 引言 在Unity3D游戏开发过程中,为了提升用户体验、减少加载时间以及避免游戏卡顿等问题,异步加载技术被广泛采用。通过异步加载,可以在后台预加载场景资源,使得用户在...

    Unity3D之异步加载游戏场景中关于进度条显示

    Unity3D之异步加载游戏场景中关于进度条显示

    Unity3D多个异步加载场景资源 简洁漂亮的加载画面

    在Unity3D游戏开发中,异步加载(Asynchronous Loading)是提高用户体验的关键技术之一,尤其是在处理大型场景或大量资源时。本项目提供了一个简洁且漂亮的加载画面,旨在帮助Unity3D学者理解和实现游戏资源的高效...

    Unity3D游戏开发之异步加载游戏场景与异步加载游戏资源进度条.pdf

    本章主要讲解Unity3D中如何实现游戏场景和资源的异步加载,以及如何创建游戏进度条。 首先,我们来看同步加载。在Unity中,使用`Application.LoadLevel("yourScene")`方法可以同步加载指定场景。这个过程是阻塞的,...

    Unity3D游戏开发之异步加载游戏场景与异步加载游戏资源进度条.docx

    1. 异步加载游戏场景: Unity3D提供了两种异步加载场景的方法: - `Application.LoadLevelAsync("yourScene")`:这是完全异步加载场景的方式,会替换当前场景,适合于游戏的关卡切换。加载过程中,玩家可以继续在...

    Unity3D之异步加载与进度条

    AsyncOperation 对象是 Unity3D 中的一个特殊对象,用于异步加载游戏场景。该对象提供了几个重要的属性和方法: * progress: 获取当前的加载进度,取值范围在 0 - 1 之间。 * isDone: 获取异步加载是否完成。 * ...

    Unity3D切换场景时判断场景是否加载完成1

    在Unity3D中,我们通常使用`Application.LoadLevelAsync()`方法来异步加载新的场景,这允许游戏在加载新场景的同时继续执行其他操作,从而提高用户体验。然而,确保场景加载完成并在正确的时间进行后续操作是非常...

    Unity3D协同函数与异步加载功能实战

    Unity3D提供了强大的资源管理系统,支持异步加载资源,这对于提高游戏性能至关重要。 ##### 3.1 异步加载的基本原理 - **资源加载**:Unity3D中的资源加载主要通过`Resources.Load`或`AssetBundle.LoadFromXXX`等...

    Unity3D 场景加载过渡资源 异步加载场景资源 附带自然的加载画面 公司项目demo 亲测好用 pc和安卓都支持

    Unity3D中的异步加载允许开发者在不阻塞主线程的情况下加载新场景,从而避免游戏暂停或卡顿的现象。这种技术通过Unity的`SceneManager`类和`AsyncOperation`接口实现。在加载新场景时,我们可以创建一个`...

    异步加载进度条案例素材.zip

    在Unity游戏开发中,异步加载(Async Operations)是一项关键技术,它允许我们在不阻塞主游戏流程的情况下加载资源,如场景、纹理、音频等。进度条是展示这种加载过程直观方式,为用户提供加载状态的反馈,提升用户...

    unity3D网页游戏场景打包与加载

    - 动态加载:Unity3D支持异步加载,通过Unity3D的AsyncOperation接口,可以在游戏运行时按需加载场景,提高用户体验。 4. 资源缓存与卸载: - 缓存:加载的Asset Bundles会被缓存,以供后续再次使用,避免重复...

    Unity3D AB包的几种不同加载方式

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏制作、虚拟现实以及增强现实等领域。在Unity中,AssetBundle(简称AB包)是一种资源管理机制,它允许开发者将游戏资源如模型、纹理、音频等单独打包,按需...

    Unity3D动态加载进度条

    在Unity3D游戏开发中,动态加载进度条是提高用户体验的关键元素之一,尤其是在处理大型场景或需要异步加载资源时。本教程将详细介绍如何在Unity3D中实现一个简单而实用的场景加载进度条,同时展示百分比进度,以提供...

    unity通过协程实现异步下载数据并加载

    Unity3D是一款强大的游戏开发引擎,它提供了许多高级特性,如物理模拟、图形渲染和脚本系统等。在游戏开发中,数据的异步下载和加载是至关重要的,特别是对于大型游戏,因为它们通常需要大量的资源,如纹理、音频、...

    Unity3D PDF加载插件_unity3D

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏、虚拟现实、增强现实等领域。在Unity3D中,有时候我们需要实现PDF文档的加载与显示,例如制作互动式的电子书籍或者教程。"Unity3D PDF加载插件_unity3D"正是...

    Unity3D动态加载资源

    7. **异步操作**:Unity3D支持异步加载资源,使用AssetBundle.LoadAssetAsync和AssetBundle.LoadAllAssetsAsync等方法。这可以避免因加载大文件导致的游戏卡顿,提升用户体验。 8. **依赖管理**:AssetBundle可能...

    Unity3D实现资源动态加载Demo

    2. 异步加载:为了不影响游戏流畅性,通常使用异步加载方式。当加载完成时,Unity会触发回调函数,此时可以进一步处理加载的资源。 3. 加载资源:加载完AssetBundle后,使用`AssetBundle.LoadAssetAsync`方法加载...

    Unity3D 游戏引擎之游戏场景的切换与持久化简单数据的储存

    本文将深入探讨如何在Unity3D环境中实现游戏场景的平滑过渡,并讲解如何有效地存储和加载简单数据,确保游戏进度得以保存,即使在游戏关闭后也能恢复。 首先,让我们讨论Unity3D中的场景切换。在Unity中,每个游戏...

    Unity3D与Winform交互

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作3D和2D游戏、虚拟现实(VR)和增强现实(AR)应用。C#是Unity3D的主要编程语言,而Winform则是.NET Framework下的一个图形用户界面(GUI)框架,常用于创建桌面应用...

Global site tag (gtag.js) - Google Analytics