要完成一個級別,您需要一個觸發器。 為此創建一個立方體並根據需要對其進行縮放。
選擇 Y 軸並切換到立方體的等軸測視圖。 將你的長方體拖到關卡的末尾或關卡應該結束的地方。
例如,將其標記為“結束”。由於您不希望在遊戲中看到觸發器,因此請停用網格渲染器。在 對撞機 必須啟動“是觸發器”。
在檢查器窗口中選擇一個彩色圖標,以便您仍然可以看到該框。
如果圖標不可見,請在 Unity 中打開 Gizmos 並使用滑塊激活 3D 圖標並移動滑塊。 然後你會認出你的觸發器,即使它是不可見的。
創建一個名為 EndTrigger 的腳本。
觸發器是
void OnTriggerEnter() 檢測到
現在需要對 GameManager 的引用。
你創建一個變量: public GameManager gameManager;
參考GameManager,您需要在GameManager 中添加一個新函數。 這就是您現在打開 GameManager 腳本的原因。
在其中創建一個新變量:
public void CompleteLevel()
您現在已經在 GameManager 中創建了一個新函數:
您現在可以在 EndTrigger 腳本中調用此函數:
gameManager.CompleteLevel();
TriggerScript 現在看起來像這樣:
現在您將 GameManager 拖到腳本的可用空間中。
由於此時消息只出現在控制台中,我們現在必須為播放器創建一個 UI。
所以在 Canvas 中創建一個 UI 面板。 切換到 2D 模式並使用 F 專注於它。 刪除背景圖像以使 UI 透明。
將其命名為 LevelComplete。 右鍵單擊和 UI 添加文本。
調整文本的邊界。 最後,居中。 更改字體。 將字體大小增加到例如B. 100
將文本更改為級別。 還將 TextObject 命名為級別。 複製對象並將其命名為 Complete。 根據需要設置第二字體。 如果同時標記兩個對象,則可以一起移動它們。
最後取消激活“關卡完成”。
同樣,在 GameManager 中需要引用。
您可以使用新變量執行此操作:
公共遊戲對象 completeLevelUI;
此外,您現在在下面添加功能
public void CompleteLevel()
{
completeLevelUI.SetActive (true);
這將激活該功能。
腳本現在看起來像這樣:
現在將 LevelComplete 拖入 GameManager。
完成關卡後,會出現關卡完成。
接下來我們添加一個動畫。 首先再次激活用戶界面。 現在您需要動畫窗口。
為動畫創建一個文件夾。 將新動畫命名為“LevelComplete”。 您現在將在項目文件夾中找到兩個資產。
第一個是動畫本身。停用循環,因為動畫應該只播放一次。
第二個是動畫控制器中出現的動畫控制器。 動畫師可用於組裝和鏈接複雜的動畫。
LevelComplete 動畫以橙色突出顯示。 這意味著它將在關卡完成時作為第一個動畫播放。
返回動畫窗口。 如果記錄模式或記錄模式被激活,系統會將對象的每個變化記錄為關鍵幀。
例如,選擇 1:00 並降低顏色的 alpha 模式。 開始時會自動創建一個關鍵幀,其中 alpha 模式仍然完整。 切換關鍵幀的位置。 結果,在 alpha 模式下出現的級別完成增加。 轉到大約 0:50 並從 UI 降低字體顏色的 alpha 模式。 將相應的關鍵幀與前面的關鍵幀交換。
再次停用 LevelComplete UI。 在關卡結束時,用戶界面現在應該顯示關卡完成。
幾秒鐘後,現在應該在幾秒鐘後加載新關卡。 為此,請在 2 秒標記之前添加一個事件。
動畫事件允許您選擇一個功能。
我們需要 LevelComplete 對象的腳本。 此腳本加載一個新級別。 將新組件命名為:LevelComplete。
在新腳本中添加:
public void LoadNextLevel()
EIN。
現在您可以選擇 LoadNextLevel 作為函數。
每當動畫到達這一點時,就會加載新場景。
然後場景應該改變。
為此,您需要場景管理器:
使用 UnityEngine.SceneManagement;
在公共空白下:
SceneManager.LoadScene()
現在只應加載相關場景。 但是,要加載的場景取決於關卡。 因此,BuildIndex 用於加載。
在 File -> Build Settings 下,Unity 向您展示您的場景。 您可能仍然需要將它們拖入。 最後顯示構建索引。 Unity 應根據構建索引或當前場景+1 加載場景。
在 public void LoadNextLevel 下:
SceneManager.LoadScene(SceneManager.GetActiveScene().BuildIndex + 1);
該腳本如下所示:
確保之後總有一個新場景,否則Unity會顯示錯誤。
最初於2020-06-10 18:11:00發布。