Unity の 2D 物理にある「〇〇Effector 2D」コンポーネントについて、実際の効果がわかるサンプルを作りました。
サンプル
- マウスカーソルに合わせて白い四角が動きます
- 白い四角で黄色いオブジェクトを押して動かすことができます
Effector2D を使う上での注意点
Effector2D を使う時は、同じゲームオブジェト内に Collider 2D を入れ、Collider 側の「Used By Effector」プロパティを ON にする必要があります。
Effector2D の説明と活用アイデア
Area Effector 2D
中にいる物体に対して、一方向からの力を加えます。
Force Angle で方向を、Force Magnitude で力の大きさを指定します。
穴の下から間隔を空けて上方向の風を吹かせ、風が吹いている間に穴の上を飛んで渡るようなギミックが作れます。
Buoyancy Effector 2D
中にいる物体に対して水に浮いているような影響を与えます。
(「Buoyancy」とは、「浮力」という意味です)
Density が高いほど浮きやすくなり、Surface Level が高いほど、浮き上がった際に勢いよく浮くようになります。
水以外にも、中に入ると動きが鈍るような「沼地」なども表現できそうです。
Platform Effector 2D
Surface Arc で指定した方向からのみ通過できるようにします。
2D ゲームによくある「空中に浮く足場」や、「斜めにかかった上り階段」のようなこともできます。
「↓+ジャンプボタンで足場から降りる」という操作はこのままではできないので、スクリプトで一時的に無効化するなどの対応が必要になると思われます。
Surface Effector 2D
上に乗っている物体に対して、ベルトコンベアのような力を加えます。
このサンプルでは左向きの力を加えたいので、マイナスの値を入れています。
垂直な壁に置いて「壁上り装置」を作ったり、天井に置いて「針山を超える」ようなギミックも作れそうです。
Point Effector 2D
中心点から外側に押し出すような力を加えます。
Force Magnitude で押し出す強さを指定でき、マイナスの値を入れると吸い込むような挙動になります。
ブラックホール・ホワイトホールのようなギミックが作れます。
敵の技として一時的な攻撃判定にくっつけるのも面白そうです。
コメント