Unity 切换场景
2018-01-26 16:52
453 查看
一、定义
void SceneManager.LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single) : void SceneManager.LoadScene(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single)
通过在Build Settings中它们的名称或索引加载场景(注意那是不区分大小写)
指定场景名称可以是路径的最后部分不加.unity扩展名或者全部路径不加.unity扩展名。该路径在 Build Settings窗口中被精确的显示出来。如果场景名是指定的将会加载匹配到的首个场景。如果有多个名称相同但是路径不同的场景,你应该使用全部路径。
SceneManager sm = SceneManager.GetActiveScene(); //获取激活(当前)的场景 sm.buildIndex; //场景的编号 sm.name; //场景的名称
AsyncOperation SceneManager.LoadSceneAsync(string levelName)
你可以yield直到异步操作继续,或手动检查它是完成的(isDone)或是进度中(progress)。
AsyncOperation.isDone 操作是否完成(只读)
AsyncOperation.progress 操作的进度(只读)
AsyncOperation.priority 优先权,让你调整异步操作调用将被执行的顺序
二、代码实战
using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; public class ChangeSceneLevel : MonoBehaviour { private AsyncOperation mAsyncOperation; private int progress = 0; private int mCurProgress = 0; void Start() { StartCoroutine(LoadScene()); } private IEnumerator LoadScene() { // u3d 5.3之后使用using UnityEngine.SceneManagement;加载场景 mAsyncOperation = SceneManager.LoadSceneAsync("Example_01"); // 不允许加载完毕自动切换场景,因为有时候加载太快了就看不到加载进度条UI效果了 mAsyncOperation.allowSceneActivation = false; // mAsyncOperation.progress测试只有0和0.9 while (!mAsyncOperation.isDone && mAsyncOperation.progress < 1) { yield return mAsyncOperation; //不会调用到该位置 Debug.Log("Done"); } } void Update() { Debug.Log("u:" + mAsyncOperation.progress + ", " + mAsyncOperation.isDone + ", " + progress + ", " + mCurProgress); //进度最多只能无限接近0.9(但是到不了0.9),然后场景激活成功后又会变为0 //isDone始终为false if (mAsyncOperation.progress < 0.899) { progress = (int)(mAsyncOperation.progress * 100); } else { progress = 100; } if (mCurProgress <= progress) { mCurProgress++; } else if (mCurProgress >= 100) { // 必须等进度条跑到100%才允许切换到下一场景 mAsyncOperation.allowSceneActivation = true; //切换场景之后上一个场景的代码就失效了,包括该代码 } } }
相关文章推荐
- unity 切换场景
- Unity实现场景切换的方法
- [置顶] unity 2017.3 + vuforia 7.0 之 AR场景和非AR场景切换
- Unity 基础 场景切换
- Unity 利用协同程序实现场景切换时加载进度的监控
- unity场景切换异步加载
- unity学习路程--button按钮触发事件及切换场景
- Unity 使用 Application.LoadLevelAsync() 方法切换场景后场景变黑问题解决方法
- 【Unity】切换场景
- Unity场景切换,屏幕过场淡入淡出
- unity5.x 场景切换
- Unity在场景切换之间清理下内存
- Unity切换场景研究
- Unity初识之场景切换
- Unity场景切换时传递数据
- unity中实现异步切换场景
- unity 场景 切换 笔记
- android+unity游戏开发基础之场景的切换
- 在Unity中切换场景遇见的玩家数量增加的问题解决方法
- Unity跨场景快速切换