真ん中にあるオブジェクトの方を向きながら、プレーヤーを円状に動かせるように、スクリプトを作成してみましょう。
Sphereを中心にして、その周囲を公転するように、十字キーで操作します。
球体の外周を移動するように、プレーヤーを動かすことができます。
関連記事:
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
円を描くように移動する
円を描くように動きながら前方発射
ターゲットの外周に沿って円移動
Sphereを中心にして、Cubeを少しだけ離して作成します。
AroundMove.csを作成し、Cubeに追加します。
AroundMove.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 28 29 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class AroundMove : MonoBehaviour { [SerializeField] GameObject target; float angle = 100; void Update () { if (Input.GetKey(KeyCode.RightArrow)) { transform.RotateAround (target.transform.position, Vector3.up, angle * Time.deltaTime); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.RotateAround (target.transform.position, Vector3.up, -angle * Time.deltaTime); } if (Input.GetKey(KeyCode.UpArrow)) { transform.RotateAround (target.transform.position, Vector3.forward, angle * Time.deltaTime); } if (Input.GetKey(KeyCode.DownArrow)) { transform.RotateAround (target.transform.position, Vector3.forward, -angle * Time.deltaTime); } } } |
ターゲットのフィールドに、Sphereを入れましょう。
ゲームプレイして、十字キー操作します。
ターゲットを中心として、円移動する場合は、RotateAroundを使用します。
RotateAround(中心の場所,軸,回転角度)
今回は軸として、Vector3.upと、Vector3.forwardを使っています。
Vector3.upはYを軸としているため、左右への移動。
Vector3.forwardはZを軸としているため、上下へ移動します。
回転角度はこの場合、100°ずつ移動しますが、Time.deltaTimeを掛けることで、動作がスムーズになります。
関連記事:
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
円を描くように移動する
円を描くように動きながら前方発射