我有button
和PlayerObject
。当我单击按钮时,对象必须连续旋转,当我再次单击同一按钮时,对象必须停止旋转。目前,我正在使用下面给出的代码。它使对象只旋转一次到某个角度。
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);
}
}
}
请帮忙。提前谢谢。
答案 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);
}
}
}