UnityD游戏开发之使用异步加载游戏场景.docxVIP

UnityD游戏开发之使用异步加载游戏场景.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UnityD游戏开发之使用异步加载游戏场景

Application.LoadLevel 或者 Application.LoadLevelAsync 加载场景,,但是这种办法不适合在真正的 Unity3D 开发中,因为前一种需要把所有的场景都打包,这在某些情况下是不现实的,比如开发页游,我们不可能把所有的场景都打包让用户下载,我们需要一个场景一个场景的加载,这时候我们可以使用 WWW 先通过 HTTP 加载场景到本地缓存,然后再使用 Application.LoadLevel 或者 Application.LoadLevelAsync 函数加载场景,使用这种加载方式,不仅不需要 Build Settings - Add Current 处理加载场景,进度条的显示也更加容易,但是使用这种方式,需要先把场景打包成 unity3d?或者 assetbundle?文件。--来自狗刨学习网先把测试场景搭建好,如图:然后添加一个 C# 脚本,取名 UseWww.cs,全部代码如下:using UnityEngine;using System.Collections;public class UseWww : MonoBehaviour?{public UISlider progressBar;public UILabel lblStatus;private WWW www;private string scenePath;void Awake(){this.scenePath = file:/// + Application.dataPath + /Assets/MainScene.unity3d;// 开始加载场景this.StartCoroutine (this.BeginLoader ());}void Update(){if (this.www != null gressBar != null !this.www.isDone)?{// 更新进度gressBar.value = gress;}}private IEnumerator BeginLoader(){this.lblStatus.text = 场景加载中,请稍候。。。;// 加载场景使用 WWW.LoadFromCacheOrDownload,函数,这样加载完成才能使用 Application.LoadLevel 或者 Application.LoadLevelAsyncthis.www = WWW.LoadFromCacheOrDownload (scenePath, Random.Range(0, 100));yield return this.www;if(!string.IsNullOrEmpty(this.www.error)){this.lblStatus.text = 场景加载出错!;}if (this.www.isDone)?{this.lblStatus.text = 场景正在初始化,请等待。。。;Application.LoadLevelAsync(MainScene);}}}然后把这个脚本挂载到游戏场景的一个对象中,设置好相关属性,如图:运行我们的游戏,可以查看进度条的加载情况,当加载完成,自动跳转到下一个场景中,如图:因为前面我封装了一个 WWW 加载管理器,我们可以直接拿来使用,我们建立一个新的 C# 脚本文章出处【/狗刨学习网】。UseWwwLoaderManager.cs,全部代码如下:using UnityEngine;using System.Collections.Generic;public class UseWwwLoaderManager : MonoBehaviour?{public UISlider progressBar;public UILabel lblStatus;private string scenePath;void Awake(){this.scenePath = file:/// + Application.dataPath + /Assets/MainScene.unity3d;IListWwwLoaderPath pathList = new ListWwwLoaderPath ();pathList.Add (new WwwLoaderPath (this.scenePath, Random.Range (0, 100), WwwLoaderTypeEnum.UNITY_3D));this.lblStatus.text = 场景加载中,请稍候。。。;WwwLoaderManager.instance.Loader (pathList, onLoaderProgress, onLoaderComplete, MainScene);}privat

文档评论(0)

wj38429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档