マウスのボタン押している間にずっとパワーが貯まり、離すとボールにパワーを加えます。
この仕組みを利用すれば、ボタンを押している時間によって、飛距離を変えることができます。
関連記事:
マウスを押した時間だけオブジェクトを拡大
パワーゲージ(レベルゲージ)をつくる
ドラッグの距離をパワー数値に変換する
ボタンを押している間だけ転がりをストップ
ボタンを押しているときだけ間隔時間を縮める
キー長押しでゆっくり数を変化させる
マウス長押しで降下させて離せば引き上げる
長押し時間によってパワーを変える
Planeを作成して、Z方向の距離を変えます。
Sphereを作成し、リジッドボディを追加。
Y座標を変えて、上のほうへ位置を変えます。
マテリアルをつけて、見た目をわかりやすくします。
ゲームビューではこのように見えています。
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブ化します。
Prefabの元データを削除します。
空のオブジェクトを作成。
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 28 29 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; private int power; void Start() { power = 0; } void Update() { if (Input.GetMouseButton(0)) { power += 10; } if(Input.GetMouseButtonUp(0)) { GameObject ball = GameObject.Instantiate (prefab)as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * power); power = 0; } } } |
プレハブのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしてみましょう。
マウスの左ボタンを長押しして、離せばSphereを発射。
ボタンを押している時間が長いほど、飛距離が伸びます。
関連記事:
マウスを押した時間だけオブジェクトを拡大
パワーゲージ(レベルゲージ)をつくる
ドラッグの距離をパワー数値に変換する
ボタンを押している間だけ転がりをストップ
ボタンを押しているときだけ間隔時間を縮める
キー長押しでゆっくり数を変化させる
マウス長押しで降下させて離せば引き上げる