物理エンジンを使った跳ね返りの設定です。オブジェクトのこういった挙動も簡単に設定でき、自分で自由落下の計算をしてプログラムする必要がありません。
Bounciness
Physic Material(物理特性マテリアル)は衝突するオブジェクトの摩擦や跳ね返り効果が欲しいときに使います。跳ね返りはその中のBouncinessの設定で調整できます。
Rigidbodyを設定
GameObjectのSpheereからBall1を生成します。
またCubeからボールが跳ね返る床としてFloorを作ります(Planeでもできます)
下のようにBall1をFloorの上に配置するためのY軸を調整します。
Ball1を選択した状態から
「Component」->「Physics」->「Rigidbody」
を選択します。
ComponentのRigidbodyが追加され、
デフォルトでは「Use Gravity」にチェックが入っています。これで常に重力が働いて落下動作が加わります。
Physic MaterialのBounciness設定
「Project」->「Create」->「Physic Material」
にてNew Physic Materialが生成されます。
Ball1にこのPhysic Materialを追加
Ball1のInspectorにPhysic Materialが反映しています
Physic Material の「Bounciness」を例えば「1」に設定します。
Bouncinessは0~1の間の値をとる反発係数
これでGameで見てみるとBall1がFloorにぶつかって跳ねるのがわかります
RigidbodyをFloorに設定
下の例は、Floorにも同じPhysic Materialを「1」の反発係数を追加したところ、Ball1の跳ね返りが継続するようになりました。ブロック崩しなどで壁とボールの関係です。
Ball2を生成して(左のボ-ル)このボールにはPhysic Materialを追加しないと、Floorだけの反発が起き、減衰して止まります。
References:
Rigidbody – Unity マニュアル
物理特性マテリアル – Unity マニュアル