笔记17 Application类、场景
Application类常用API
void Start () {
//后台运行
Application.runInBackground = true;
//资源文件夹路径
//Debug.Log(Application.dataPath);
//持久化文件夹路径
Debug.Log(Application.persistentDataPath);
/*截图。括号内填的是截图保存到的文件夹路径(此方法,高版本已停用)。
运行完后,刷新即可见。*/
Application.CaptureScreenshot(Application.dataPath + "/1.png");
//截图。高版本适应。直接给了一个管理截图的类
//ScreenCapture.CaptureScreenshot(Application.dataPath + "/1.png");
//打开网页。用于注册账号网页的打开,充值网页的打开。
Application.OpenURL("http://www.baidu.com");
//退出(只有生成游戏后,才能使用)。全屏时的退出
Application.Quit();
}
Scene场景
导入名称空间
using UnityEngine.SceneManagement;
利用代码创建一个新场景(一般不用)
一般不用代码创建,直接在unity里创建,只用代码切换。
void Start () {
//导入名称空间,可以使用场景管理器SceneManager了。
//创建一个新场景(动态场景)叫"tmp"。
Scene scene = SceneManager.CreateScene("tmp");
//激活场景
SceneManager.SetActiveScene(scene);
}
切换场景
位置: void Start ()
参数1:填场景名字(“game”)、或者序号(0),都是可以的。
参数2:模式1:LoadSceneMode.Additive叠加。模式2:LoadSceneMode.Single不叠加。
同步加载一个场景
同时只能做一件事。用于加载时间短的情况下,例如2d游戏、小型3d游戏。
//同步加载一个场景
//SceneManager.LoadScene(0,LoadSceneMode.Single);
异步加载一个场景
同时可做两件事。用于加载费时间的大型3d游戏,让它边加载,边显示进度条。
//异步加载一个场景
SceneManager.LoadSceneAsync(1, LoadSceneMode.Single);
进度条
public class SceneTest : MonoBehaviour {
//进度条返回一个操作值
AsyncOperation oper;
void Start () {
/*导入名称空间using UnityEngine.SceneManagement;
可以使用场景管理器SceneManager了。*/
//异步加载一个场景
SceneManager.LoadSceneAsync(1, LoadSceneMode.Single);
}
void Update () {
//progress加载进度没加载完
if (oper.progress < 1)
{
//打印进度
Debug.Log(oper.progress);
}
}
}
卸载一个场景
//卸载场景。括号里填场景名字("game")、或者序号(0)
//SceneManager.UnloadScene(0);