強火で進め

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

【Unity】 Surface Effector 2D

動作検証環境

  • Unity 2022.2.0f1

はじめに

Surface Effector 2D はエスカレーターやベルトコンベアな様なものを再現する事ができるコンポーネントです。

docs.unity3d.com

プロパティ

プロパティ名 説明
Use Collider Mask Collider Mask を使いたい時にチェック。
Collider Mask ここでチェックを付けた Layer に対してのみ Surface Effector 2D の処理対象となる。
Speed 接地したターゲットに加えられる速度。正の数の場合には X 方向(右方向)、負の数の場合には -X 方向(左方向)の力が加えられる。
Speed Variation ランダムで設定される速度。「Speed+(0~ここで指定した値のランダム値)」が最終的に出力される速度になる。
Force Scale 指定された速度に到達しようとする力をスケーリングを0~1.0の範囲で指定。0の場合は全く力が加えられなくなり、 Surface Effector 2D を無効化した状態と同様になる。1にした場合にはターゲットの現在の Velocity を無視して指定した速度( Speed で指定した値)を強制します。
Use Contact Force チェックをすると接触した時にターゲットに回転の力が加わります。
Use Friction チェックをすると Friction (摩擦)が考慮されます。
Use Bounce チェックをすると Bounce (跳ね返り)が考慮されます。

解説

Speed と Speed Variation

Speed と Speed Variation の値をこの様にした場合に移動速度がバラけているのが確認できます。

Force Scale

円形の顔は右方向の力を常に発生していて、床からは左方向への速度を発生を受けるというサンプルを準備しました。

■ Force Scale = 0.01

床からの力を突破して右へ移動しました。

■ Force Scale = 0.1

床からの力が勝ち、左へ移動しました。