按钮上的连续旋转对象单击Unity3D

时间:2015-06-26 00:40:38

标签: c# unity3d unityscript

我有buttonPlayerObject。当我单击按钮时,对象必须连续旋转,当我再次单击同一按钮时,对象必须停止旋转。目前,我正在使用下面给出的代码。它使对象只旋转一次到某个角度。

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {
    int a=1;
    public  void CubeRotate () {
        a++;
        transform.Rotate (new Vector3 (150, 300, 60) * Time.deltaTime);

        if (a%2==0) {
                    Debug.Log(a);
                        transform.Rotate (new Vector3 (150, 300, 60) * Time.deltaTime);

            }
    }
}

请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要的是一个非常简单的切换。你的轮换如此笨重的原因是因为它只在调用CubeRotate()时运行rotate命令,因此不会像你计划的那样连续 旋转。而是将旋转命令移出到Update()方法,该方法在每一帧上运行。

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

    protected bool rotate = false;

    public void CubeRotate () {
        rotate = !rotate;
    }

    public void Update() {
        if(rotate)
        {
            transform.Rotate (new Vector3 (150, 300, 60) * Time.deltaTime);
        }
    }
}