円を描くような動きを、時計回りと反時計回りに切り替えられるように、スクリプトを作成してみましょう。
Sphereをクリックすれば、逆方向に回転。もう一度クリックすれば、元通りに回転します。
回転する向きを変える
空のオブジェクトを作成します。
この名前をCenterPointにします。
CenterPointが、円状の動きをつける、中心点になります。
Sphereオブジェクトを作成します。
CenterPointから少しずらした位置にします。
CircleMove.csを作成し、Sphereに追加します。
CircleMove.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 30 31 32 33 34 35 36 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CircleMove : MonoBehaviour { [SerializeField] GameObject centerObj; private float angle = 100; private bool flag; void Update () { //時計回り if(!flag) { transform.RotateAround (centerObj.transform.position, Vector3.forward, -angle * Time.deltaTime); } //反時計回り else { transform.RotateAround (centerObj.transform.position, Vector3.forward, angle * Time.deltaTime); } } void OnMouseDown() { if(!flag) { flag = true; } else { flag = false; } } } |
CenterObjのフィールドに、CenterPointを入れます。
ゲームプレイしてみましょう。
Sphereをクリックすれば、回転の向きが変わります。