往復運動はいくつか方法がありますが、今回の例では、座標を折り返し地点として指定します。
MoveTowardsを使えば、目的地の座標や、動くスピードを設定することができます。
今回は、Z軸方向にくり返し移動する方法を見ていきましょう。
関連記事:
2点間の往復運動をくり返す
2つの座標(目的地)へ行く
行き帰りできるムービングウォーク
Updateを使わずに特定の座標まで移動
特定の座標まで行けば跳ね返る
特定の座標で移動を止める
座標の小数値を端数処理して条件設定
座標を整数に変換して条件分岐
Rayの照射が外れれば向きを変える
座標による往復運動のスクリプト
Cubeを1つ用意しました。
Cubeに、CubeMove.csを作成して追加しましょう。
CubeMove.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 CubeMove : MonoBehaviour { private float speed = 5.0f; private bool flag; void Update() { if(transform.position.z >= 3) flag = true; else if(transform.position.z <= -3) flag = false; if(flag) transform.position = Vector3.MoveTowards(transform.position, new Vector3(0,0,-3), speed * Time.deltaTime); else if(!flag) transform.position = Vector3.MoveTowards(transform.position, new Vector3(0,0,3), speed * Time.deltaTime); } } |
MoveTowardsを使うことで、動き始めの位置、目的地の座標、動くスピードを設定できます。
Vector3.MoveTowards(動き始めの位置, 目的の位置, スピード);
プレイしてみましょう。
オブジェクトが往復運動を繰り返しています。
スピードアップしたい場合は、speedの変数を変更しましょう。
関連記事:
2点間の往復運動をくり返す
2つの座標(目的地)へ行く
行き帰りできるムービングウォーク
Updateを使わずに特定の座標まで移動
特定の座標まで行けば跳ね返る
特定の座標で移動を止める
座標の小数値を端数処理して条件設定
座標を整数に変換して条件分岐
Rayの照射が外れれば向きを変える