在常规游戏中游戏策划,有入口界面和不同场景之间的切换。这时需要在不同场景之间进行切换,一般分为同步切换和异步切换。同步切换是在场景小、内容少的情况下可以瞬间完成的切换。异步切换适用于大场景。利用。
应用
Application类下有一个runInBackground属性访问器,可以选择游戏是否可以在后台运行(true表示可以在后台运行3D场景,false表示不能在后台运行)
dataPath 属性访问器unity 异步切换场景,它的作用是只读的,它的返回值是Assets文件下的地址,可以在加载和写入文件时使用。
persistentDataPath 属性访问器,函数是只读的,也就是数据的持久化路径,一般存放在C盘。
CaptureScreenshot(string path) 截图方法unity 异步切换场景,可以保存路径下的图片。
OpenURL(string url) 打开 URL 方法,使用浏览器打开 url URL。
Quit() 是关闭游戏的方法。
使用 UnityEngine.SceneManagement;命名空间
场景管理器
同步切换
LoadScene(字符串场景名称);
LoadScene(int 场景编号); 一般这两种重载方法都是用来加载空间场景的。这种切换方式为同步切换,一般适用于小场景切换。
序列号在 Build Settings 下的右侧查看
异步切换
LoadSceneAsync(字符串场景名称);
LoadSceneAsync(int 场景编号); 一般这两种重载方法都是用来加载空间场景的。这种切换方式为异步切换,在切换大场景时使用,防止卡顿。
LoadSceneAsync() 方法具有 AsyncOperation 类的返回值
AsyncOperation 类下有一个progress 属性,可以表示加载过程。此时可以添加场景加载进度条功能。代码实现如下:
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class StartControll:MonoBehaviour{
public GameObject sliderImage;
public Slider slider;
private AsyncOperation operation;
void Updata(){
if(operation != null){
slider.value = operation.prograss;
}
}
public void StartGame(){
sliderImage.SetActive(true);
operation = SceneManager.LoadSceneAsync(0);
}
}