クリックした位置から真っすぐに、ボールを発射できるしくみをつくってみましょう。
ボールの生成と、ボールに力を加える、2つのスクリプトを組み合わせて作成します。

関連記事:
クリック位置によって飛ばす方向を変える
移動と発射・MainCamera追従を組合わせる
キャラクターコントローラーに発射機能
弾が消えなければ次を撃てなくする
ボールに力を加える
まずは1つ、色つきのSphereを用意します。

プロジェクトにドラッグ&ドロップして、プレハブを作成しましょう。

ヒエラルキーの元データは削除しておきましょう。

空のオブジェクトを作成します。

GameObjectができました。

ボールに力を加えるために、スクリプトを作成します。

スクリプト名は、SphereMove.csとしました。

これを、Sphereのプレハブに追加しましょう。
Sphereのプレハブを選択し、コンポーネントを追加 > スクリプト > SphereMove

リジッドボディも追加します。
コンポーネントを追加 > 物理 > リジッドボディ

SphereMove.csにコードを書きましょう。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour {     public float force = 1.0f;     public Rigidbody rb;     void Update()     {         rb = GetComponent<Rigidbody>();         rb.AddForce(0, 0, force, ForceMode.Impulse);     } } | 
もう一度、Sphereプレハブを見てみると、Forceのフィールドが出来ていて、1が入っています。
この数値を変えると、ボールの威力が変わります。
クリックした場所にボールを生成
続いて、ボールを生成するスクリプトをつくります。
名前はGameManager.csとしました。

これは、GameObjectに追加しましょう。

GameManager.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 GameManager : MonoBehaviour {     public GameObject bullet;     private Vector3 mousePosition;     void Update()     {         if (Input.GetMouseButtonDown(0))         {             mousePosition = Input.mousePosition;             mousePosition.z = 10.0f;             Instantiate(bullet, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity);         }     } } | 
GameObjectのインスペクターを確認しょう。
Bulletのフィールドができていますので、ここにSphereプレハブをドラッグ&ドロップします。

ゲームプレイしてみましょう。

マウスクリック位置を検出して、ワールドポイントでボール生成。
生成されたボールに力が加わり、Z方向に発射されます。
関連記事:
クリック位置によって飛ばす方向を変える
移動と発射・MainCamera追従を組合わせる
キャラクターコントローラーに発射機能
弾が消えなければ次を撃てなくする
 
	   
         
         
           
         
           
        