Unity3D 异步加载 在 场景加载 中的使用
异步加载
我们想一想玩过的一些游戏,基本都会有加载界面——因为游戏场景数据较大,所以需要加载一小段时间。那为什么一些2D游戏也会有加载界面呢?按理说2D游戏场景会很小,这样做是为了让游戏跑在低端设备上时,有更好的体验。
当我们在开发一些3D游戏的时候,一般情况下在跳转场景时都要提前加载场景资源。以下我通过举例来说说异步加载。
1.首先在建立两个场景。在第一个场景中创建一个进度条(Slider),在第二个场景中创建一个三维物体。
2.然后创建一个脚本,挂载在新创建的进度条(Slider)上。
3.然后接下来看代码。
// 其他的头文件省略
using UnityEngine.UI; // 引入头文件 public class Loading_scene : MonoBehaviour
{
private Slider Slider; // 进度条
private AsyncOperation asyncOperation;
public Text Pecentage_Text; // 显示进度的文本 void Awake()
{
// 将自身对象的slider组件给Slider 属性
slider = gameObject.GetComponent<Slider>();
}
private void Start()
{
StartCoroutine("LoadScene", Scene_name); // 开启协程
} IEnumerator LoadScene(string Scene_name) // 通过协程加载场景
{
asyncOperation = SceneManager.LoadSceneAsync(Scene_name);//异步跳转到Scene_name场景
asyncOperation.allowSceneActivation = false;//当game场景加载到90%时,不让它直接跳转到game场景。
yield return asyncOperation;
} void Update()
{
if (asyncOperation == null)
{
return;
}
int progressVaule = ;
if (asyncOperation.progress < 0.9f)
{
progressVaule = (int)asyncOperation.progress * ;
}
else
{
progressVaule = ;
}
if (curProgressVaule < progressVaule)
{
curProgressVaule+=;
}
Pecentage_Text.text = curProgressVaule /+ "%"; Slider .value = curProgressVaule / 1000f;
if (curProgressVaule == )
{
asyncOperation.allowSceneActivation = true;
}
} }
Unity3D 异步加载 在 场景加载 中的使用的更多相关文章
- Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条
Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Ap ...
- (转)Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)
异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Application.LoadLevel(“yourScene ...
- (转)Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)
http://www.xuanyusong.com/archives/1427 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通 ...
- NGUI的异步场景加载进度条
1.直接创建三个场景,其中第二个场景是用来显示进度条加载的界面,进度条用UISlider,不会的看我前面的博文就可以了. 2.这里提供两种方法,建议使用第一种,加载比较平缓 方法一: using Sy ...
- Unity3d 5.x AssetBundle打包与加载
1.AssetBundle打包 unity 5.x版本AssetBundle打包,只需要设置好AssetBundle的名称后,unity会自动将其打包,无需处理其他,唯独需要做的是设置好个AssetB ...
- 喵的Unity游戏开发之路 - 多场景:场景加载
如果丢失格式.图片或视频,请查看原文:https://mp.weixin.qq.com/s/RDVMg6l41uc2IHBsscc0cQ 很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始 ...
- 【Unity】使用SceneManager加载/切换场景
一.直接切换 老版的(已弃用!): Application.LoadLevel(int index); // 参数是场景编号 Application.LoadLevel(string name); / ...
- 利用青瓷布局自定义加载的场景,而不是自己改写qici-loading
加载界面如果全部通过自己手动布局不仅不美观,还很难控制.借用原生的场景切换加载效果,来实现我们游戏的加载效果. 没有做加载修改的原来的加载顺序: 黑乎乎界面->(游戏定制的加载)你的第一个场 ...
- [UE4]场景加载界面
就可以这样就可以了,当另外一个场景成功打开后,场景加载界面也会自动消失(因为这是加载界面是添加到当前场景). 加上delay是为了在小场景测试的时候可以方便看到加载场景,避免场景加载过快看不到,不加的 ...
随机推荐
- |chromosomal walk |zoo blot|鉴定疾病gene|
5.6基于外显子的保守性鉴定真核生物编码蛋白质的基因 鉴定功能性基因的流程是:1.连锁分析找到该基因的染色体的特定区域:2.在这段序列中选择一条短序列,寻找满足两个条件的基因(条件一:因为功能性基因是 ...
- 四. python网络编程
第八章.网络基础知识 1. TCP/IP协议介绍 1.TCP/IP概念 TCP/IP: Transmission Control Protocol/Internet Protocol的简写,中译名为传 ...
- touch-action css属性 滚动和缩放手势
CSS 属性 touch-action 用于指定某个给定的区域是否允许用户操作,以及如何响应用户操作(比如浏览器自带的划动,缩放等) 默认情况下,平移(滚动) 和 缩放手势由浏览器专门处理.该属性用于 ...
- jQuery实现滚动条下拉时无限加载
var lastId=0;//记录每一次加载时的最后一条记录id,跟您的排序方式有关. var isloading = false; $(window).bind("scroll" ...
- CF547D Mike and Fish 建图
题意: 有点长→CF547DMike and Fish. 分析: 其实也没什么好分析的,我这也是看的题解. (不过,那篇题解好像文字的代码不太对劲) 这里直接说做法,正确性自证: 对输入的,将横.纵坐 ...
- mem之读操作调式总结(跟入栈出栈有关)
现象: 1.当case比较复杂的时候(含有for循环对mem进行读/写) 发现for循环时总是有汇编指令不执行跳过去了,(其实是汇编不熟和指令太多无法理智分析指令了). 事实是指令是对的,但执行错了( ...
- python爬虫基础04-网页解析库xpath
更简单高效的HTML数据提取-Xpath 本文地址:https://www.jianshu.com/p/90e4b83575e2 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 ...
- 递归函数&二分查找
一.递归函数 1)定义 在函数中调用函数本身,就是递归 在python中递归的深度最大为1000,但实际达不到1000 def func(): print("-----func-----&q ...
- Python9-day2 作业
下列结果是什么? 6 or 2 >1 6 3 or 2 > 1 3 0 or 5<4 false 5 < 4 or 3 3 2 >1 or 6 True 3 ...
- Spring 常见错误解决方案记录
错误提示: 严重: Servlet.service() for servlet [datasync.controller.manager.SettingServlet] in context with ...