強火で進め

このブログではプログラム関連の記事を中心に書いてます。

【Unity】 Area Effector 2D

動作検証環境

  • Unity 2022.2.0f1

はじめに

Area Effector 2D は Collider で設定した領域と接触した時に様々な力を与えるコンポーネントです。

docs.unity3d.com

プロパティ

プロパティ名 説明
Use Collider Mask Collider Mask を使いたい時にチェック。
Collider Mask ここでチェックを付けた Layer に対してのみ Area Effector 2D の処理対象となる。
Use Global Angle チェックを付けると Force Angle の指定がワールド座標での角度として指定される。
Force Angle 力を加える向き(角度)。
Force Magnitude 力の強さ。
Force Variation ランダムで設定される力の強さ。「Force Magnitude+0~ここで指定した値の範囲のランダム値」が最終的に出力される力の強さになる。
Force Target 力を加える位置を指定。Collider を選択した場合には Collider の位置に、 Rigidbody を選択した場合には重心に力が加えられる。
Drag 移動を抑える力の強さを設定。
Angular Drag 回転(角速度)を抑える力の強さを設定。

解説

Force Magnitude と Force Angle

緑色エリアには Area Effector 2D を設定し、赤い Box に力が加わる環境を準備します。 なお、 Box の Rigidbody 2DGravity Scale0 に設定して重力はかかっていない状態にします。

この状態でこの様に Force Managitude10 を設定すると Box は右へ移動して行きます。 これは Force Angle0 で有ること合わせた効果です。

Force Angle を 90、180、270 に変更した場合には Box はこの様な方向へ移動します。

Force Variation

この2つの緑色エリアにはどちらにも Force MagnitudeForce Variation に同じ値を設定をしています。

「Force Magnitude + Force Variation でのランダム値」の力が加えられるので実行させると2つの Box の移動量に差が発生します。

Drag

Drag の値が大きいほど減速が大きい事が確認できます。

Angular Drag

Angular Drag の値が大きいほど回転の減速が大きい事が確認できます。