発射した弾が、ジグザグに動いていくように、スクリプトを作成してみましょう。
クリックでSphereを発射します。
発射されたオブジェクトは、横方向に往復運動をくり返しながら、前に移動していきます。
関連記事:
キャラクターをジグザグに動かす
地面から出たり引っ込んだりする
クリックのたびに左右移動を切り替える
飛ばしたボールがジグザグに動く
Sphereを作成します。
BallMove.csを作成して、Sphereに追加します。
BallMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallMove : MonoBehaviour { private int ziguzagu; private float moveX = 0.1f; private float moveZ = 0.1f; void Update() { transform.Translate(new Vector3(moveX, 0, moveZ)); ziguzagu++; if (ziguzagu == 10) { ziguzagu = 0; moveX *= -1; } } } |
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 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; private Vector3 mousePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイして、画面をクリックしましょう。
発射されたボールがジグザグに動きます。