Scene Loading
概述
在Quantum的脈絡中載入一個場景,其有兩個部分:
- 場景檢視(Unity);及,
- 針對模擬的場景資料(Quantum)。
這個文件將呈現3個有效的方法,以執行場景載入。在這些方法之中,您將希望自行載入Unity場景及地圖資料(針對後者是透過OnMapChanged
回調)。
注意事項: Simulation Config
資產提供一個 從地圖自動載入場景 選項。這對於 原型 而言還可以,但對於 生產,我們強烈建議您撰寫您自己的遊戲特定載入器。
在離線時載入
在玩家進入對戰配對或開始遊戲之前,Unity場景可以被離線/本機地載入。針對直接對戰配對的休閒遊戲,這是一個好的選項。
順序:
- 在背景中載入遊戲遊玩場景,即便是在離線時(Unity)
- 進入對戰配對並且找到一個房間(Photon Realtime)
- 以已經預先載入的遊戲遊玩場景來開始模擬(Quantum)
在Photon房間中時載入
如果您需要一個大廳來通知玩家對戰前資訊,您可以透過Photon Realtime API來協調載入,並且在每個人已經載入遊戲遊玩場景之後立即啟動Quantum模擬。
順序:
玩家加入一個Photon房間
針對所有透過Realtime加入房間的客戶端,來協調場景載入:
- 以(自訂Photon訊息或房間屬性)發出預期載入時間的信號
- 等待所有客戶端來確認它們已經載入場景(玩家屬性),或 主要客戶端發出逾時的信號
- 發出Quantum模擬開始的信號(房間屬性)
當遊戲開始時,模擬及遊戲遊玩立即開始,不需要任何額外的載入。;這對於所有參與玩家而言是公平的。
在Quantum開始之後載入
這個選項與上一個類似,但有一個關鍵區別:大廳規則由Quantum模擬來控制與執行。這樣做的話可以讓您立即受益於確定性,這在需要執行預先對戰規則時特別有用——舉例而言,在MOBA中的角色選擇規則。
順序:
- 加入一個房間(Realtime)
- 開始模擬(Quantum)
- 載入遊戲遊玩場景(Unity)
- 遊戲遊玩場景有一個由模擬邏輯控制的大廳
- 玩家可以以他們的選擇來使用
SendPlayerData
- 由大廳系統(Quantum)來執行一個逾時,因此在客戶端出現故障時維持了確定性
- 停用Quantum中的大廳系統,並且啟用與遊戲遊玩相關的系統