動的マップ
Quantum 3はDynamic Map
と呼ばれる新しいマップが追加されていて、実行時のマップのカスタマイズプロセスが簡単になります。
機能
- 実行時に静的コライダーを追加/削除するAPIの提供
C#
// 追加
var meshColliderIndex = dynamicMap.AddMeshCollider(frame, meshCollider);
// 削除
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.");
}
}
- 途中参加者用に、トライアングルデータを最適化する
- 以前までは、動的マップを作成する際に、トライアングルデータを別のバイナリデータアセットにシリアライズして、それを手動でマップにリンクする必要がありました。
- 新しい動的マップシステムでは、これらは自動的に行われ、追加アセット作成も行われません。
- トライアングルのシリアライズプロセスをカスタマイズするためのオーバーライドメソッド
- トライアングルのシリアライズ/デシリアライズの方法をオーバーライドすることで、ゲームのコンテキストに応じた詳細な最適化が実行できるようになります。