5段階で発射スピードを変えられるように、スクリプトを作成してみましょう。
今回の例では、パワーレベルを可視化できるように、スライダーを表示しています。
上下キーによって、数値が切り替わり、クリックで発射します。
パワーレベルの切り替え
スライダーを作成し、最小値0と最大値5に変更し、Valueの初期値を1にします。
下から上の縦向きにして、左端に配置します。
Sphereを作成して、リジッドボディを追加。
Sphereをプレハブ化します。
Sphereの元データは削除しておきましょう。
続いて、空のオブジェクトを作成します。
PowerChange.csを作成し、GameObject(空のオブジェクト)に追加します。
PowerChange.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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class PowerChange : MonoBehaviour { int count; int power; public Slider slider; public GameObject prefab; private Vector3 mousePosition; void Start() { count = 1; power = 1000; } void Update() { slider.value = count; if (Input.GetKeyDown(KeyCode.UpArrow)) { if(count < 5) { count++; } } if (Input.GetKeyDown(KeyCode.DownArrow)) { if(count > 1) { count--; } } if(Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; GameObject ball = GameObject.Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); ball.GetComponent<Rigidbody>().AddForce(transform.forward * count * power); } } } |
プレハブのフィールドにSphereを、スライダーのフィールドにはSlideを入れます。
ゲームプレイしてみましょう。
上下キーによってパワーレベルが変化し、スライダーに連動します。
クリックで発射すると、パワー数値によって、ボールのスピードが変わります。