Dynamic Map
Quantum 3 新增了一種名為Dynamic Map
的地圖類型,旨在簡化執行時期地圖的自訂過程。
功能
- 提供在執行時期新增和移除靜態碰撞體的 API。
- 示例:
-
C#
// add var meshColliderIndex = dynamicMap.AddMeshCollider(frame, meshCollider); // remove dynamicMap.RemoveMeshCollider(frame, meshColliderIndex);
- 複製現有地圖並安全地修改它們。
- 示例:
-
C#
var dynamicMap = DynamicMap.FromStaticMap(f.Map);
- 在執行時期修改靜態碰撞體三角形。
- 示例:
-
C#
using (var scope = dynamicMap.EditMeshTriangles(frame, colliderIndex)) { TriangleCCW triangle = new TriangleCCW { A = v0, B = v1, C = v2 }; if(scope.TryAddTriangle(ref triangle)) { Log.Info("Triangle added successfully."); } else { Log.Error("Failed to add triangle."); } }
- 為後加入者最佳化三角形數據。
- 以前,建立動態地圖時,必須將三角形數據序列化到單獨的二進位數據資產中,並手動將其鏈接到地圖。
- 有了新的動態地圖系統,這一步驟會自動完成,且不會建立任何額外的資產。
- 可覆寫的方法,用於自訂三角形序列化過程。
- 現在可以覆寫三角形的序列化和反序列化方式,以便根據遊戲環境進一步最佳化數據。