Unity中场景异步加载
2024-09-29 21:45:04
引入命名空间
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //引入命名空间
using UnityEngine.SceneManagement;//引入命名空间 public class S2Manager : MonoBehaviour
{
//UI进度条
private Slider _proSlider; //滑动条
//目的是对场景进行控制 获取进度值 和允许显示
private AsyncOperation _async;
//UI应该达到的进度
private int _currProgress;
//1. 获取滑动条
//协同加载(异步加载 不断获取进度值 经过计算赋值给滑动条)
// Use this for initialization
void Start ()
{
_currProgress = ;
_async = null;
_proSlider = GameObject.Find("Slider").GetComponent<Slider>();
StartCoroutine("LoadScene");
} // Update is called once per frame
void Update ()
{
//目的就是现实进度
_proSlider.value = _currProgress / 100.0f;
} IEnumerator LoadScene()
{
//临时的进度
int tmp;
//异步加载
_async = SceneManager.LoadSceneAsync("S3"); //跳转场景为S3 //先不显示场景 等到进度为100%的时候显示场景 必须的!!!!
_async.allowSceneActivation = false;
#region 优化进度的
while (_async.progress < 0.9f)
{
//相当于滑动条应该到的位置
tmp = (int) _async.progress * ; //当滑动条 < tmp 就意味着滑动条应该变化
while (_currProgress < tmp)
{
++_currProgress;
yield return new WaitForEndOfFrame();
}
}//while end 进度为90% tmp = ;
while (_currProgress < tmp)
{ ++_currProgress;
yield return new WaitForEndOfFrame();
}
#endregion
//处理进度为0 ~0.9的0 //进度条完成 允许显示
_async.allowSceneActivation = true; }
}
同步和异步:
1. 同步直接怼过来 (若机器low或场景大 就会卡)
2. 异步 直接怼到一个中间场景(过度场景(显示进度条)) --> 到场景S3
3. 在异步中的两个while循环没啥大作用, 目的就是优化进度条的!!!
最新文章
- 基于Composer Player 模型加载和相关属性设置
- jquery之文档操作
- C++之虚函数的作用和使用方法
- linux中send函数MSG_NOSIGNAL异常消息
- filter应用案例一:分IP统计访问次数
- 使用HttpOnly提升Cookie安全性
- Java 基础-运算符
- 51nod 计算N!的位数
- 【shell】构造并遍历二位数组的一种用法
- asp.net Page_Load事件加载两次
- BZOJ 4765: 普通计算姬 [分块 树状数组 DFS序]
- jQuery字母大小写转换函数
- 如何把遗留的Java应用托管在Service Fabric中
- Content Security Policy (CSP) 介绍
- 数据库语法group by
- JarvisOJ Basic Base64?
- 基于CC2530/CC2430 的温湿度采集系统--DHT11
- js各种特效轮播图,选项卡,放大镜,窗口拖拽,楼层跳转
- Java并发编程(五)Lock
- pythoner国内比较快 的 镜像源
热门文章
- MaLoc: a practical magnetic fingerprinting approach to indoor localization using smartphones
- ABAP 性能优化001
- 开发的第一个PHP扩展
- python获取本机IP地址
- java多线程---基础
- Eclipse的.properties文件输出中文成unicode编码
- python日期格式化符号
- 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
- 苹果AppStore如何申请加急审核
- 搭建LoadRunner中的场景(二) 集合点