筆記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);