Непрерывно вращать объект при нажатии кнопки Unity3D

У меня есть 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);

            }
    }
}

Пожалуйста помоги. Заранее спасибо.


person Shaik MD Ashiq    schedule 26.06.2015    source источник


Ответы (1)


Что вам нужно, так это очень простой переключатель. Причина, по которой ваше вращение настолько неуклюже, заключается в том, что оно запускает команду поворота только при вызове CubeRotate(), поэтому не вращается непрерывно, как вы планировали. Вместо этого переместите команду вращения в метод 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);
        }
    }
}
person maksymiuk    schedule 26.06.2015