発射するオブジェクトの速度を、ランダムで変えられるように、スクリプトを作成してみましょう。
クリックでボール発射。発射のたびに、スピードがランダムで変化します。
発射のたびに速度を変える
Sphereを作成し、リジッドボディを追加。
UseGravityのチェックを外します。
BallMove.csを作成し、Sphereに追加します。
BallMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using Random = UnityEngine.Random; public class BallMove : MonoBehaviour { public float force; public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); force = Random.Range(1.0f, 20.0f); } void Update() { rb.velocity = new Vector3(0, 0, force); } } |
Sphereをプレハブ化します。
Sphereの元データは削除します。
空のオブジェクトを作成します。
BallManager.csを作成し、GameManager(空のオブジェクト)に追加します。
BallManager.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallManager : MonoBehaviour { public GameObject ball; private Vector3 mousePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 5.0f; Instantiate(ball, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
Ballのフィールドに、Sphereを入れます。
ゲームプレイして、クリックしましょう。
発射のたびに、ボールの速度が1.0~20.0の範囲で、ランダムで変わっていきます。