【Unity】障害物の下から突き抜けて上がる
Unityでの「プラットフォームエフェクター(Platform Effector 2D)」の使い方を説明します。このエフェクターは、2Dゲームでよく使用される機能で、キャラクターがプラットフォームを一方向からしか通過できないように設定できます。例えば、キャラクターが上からは通過できるが下からは通過できないといった、一方通行のプラットフォームを作ることができます。これにより、階段や傾斜のリアルな物理挙動を再現できます。
基本的な設定方法
具体的なサンプルについては、後半に記載しています
プラットフォームの作成
まず、プラットフォームとなるオブジェクトにSpriteRenderer
とCollider2D
(通常はBoxCollider2D
やEdgeCollider2D
)を追加します。このコライダーがキャラクターとプラットフォームの物理的な接触を担当します。
プラットフォームエフェクターの追加
プラットフォームオブジェクトにPlatform Effector 2D
コンポーネントを追加します。これはCollider2D
と連動して、プラットフォームの物理的な挙動をコントロールします。
Rigidbody2Dの設定
エフェクターが正しく機能するには、プラットフォームにRigidbody2D
コンポーネントを追加し、そのBody Type
をStatic
に設定します。これにより、プラットフォームは動かない静的オブジェクトとして扱われます。
Rigidbody2D
のBody Type
をKinematic
に設定すると、プラットフォームが動く場合に適した設定となります。Static
は動かないオブジェクト向けですが、Kinematic
はスクリプトで制御するオブジェクトや物理シミュレーションに影響を受けないオブジェクトに使います。
つまり、Kinematic
を使用すると、プラットフォームを動かしながらも一方向にだけキャラクターを通過させるような挙動を実現できます。これにより、例えば移動する一方通行のプラットフォームなどを作成できます。
用途に応じてStatic
またはKinematic
を選ぶと良いでしょう。
プラットフォームエフェクターの設定
Platform Effector 2D
コンポーネントには、いくつかの設定があります。
- Surface Arc: プラットフォームの上面の範囲を角度で指定します。キャラクターがどの角度からプラットフォームに乗れるかを制御します。
- Use One Way: これを有効にすると、キャラクターがプラットフォームの下から上に通過することができなくなり、一方通行のプラットフォームが作れます。
具体的なサンプル
Boxコライダーをアタッチしただけの場合
プラットフォームエフェクターをアタッチし適切に設定した場合
手順
プラットフォームエフェクターをアタッチし、既存のBoxコライダーのUsed By Effectorを設定します
応用設定
一方通行のプラットフォーム (One Way Platform)
Use One Way
オプションを有効にすると、プラットフォームが一方通行になります。これにより、キャラクターは下から通過できなくなります。
側面摩擦 (Side Friction)
Use Side Friction
オプションを有効にすると、プラットフォームの側面に摩擦が適用され、キャラクターが側面に触れたときの滑りを制御できます。
側面のバウンス (Side Bounce)
Use Side Bounce
オプションを有効にすると、プラットフォームの側面がバウンド効果を持つようになります。これにより、キャラクターが側面に衝突したときに跳ね返る動作が追加されます。
Platform Effector 2D
を使うことで、自然で直感的なプラットフォームの挙動を実現できます。特にプラットフォームアクションやパズルゲームの開発に役立つ機能です。
Unityでのプラットフォームエフェクター(Platform Effector 2D)の使い方について説明します。プラットフォームエフェクターは、主に2Dゲームで、キャラクターが上からは通過できるが下からは通過できない、一方通行のプラットフォームを作成するために使用されます。これにより、階段や傾斜路を上がるといった、リアルな物理挙動をシミュレートすることができます。
ディスカッション
コメント一覧
まだ、コメントがありません