Unity (игра в Тетрис): объект падает в неправильном направлении при каждом повороте

#unity3d #tetris

#unity3d #тетрис

Вопрос:

У меня есть следующий код:

     using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

public class Tetris : MonoBehaviour
{
    
    void Update()
        {
            transform.Translate(new Vector3(0, -3 * Time.deltaTime, 0) );
            CheckUserInput();
        }
    
    void CheckUserInput(){
        if (Input.GetKeyDown(KeyCode.Space))
            {
                transform.Rotate(0, 0, 90);
                
            }
}
  

Как заставить объект нормально падать при каждом повороте?

Комментарии:

1.Пожалуйста, убедитесь, что используете правильные теги. Ваш код находится c# не в unityscript том, который является или лучше был похож на язык JavaScript, используемый в предыдущих версиях Unity, и к настоящему времени давно устарел. Вам лучше использовать тег unity3d

2. Я понял, спасибо

Ответ №1:

Попробуйте использовать метод Translate(Vector3, пробел) с помощью Space.world или поместив объект view в качестве дочернего элемента компонента Tetris. Компонент Tetris должен иметь ссылку на этот компонент.

 public class Tetris : MonoBehaviour
{

public GameObject view;
void Update()
{
    transform.Translate(new Vector3(0, -0.3f * Time.deltaTime, 0));
    CheckUserInput();
}

void CheckUserInput()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        view.transform.Rotate(0, 0, 90);

    }
}
}