強火で進め

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

【Unity】 Buoyancy Effector 2D

動作検証環境

  • Unity 2022.2.0f1

はじめに

Buoyancy Effector 2D は浮力や流れなどの水の表現をしたい時に使用するコンポーネントです。

docs.unity3d.com

プロパティ

プロパティ名 説明
Use Collider Mask Collider Mask を使いたい時にチェック。
Collider Mask ここでチェックを付けた Layer に対してのみ Buoyancy Effector 2D の処理対象となる。
Surface Level 水面の位置を設定。
Density 密度の設定。値が大きいほど浮力が上がります。
Linear Drag 直線的な移動の力を抑える力の強さを設定。
Angular Drag 回転(角速度)を抑える力の強さを設定。
Flow Angle 水の流れる方向を角度で指定。
Flow Magnitude 水の流れる力の強さ。
Flow Variation ランダムで設定される水の流れる力の強さ。「Flow Magnitude+0~ここで指定した値の範囲のランダム値」が最終的に出力される力の強さになる。

解説

Surface Level

Surface Level の現在の位置は Scene ビューでは水色のラインで表示されます。

デフォルト値の 0 の時には中央に位置するので Scene ビューで確認しながら自分のゲームに合った位置に移動させます。

Linear Drag

値が大きい方がより速く静止します。

Angular Drag

値が大きい方がより速く静止します。

Flow Angle と Flow Magnitude

Flow Angle0Flow Magnitude3 を設定する事で+X方向(右方向)へ水が流れます。

Flow Angle を 90、180、270 に変更した場合には水はこの様な方向へ流れます。

※実際にはオブジェクトには「水の流れ / 浮力 / 重力」が加わる為、完全に水の流れの方へ移動させたい場合には浮力と重力をゼロに設定する必要が有ります。

Flow Variation

Buoyancy Effector 2D にこの様に設定した状態で水の中にオブジェクトをどんどん生成するとオブジェクトの流れる速度がそれぞれ異なる事が確認できます。