n秒おきに、ランダムの座標へ向けて動き続けるように、スクリプトを作成しましょう。
2秒おきに、Cubeがランダムの場所へ向かって移動し続けています。
敵キャラの動きなどをつけたいときに、使えそうなスクリプトです。
関連記事:
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
ターゲットに向かって直線的に進む方法
3D空間でプレーヤーを追いかけるオブジェクト
クリックした位置のX座標に向けて横移動する
約1秒かけてオブジェクトをゆっくり移動させる
周囲のあらゆる方向からボールが飛んでくる
誤差をつけてあえて命中率を下げる
3秒おきに出現と消滅をくり返す
ランダムで動くポイントを作成
空のオブジェクトを作成。
PointMove.csを作成し、GameObjectに追加します。
PointMove.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 PointMove : MonoBehaviour { private float time; private int vecX; private int vecY; void Start() { time = 0; } void Update() { time -= Time.deltaTime; if(time <= 0.0f) { vecX = Random.Range(-5,5); vecY = Random.Range(-5,5); transform.position = new Vector3(vecX,vecY,0); time = 2.0f; } } } |
まずは2秒おきに、画面上をランダム移動するポイントを作成しました。
このポイントへ向けて、Cubeが移動するように作っていきます。
ランダム座標へ向けて移動
Cubeを作成します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { public GameObject target; void Update() { transform.position = Vector3.MoveTowards(transform.position,target.transform.position,0.1f); } } |
Cubeを選択し、ターゲットのフィールドに、GameObjectを入れましょう。
ゲームプレイしてみましょう。
Vector3.MoveTowards()の中は、「現在の位置、目的の位置、速度」の順に指定。
2秒おきに場所が変わるGameObjectに向かって、0.1秒の速度で、動き続けます。
関連記事:
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
ターゲットに向かって直線的に進む方法
3D空間でプレーヤーを追いかけるオブジェクト
クリックした位置のX座標に向けて横移動する
約1秒かけてオブジェクトをゆっくり移動させる
周囲のあらゆる方向からボールが飛んでくる
誤差をつけてあえて命中率を下げる
3秒おきに出現と消滅をくり返す