百単位や十単位で、ランダムの数値を取得できるようにしましょう。
今回は、ボールに加える力を、百単位のランダムで変化させてみます。
velocityに入れる数値など、大きく変化させたい場合に用いましょう。
百単位の乱数を導き出す
動きをわかりやすくするため、平面オブジェクトを作成し、座標とサイズを変更します。
Sphereを作成して、リジッドボディを追加。
マテリアルカラーをつけてわかりやすくします。
ゲームビューではこのように見えてみます。
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブ化します。
Sphereの元データは消しておきましょう。
空のオブジェクトを作成。
BallShot.csを作成して、GameObjectに追加します。
BallShot.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; private float time; private int power; void Start() { time = 0; } void Update() { time -= Time.deltaTime ; if(time <= 0.0f) { power = Random.Range (5, 20); GameObject ball = GameObject.Instantiate (prefab)as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * power * 100); time = 1.0f; } } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイしてみましょう。
発射されるたびに、百単位のランダムで力が加わり、毎回ボールのスピードが変わっていきます。