Unity跳转场景
Unity中如何加载场景
1、首先需要将场景添加到 Build Settings中,如下图:

2、引用using UnityEngine.SceneManagement;
同步加载:如果场景很大,有可能会卡顿。
using UnityEngine;
using UnityEngine.SceneManagement; public class TestA : MonoBehaviour
{
private void Start()
{
SceneManager.LoadScene("SceneName");
}
}
异步加载:
我们需要三个场景来完成异步加载,开始场景、过渡场景、目标场景,一般会在过渡场景来做个加载进度条。
假设我们现在有TestA、TestB、TestC三个场景,如何完成A到B到C的异步加载,并实现加载进度条呢?代码如下:
在TestA场景中挂载脚本TestA
using UnityEngine;
using UnityEngine.SceneManagement; public class TestA : MonoBehaviour
{
private void Start()
{
SceneManager.LoadSceneAsync("TestB");
}
}
在TestB场景中挂载脚本TestB
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI; public class TestB : MonoBehaviour
{
public Slider slider; //加载进度条
private AsyncOperation mAsyncOperation; //异步加载信息 private void Start()
{
StartCoroutine(LoadScene());
}
private void Update()
{
UpdateSlider();
}
/// <summary>
/// 异步加载场景
/// </summary>
/// <returns></returns>
IEnumerator LoadScene()
{
mAsyncOperation = SceneManager.LoadSceneAsync("TestC");
//不跳转场景,停留在当前场景
mAsyncOperation.allowSceneActivation = false;
yield return mAsyncOperation;
}
/// <summary>
/// 更新加载进度条
/// </summary>
private void UpdateSlider()
{
if (slider.value >= )
{
//跳转到目标场景
mAsyncOperation.allowSceneActivation = true;
return;
}
else if (slider.value >= 0.9f)
{
slider.value += Time.deltaTime;
return;
}
//mAsyncOperation.progress属性为场景加载进度,但是最大值为0.9f。
slider.value = mAsyncOperation.progress; }
}
这样就可以完成异步加载,并实现加载进度条。
有两点需要注意:
1、mAsyncOperation.progress属性最大值为0.9f。
2、用mAsyncOperation.allowSceneActivation来控制什么时候跳转场景。
如果场景太小的,加载会非常快,进度条会一闪而过,所以进度条是否使用mAsyncOperation.progress属性的值,根据自己的需求来。
Unity跳转场景的更多相关文章
- Unity跳转场景进度条制作教程(异步加载)
Unity跳转场景进度条制作 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- iOS开发 跳转场景的三种方式
iOS开发 跳转场景的三种方式 2012年10月17日, 15:32 假设A跳转到B,三种方法:1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任 ...
- storyboard三种sugue 和 跳转场景的三种方式 以及控制器之间的传值
Storyboard引入了2个概念:1. scene:一个场景,由一个viewController和相关的xib表示. 2. segue:在这是用于连接scenes,其有多种类型,iphone包括:P ...
- HoloLens开发手记 - Unity之Persistence 场景保持
Persistence 场景保持是HoloLens全息体验的一个关键特性,当用户离开原场景中时,原场景中全息对象会保持在特定位置,当用户回到原场景时,能够准确还原原场景的全息内容.WorldAncho ...
- 【Unity入门】场景、游戏物体和组件的概念
版权声明:本文为博主原创文章,转载请注明出处. 游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为“场景”.一个游戏一般包含一个到多个场景,这些场景里面实现了不同的功能,把它们组合 ...
- 【Unity入门】场景编辑与场景漫游快捷键
版权声明:本文为博主原创文章,转载请注明出处. 打开Unity主窗口,选择顶部菜单栏的“GameObject”->“3D Object”->“Plane”在游戏场景里面添加一个面板对象.然 ...
- Firefly的角色跳转场景简单示例
源地址:http://bbs.9miao.com/thread-45790-1-2.html 本例演示的是模拟游戏服务端,让角色在场景1中跳转到场景2中.在实际游戏中,client将要跳转的角色id和 ...
- unity中实现场景之间加载进度条
using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using UnityEngine.UI ...
- unity 3D游戏场景转换
//////////////////2015/07/07//////// /////////////////by xbw/////////////// ///////////////环境 unity ...
随机推荐
- zookeeper第一篇
它是一个为分布式应用提供一致性服务的软件, 提供的功能包括:配置维护.域名服务.分布式同步.组服务等.
- html跳动的心实现代码
<style> .box{ width: 200px; height: 400px; positio ...
- cpu资源长期使用率过高导致系统内核锁问题
服务器跑大量高负载程序,会造成cpu soft lockup. 解决办法: #追加到配置文件中 echo 30 > /proc/sys/kernel/watchdog_thresh #查看 [r ...
- aop原理及理解
概念 Aspect Oriented Programming,面向切面编程,实际上它是一个规范.一种设计思路,总之是抽象的. 先上图 使用目的 从项目结构上来说 对业务逻辑的各个部分进行隔离,降低业务 ...
- MySQL添加用户并授权
一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...
- C#使用Mutex实现单例应用程序
不少应用程序有单一实例的需求,也就是同时只能开启一个实例(一般也就是一个进程). 实现的方式可能有判断进程名字,使用特殊文件等等,但是最靠谱的方式还是使用系统提供的 Mutex 工具. Mutex是互 ...
- 【SVN】关于提交代码时的问题
将项目上传到SVN弹出框提示One added/edited TODO item was found. Would you like to review it? 然后百度说这样解决: 造成这个原因是因 ...
- python异常捕捉以及处理
看标题觉得高大上,好像能处理所有的异常.但是,事实是只能按照字面的意思来理解这一段话. 众所周知写代码哪有不出bug的? 那么出现了bug 我们不想让程序因为bug的存在而退出.那么要怎么做呢? 今天 ...
- 第六周博客作业 <西北师范大学| 周安伟>
第六周博客作业 助教博客链接:https://home.cnblogs.com/u/zaw-315/ 本周工作:评阅作业24份点评困难的作业:无作业要求:https://www.cnblogs.com ...
- pandas用法之二
1,函数应用 ①map() 将函数作用于一个Series的每一个函数(不能是DataFrame) 类似于Python的高阶函数map() 函数可以是Numpy中的通用函数,也可以是自定义函数 优点:代 ...