【Unity】 Buoyancy Effector 2D
動作検証環境
- Unity 2022.2.0f1
はじめに
Buoyancy Effector 2D は浮力や流れなどの水の表現をしたい時に使用するコンポーネントです。
プロパティ
| プロパティ名 | 説明 |
|---|---|
| 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 Angle に 0 、 Flow Magnitude に 3 を設定する事で+X方向(右方向)へ水が流れます。


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

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

