2.5D 物理
はじめに
2.5D物理を使用すると、厚さ(または高さ)を追加しながら、2D物理エンジンが提供するほとんどのパフォーマンスの利点を享受することができます。
注: Vertical Transformを使用は、SimulationConfigアセットの物理設定でトグル可能なフィールドで、デフォルトでは有効になっています。
垂直データを使用した2.5D物理
StaticCollider2D は、Quantumの2.5D物理を使用して3次元で「厚み」を持たせることができます。Height を設定するだけです。

エンティティに高さを追加する
エンティティには、Transform2DVertical コンポーネントを追加し、その Height と Position Offset を設定するだけです。Quantum XZ指向のゲームでは、これによりY軸に高さが追加されます。
注: Transform2DVertical は Transform2D コンポーネントを必要とします。
C#
var transform2dVertical = new Transform2DVertical();
transform2dVertical.Height = FP._1;
transform2dVertical.Position = FP._1;
f.Set(entity, transform2dVertical);

エンティティやスタティックオブジェクトが3次元を持つ場合、物理エンジンは衝突解決時にそれを考慮します。これにより、「空中」のエンティティが「地上」のエンティティの上を飛ぶことが可能になります。
物理エンジンの影響
エンティティの分離
重要: 衝突が検出されると、衝突解決者は追加の次元情報を使用しません。これにより、物理エンジンの基本2D平面で分離が行われる際に、エンティティがバウンスすることがあります。
Transform2DVertical.Position に対して手動で速度や力を直接適用することで、3次元の重力をシミュレートすることが可能です。ただし、物理エンジンはその情報を衝突検出にのみ使用します。
レイキャストとオーバーラップ
これらの関数はデフォルトではすべてフラットで、2D平面上でのみ実行されます。2.5Dを活用するには、高さと垂直オフセットをパラメータとして受け取るオーバーロード版を使用してください。
Back to top