# Day 28 | Unity遊戲開發 - 介面設置及場景轉換 ###### tags: `Unity` `AR手遊` 在上一篇文章提到對話系統的管理,今天我們要來說明主畫面設定及場景資料轉換。 需要注意的是,介面的素材圖需要將背景及按鈕分別輸出喔! > **目錄** > 素材圖 > 介面設置 > 場景轉換 ## 素材圖 | 開始畫面-背景 | 關卡介面-背景| | --------| --------| | || | **開始畫面-按鈕** | **關卡介面-按鈕**| | | | ## 介面設置 ### 開始畫面 在Scene中使用Canvas加入主畫面介面,並將開始按鈕放上正確位置  ### 關卡介面 另外開一個新場景,並將關卡介面圖放入Scene中  將所有關卡按鈕放置正確的位置,按鈕名稱依照關卡順序取名  ## 場景轉換 ### 場景切換 將所有需要切換的場景在File>Build Settings>Scenes In Build中加入 新增SceneManager()來管理所有場景,在SceneTrans()中使用string傳關卡名稱 ``` public void SceneSwitch(string _SceneName) { SceneManager.LoadScene(_SceneName); } ``` 在Scene按鈕中,加上場景切換功能  ### 關卡切換 我們的關卡希望可以完成一關,才可以解鎖下一關,因此需要設立一個變數來判斷關卡是否解鎖。 在LevelSelection()中加入bool,來判斷關卡目前狀態 ``` private bool unlocked; //預設為fasle ``` 在PressSelection()中: * 判斷bool值,來決定是否切換場景 * 因為有多個關卡需要切換,因此使用string傳關卡名稱 ``` public void PressSelection(string _LevelName) { if (unlocked) { SceneManager.LoadScene(_LevelName); } } ``` 在Scene中,為每個按鈕都加上場景切換功能  在每個遊戲關卡中加入SingleLevel()中,使用PlayerPrefs儲存關卡數值 ``` public levelIndex; public Score; public void PressedFinished() { PlayerPrefs.SetInt("Lv" + levelIndex, Score); } ``` 在LevelSelectioon()中讀取PlayerPrefs數值,更新關卡狀態 ``` private void UpdateLevelStatus() { int previousLevelNum = int.Parse(gameObject.name) -1; if(PlayerPrefs.GetInt("Lv" + PreviousLevelNum) > 0) //上一個關卡分數是否大於0 { unlocked = true; } } ``` 並在Update()中加入 ``` UpdateLevelStatus() ``` --- 如此一來便完成介面及場景切換功能嘍!下一篇將會為各位介紹我們所用到的專案管理工具,明天見!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up