This document is about: QUANTUM 3
SWITCH TO

2.5D 物理

はじめに

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

垂直データを使用した2.5D物理

StaticCollider2D は、Quantumの2.5D物理を使用して3次元で「厚み」を持たせることができます。Height を設定するだけです。

Adding Height to a Static Collider
静的コライダーに高さを追加。

エンティティに高さを追加する

エンティティには、Transform2DVertical コンポーネントを追加し、その HeightPosition Offset を設定するだけです。Quantum XZ指向のゲームでは、これによりY軸に高さが追加されます。
注: Transform2DVerticalTransform2D コンポーネントを必要とします。

C#

var transform2dVertical = new Transform2DVertical();
transform2dVertical.Height = FP._1;
transform2dVertical.Position = FP._1;

f.Set(entity, transform2dVertical);
Adding Height to an Entity Prototype
エンティティプロトタイプに高さを追加。

エンティティやスタティックオブジェクトが3次元を持つ場合、物理エンジンは衝突解決時にそれを考慮します。これにより、「空中」のエンティティが「地上」のエンティティの上を飛ぶことが可能になります。

物理エンジンの影響

エンティティの分離

重要: 衝突が検出されると、衝突解決者は追加の次元情報を使用しません。これにより、物理エンジンの基本2D平面で分離が行われる際に、エンティティがバウンスすることがあります。

Transform2DVertical.Position に対して手動で速度や力を直接適用することで、3次元の重力をシミュレートすることが可能です。ただし、物理エンジンはその情報を衝突検出にのみ使用します。

レイキャストとオーバーラップ

これらの関数はデフォルトではすべてフラットで、2D平面上でのみ実行されます。2.5Dを活用するには、高さと垂直オフセットをパラメータとして受け取るオーバーロード版を使用してください。

Back to top