動的マップ
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.");
}
}
- 途中参加者用に、三角形データを最適化する
- 以前までは、動的マップを作成する際に、三角形データを別のバイナリデータアセットにシリアライズして、それを手動でマップにリンクする必要がありました。
- 新しい動的マップシステムでは、これらは自動的に行われ、追加アセット作成も行われません。
- 三角形のシリアライズプロセスをカスタマイズするためのオーバーライドメソッド
- 三角形のシリアライズ/デシリアライズの方法をオーバーライドすることで、ゲームのコンテキストに応じた詳細な最適化が実行できるようになります。