【Unity】障害物の下から突き抜けて上がる

Unityでのプラットフォームエフェクター(Platform Effector 2D)の使い方について説明します。プラットフォームエフェクターは、主に2Dゲームで、キャラクターが上からは通過できるが下からは通過できない、一方通行のプラットフォームを作成するために使用されます。これにより、階段や傾斜路を上がるといった、リアルな物理挙動をシミュレートすることができます。

プラットフォームエフェクター

基本的な設定方法

  1. プラットフォームの作成: まず、プラットフォームとなるオブジェクトにSpriteRendererCollider2D(通常はBoxCollider2DEdgeCollider2D)を追加します。このコライダーは、キャラクターとプラットフォームが接触するための物理的な境界を提供します。
  2. プラットフォームエフェクターの追加: 次に、プラットフォームのオブジェクトにPlatform Effector 2Dコンポーネントを追加します。このコンポーネントは、Collider2Dと一緒に使用され、プラットフォームの挙動を制御します。
  3. Rigidbody2Dの設定: エフェクターが正しく動作するためには、プラットフォームのオブジェクトにRigidbody2Dコンポーネントを追加し、そのBody TypeStaticに設定します。これにより、プラットフォームが動かない静的なオブジェクトとして扱われます。
  4. プラットフォームエフェクターの設定: Platform Effector 2Dコンポーネントには、さまざまな設定があります。例えば、Surface Arcはプラットフォームの上面の範囲を度数法で指定し、キャラクターがプラットフォームに乗ることができる角度を制御します。Use One Wayを有効にすると、キャラクターがプラットフォームの下から上に通過することを防ぎます。

応用設定

  • One Way Platform: Use One Wayオプションを有効にすることで、プラットフォームが一方通行になります。これは、キャラクターがプラットフォームを下から通過できないようにするために使用されます。
  • Side Friction: Use Side Frictionオプションを有効にすると、プラットフォームの側面に摩擦が適用され、キャラクターが側面に触れたときの滑りを制御できます。
  • Side Bounce: Use Side Bounceオプションを有効にすると、プラットフォームの側面がバウンス効果を持つようになります。これは、キャラクターが側面に衝突したときに跳ね返るようにするために使用されます。

Unityのプラットフォームエフェクターを使用することで、プレイヤーにとって直感的で理解しやすいプラットフォームの挙動を実現できます。特にプラットフォームアクションゲームやパズルゲームなど、2Dゲーム開発において非常に便利な機能です。

具体的なサンプル

Boxコライダーをアタッチしただけの場合

プラットフォームエフェクターをアタッチし適切に設定した場合

手順

プラットフォームエフェクターをアタッチし、既存のBoxコライダーのUsed By Effectorを設定します

Unity

Posted by hidepon