У меня есть игровой объект, желтый кружок, который показан на на этой картинке как мой объект игрока, а красный - это дочерний объект моего игрока.
Затем, если я нажму клавишу пробела один раз, она будет вращаться на -90 градусов , как это
Проблема заключается в том, что когда я дважды нажимаю клавишу пробела, мой игрок вращается идеально, но он застревает и продолжает вибрировать, ударяя розовый блок. Мой вопрос, как я могу изменить свой сценарий, чтобы игрок узнал если он только может вращаться один раз и не позволяет игроку вращаться снова, если я нажму клавишу пробела, потому что розовый блок будет препятствовать его вращению.
Вот мой скрипт ротатора игрока.
public GameObject objToRotate;
private bool rotating = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.Space))
{
StartRotation ();
}
}
private IEnumerator Rotate(Vector3 angles, float duration)
{
rotating = true;
Quaternion startRotation = objToRotate.transform.rotation;
Quaternion endRotation = Quaternion.Euler (angles) * startRotation;
for (float t = 0; t < duration; t += Time.deltaTime) {
objToRotate.transform.rotation = Quaternion.Lerp (startRotation, endRotation, t / duration);
yield return null;
}
objToRotate.transform.rotation = endRotation;
rotating = false;
}
public void StartRotation()
{
if (!rotating)
StartCoroutine (Rotate (new Vector3 (0, 0, -90), 1.1f));
}
Извините, если я плохо знаю английский. Все комментарии и помощь очень ценятся.