Как запретить объекту двигаться?

Сейчас у меня есть код, чтобы элемент мог постоянно двигаться влево.
obj.transform.Translate(Vector2.left * speed * Time.deltaTime);

Но как мне сделать, чтобы при коллизии с объектом(уже сделал) объект больше не мог двигаться, а просто падал на землю. Вот код:
void OnCollisionEnter2D(Collision2D wall) {
    if (wall.gameObject.tag == "Respawn") { //наткнулся ли на стену
      
      obj.GetComponent<Rigidbody2D>().mass += 5;
      obj.GetComponent<Rigidbody2D>().gravityScale += 10;
      Invoke("ReloadLevel", 2f); // перезагрузка уровня
    }
  • Вопрос задан
  • 767 просмотров
Решения вопроса 1
DanielMcRon
@DanielMcRon
C# && Unity
Отключить в начале гравитацию(если он просто летит влево). А при столкновении включать её, чтобы падал игрок. И как из простейших вариантов отключать скрипт передаижения

Поправочки в коде:
Постоянное получение компонента в вашем случае RigidBody2D нагружает систему, лучше это получать в старте и записать куда-то. Либо до компиляции указать компонент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы