This document is about: QUANTUM 3
SWITCH TO

2.5D物理

はじめに

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

垂直データを持つ2.5D物理

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

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

エンティティでは、Transform2DVerticalコンポーネントを追加してHeightPosition Offsetを設定するだけです。これによって、XZ平面のゲームにY軸の高さが追加されます。
注意: Transform2DVerticalにはTransform2Dコンポーネントが必要です。

C#

    var transform2dVertical = new Transform2DVertical();
    transform2dVertical.Height = FP._1;
    transform2dVertical.Position = FP._1;
    
    f.Set(entity, transform2dVertical);
Adding Height to an Entity Prototype
エンティティプロトタイプに高さを追加する

エンティティや静的オブジェクトが3Dの場合、物理エンジンはそれを考慮して衝突を解決します。これによって、「空中」のエンティティが「地上」のエンティティの上を飛ぶことが可能になります。

物理エンジンの影響

エンティティの分離

重要: 衝突を検知しても、衝突ソルバーは追加の次元情報を使用しません。これによって、物理エンジンで2D平面の分離が実行される際に、エンティティがバウンスすることがあります。

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

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

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

Back to top