挑戰:
許多 Unity 開發人員遇到一個常見問題:他們的遊戲管理器腳本旨在跨場景持續存在,儘管包含在每個場景中,但僅執行一次。
解決方案:預先載入場景
解決這個問題的關鍵是預先載入場景,這是 Unity 專案設定中一個至關重要但經常被忽略的元素。
建立預先載入場景:
DontDestroyOnLoad
腳本附加到「__app」遊戲物件。 組織遊戲行為:
所有全域遊戲行為(資料庫連線、聲音管理器、記分等)都應該獨佔預先載入場景中的「__app」遊戲物件。 這確保了它們在所有場景中的可用性。
簡化的場景載入:
為了簡化流程,請考慮新增一個腳本,在預先載入場景尚未啟動時自動載入該腳本。
替代方案:全域變數(更簡單的情況)
對於不太複雜的項目,使用全域變數可以提供更簡單的解決方案。 使用一行程式碼存取這些變數:
<code class="language-csharp">public static Sound sound = Object.FindObjectOfType<Sound>();</code>
總結:
透過實現預先載入場景並遵循這些最佳實踐,您的遊戲管理器腳本將僅執行一次,在所有場景中持續存在,並提供對基本遊戲功能的一致存取。
以上是如何確保我的 Unity 遊戲管理器腳本僅執行一次並在場景中持續存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!