как я могу остановить объект при прикосновении другого - PullRequest
0 голосов
/ 05 октября 2019

У меня есть двухмерный объект со столкновением, который я двигаю мышью со скоростью, когда он входит в контакт с тем же объектом, он перемещает другой объект. Как вы можете убедиться, что он не перемещает его, но когда вы нажимаете на него, вы также можете перемещать его? Я пытался сделать это:

private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "GameController")
        { 
            collision.gameObject.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
            collision.gameObject.GetComponent<Rigidbody2D>().angularVelocity = 0f;
        }
    }

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Поскольку вы используете мышь для управления движением, вы должны добавить переменную boolen в логику перемещения. Когда CollisionEnter запущен, логика движения не выполняется.

0 голосов
/ 05 октября 2019

Просто включите isKinematic часть соответствующих игровых объектов, которые вы хотите контролировать, но не будут затронуты другими.

This *Сообщение 1007 * дает хорошее объяснение того, почему установка кинематического свойства может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...