止まっているオブジェクトをクリックすれば、前方へ飛んでいく仕組みをつくってみましょう。
空中にある3個のCubeオブジェクト。
それぞれ左クリックすると、Cubeを弾いて飛ばすことができます。
関連記事:
AddForceを使ってプレハブを前方へ飛ばす
クリック位置によって飛ばす方向を変える
ドラッグした方向へ飛ばす
指定の座標からn秒おきに発射
落としたボールを1秒後に補充
クリックでオブジェクトを弾く
Cubeを作成してリジッドボディを追加し、Is Kinematicにチェックを入れます。
Targetという名前でタグを設定します。
Cubeを複製します。
横並びに配置しました。
空のオブジェクトを作成します。
CubePush.csを作成し、GameObject(空のオブジェクト)に追加します。
CubePush.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubePush : MonoBehaviour { private float force = 100.0f; private Rigidbody rb; void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { if (hit.collider.tag == "Target") { rb = hit.collider.gameObject.GetComponent<Rigidbody>(); rb.isKinematic = false; rb.AddForce(0, 0, force, ForceMode.Impulse); } } } } } |
ゲームプレイして、Cubeをクリックしてみましょう。
クリックしたオブジェクトが弾かれ、前に向かって飛んでいきます。
関連記事:
AddForceを使ってプレハブを前方へ飛ばす
クリック位置によって飛ばす方向を変える
ドラッグした方向へ飛ばす
指定の座標からn秒おきに発射
落としたボールを1秒後に補充