マウスのボタン押している間にずっとパワーが貯まり、離すとボールにパワーを加えます。
この仕組みを利用すれば、ボタンを押している時間によって、飛距離を変えることができます。

関連記事:
マウスを押した時間だけオブジェクトを拡大
パワーゲージ(レベルゲージ)をつくる
ドラッグの距離をパワー数値に変換する
ボタンを押している間だけ転がりをストップ
ボタンを押しているときだけ間隔時間を縮める
キー長押しでゆっくり数を変化させる
マウス長押しで降下させて離せば引き上げる
長押し時間によってパワーを変える
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を発射。
ボタンを押している時間が長いほど、飛距離が伸びます。

関連記事:
マウスを押した時間だけオブジェクトを拡大
パワーゲージ(レベルゲージ)をつくる
ドラッグの距離をパワー数値に変換する
ボタンを押している間だけ転がりをストップ
ボタンを押しているときだけ間隔時間を縮める
キー長押しでゆっくり数を変化させる
マウス長押しで降下させて離せば引き上げる