This document is about: QUANTUM 3
SWITCH TO

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.");
        }
      }
      
  • 為後加入者最佳化三角形數據。
    • 以前,建立動態地圖時,必須將三角形數據序列化到單獨的二進位數據資產中,並手動將其鏈接到地圖。
    • 有了新的動態地圖系統,這一步驟會自動完成,且不會建立任何額外的資產。
  • 可覆寫的方法,用於自訂三角形序列化過程。
    • 現在可以覆寫三角形的序列化和反序列化方式,以便根據遊戲環境進一步最佳化數據。
Back to top