オブジェクトが円を描いて移動するように、スクリプトを作成しましょう。
今回の例では、XYZの3パターンで軸を変えて、動きを確認していきます。
関連記事:
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
カメラを旋回しながら自動追従させる
円を描くように動きながら前方発射
対象オブジェクトを中心に90度ずつ方向転換
MainCameraで四方向から撮影
MainCameraの回転量をドラッグで変える
Xを軸として回転
Sphereを作成し、これを中心地点とします。
Cubeを作成して、Yを3にします。
ゲームビューではこのように見えています。
CircleMove.csを作成し、Cubeに追加します。
CircleMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CircleMove : MonoBehaviour { [SerializeField] GameObject centerObj; float angle = 50; void Update () { //RotateAround(中心の場所,軸,回転角度) transform.RotateAround (centerObj.transform.position, Vector3.right, angle * Time.deltaTime); } } |
CenterObjのフィールドに、Sphereオブジェクトを入れます。
ゲームプレイしてみましょう。
Vector3.rightは、SphereのX軸を中心として回転するため、このような動きになります。
Z軸として回転
続いて、Zを軸として円状に動くようにしましょう。
Cubeの位置は、Y座標3のままにします。
CircleMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CircleMove : MonoBehaviour { [SerializeField] GameObject centerObj; float angle = 50; void Update () { //RotateAround(中心の場所,軸,回転角度) transform.RotateAround (centerObj.transform.position, Vector3.forward, angle * Time.deltaTime); } } |
ゲームプレイしてみましょう。
Vector3.forwardは、SphereのZ軸を中心として回転するため、このような動きになります。
Y軸として回転
最後に、Yを軸として円形に動かしてみましょう。
Cubeの位置を変更します。
ゲームビューではこのように見えています。
CircleMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CircleMove : MonoBehaviour { [SerializeField] GameObject centerObj; float angle = 50; void Update () { //RotateAround(中心の場所,軸,回転角度) transform.RotateAround (centerObj.transform.position, Vector3.up, angle * Time.deltaTime); } } |
ゲームプレイしてみましょう。
Vector3.upは、SphereのY軸を中心として回転するため、このような動きになります。
関連記事:
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
カメラを旋回しながら自動追従させる
円を描くように動きながら前方発射
対象オブジェクトを中心に90度ずつ方向転換
MainCameraで四方向から撮影
MainCameraの回転量をドラッグで変える