飛ばしたオブジェクトを、キー操作で曲げられるように、スクリプトを作成しましょう。
Spaceキーでボールを発射。
十字キーを使って、上下左右に軌道を曲げることができます。
関連記事:
発射したボールをカーブさせる
ターゲットに向かってオブジェクトをぶつける
発射したオブジェクトを回転させる
十字キーでボールの軌道を変える
Sphereを作成して、リジッドボディを追加。
Use Graivityのチェックを外します。
Curve.csを作成して、Sphereに追加します。
Curve.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Curve : MonoBehaviour { void Update() { if (Input.GetKey(KeyCode.RightArrow)) { GetComponent<Rigidbody>().AddForce(transform.right * 10); } if (Input.GetKey(KeyCode.LeftArrow)) { GetComponent<Rigidbody>().AddForce(transform.right * -10); } if (Input.GetKey(KeyCode.UpArrow)) { GetComponent<Rigidbody>().AddForce(transform.up * 10); } if (Input.GetKey(KeyCode.DownArrow)) { GetComponent<Rigidbody>().AddForce(transform.up * -10); } } } |
Sphereをプロジェクトビューにドラッグ&ドロップし、Prefab化します。
Sphereの元データは消しておきます。
空のオブジェクトを作成します。
BallShot.csを作成し、GameObject(空のオブジェクト)に追加します。
BallShot.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; void Update() { if(Input.GetKeyDown("space")) { GameObject ball = GameObject.Instantiate (prefab)as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * 1000); } } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイして、動きを確認しましょう。
スペースキーでボールを発射。
十字キーで、発射したボールを曲げることができます。