バウンドの力を、スクリプトから指定して、一定の高さになるようにしてみましょう。
物理マテリアルを使わず、ボールの跳ね返りをスクリプトから行うことで、常に一定の力でバウンドを続けます。
関連記事:
AddForceを使ったジャンプとvelocityによるジャンプ
オブジェクトに跳ね返り(バウンド)の設定
特定の座標まで行けば跳ね返る
着地していればジャンプ可能
着地していればジャンプ可能(Raycast)
クリックした方向へジャンプする
ボタン連打による急激なジャンプを制御
一定の高さでバウンドを続ける
PlaneとSphereを作成します。
Sphereを上に移動して、リジッドボディを追加します。
ゲームビューではこのように見えています。
BallBound.csを作成し、Sphereに追加します。
BallBound.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallBound : MonoBehaviour { Rigidbody rb; private float bounce = 5.0f; void Start() { rb = GetComponent<Rigidbody>(); } void OnCollisionEnter (Collision collision) { if(collision.gameObject.name == "Plane") { rb.AddForce(transform.up.normalized * bounce , ForceMode.VelocityChange); } } } |
ゲームプレイしてみましょう。
変数bounceには、跳ね上がるパワーを入れています。
Planeにぶつかるたびに、上に向けて5.0のパワーを加え、常に一定の高さでバウンドし続けます。
関連記事:
AddForceを使ったジャンプとvelocityによるジャンプ
オブジェクトに跳ね返り(バウンド)の設定
特定の座標まで行けば跳ね返る
着地していればジャンプ可能
着地していればジャンプ可能(Raycast)
クリックした方向へジャンプする
ボタン連打による急激なジャンプを制御