Network Project Configuration
Introduction
NetworkProjectConfig
是一個Unity資產類,用於存儲Fusion的設置,在單個遊戲會話中使用。對於客戶端-伺服器模式,配置是由伺服器在執行時強制執行的;在共享遊戲的情況下,Photon伺服器插件共享要使用的配置。
有許多不同的設置,在使用某些遊戲模式時,其中一些是排他性的(還有一些是強制性的)。例如:興趣管理設置只有在使用最終一致性傳輸模式時才會生效;同時,增量快照模式只適用於客戶端-伺服器模式,等等。
場景設置
Peer Mode
Single
只有一個主要的活動場景被加載。執行遊戲構建時的默認配置。Multiple
多個對象(伺服器或客戶端)在同一個編輯器/構建事件中同時加載他們的遊戲場景。主要用於開發/除錯。
Scenes
保存Unity構建設置中啟用的場景列表。Fusion需要對它們進行索引,以便自動加載。
物理設置
Physics Engine
定義了Fusion是否應該負責物理模擬的步進。Physics 3D
PhysX由Fusion通過FixedUpdateNetwork()
直接步進。Physics 2D
Unity的Box2D由Fusion直接使用FixedUpdateNetwork()
進行步進。None
Fusion不進行物理步進,由Unity處理。這通常只用於完全不需要物理的遊戲,或者更簡單的共享模式的應用中。
Prediction Mode
Server Only
物理學只在FixedUpdateNetwork的前向新刻度上步進。重新模擬並不影響物理引擎。Client Prediction
物理學在客戶端被完全預測(並為伺服器調和回滾)。這樣做成本較高(由於PhysX場景重置),在希望提供所見即所得的物理沙盒體驗的遊戲中應謹慎使用。
對象設置
模擬
Tick率
Tick代表時間上的離散點,與任何特定的或主機上的”實際”時間流逝脫鉤。例如,如果刻度率被定義為1/60秒,這就是模擬所使用的時間步長。使用嘀嗒聲而不是硬件時鐘,可以使網路會話中的所有參與者共享一個共同的”時間“參考框架。這對於準確推理未來和過去的事件至關重要。
在幕後,Fusion會盡可能地忠實於所需的tick率;它可能會進行微觀修正,以便與伺服器給出的正確tick時間保持同步。Fusion也會進行重新模擬,即快速連續地執行多個模擬步驟,從更新的舊狀態中建立一個新的當前狀態。
複製模式
遊戲的Replication Mode
,又稱狀態轉移模式,在NetworkProjectConfig
資產的Simulation
部分定義。
所有複製模式的API都是相同的,因此同一個遊戲和代碼可以使用不同的複製模式來執行不同的遊戲事件。這使得開發者可以在開發後期選擇或切換複製模式。
增量快照
Delta Snapshots
是伺服器授權的,並使用極其有效的增量壓縮方式傳輸完整的世界快照。Delta Snapshots
允許每個客戶端持續接收精確的數據。這對於玩家數量較少的快節奏競技遊戲是非常理想的(例如:10人團隊的FPS)。
這種模式只適用於由專用伺服器或由玩家主機啟動的遊戲(對雲端共享遊戲無效)。
最終一致性
Eventual Consistency
模式增加了興趣區,因此更適用於有大量NetworkObject
和複雜世界的遊戲(例如:生存和戰鬥遊戲)。
Server Auth
:
該模式僅適用於由專用伺服器或玩家主機啟動的遊戲(對雲端共享遊戲無效)。
Client Auth
:客戶端授權EC用於通過Photon Cloud的共享遊戲。感興趣的區域由Photon伺服器插件管理(對所有帶有NetworkTransform
或NetworkRigidbody
組件的遊戲對象自動管理)。