Как обнаружить столкновение, чтобы остановить движение игрока в Unity? - PullRequest
0 голосов
/ 29 сентября 2019

Я новичок и хочу знать, как заставить игрока останавливать движение при столкновении с препятствием.Я пробовал этот код, но он показывает, что он устарел

public class Collision : MonoBehaviour
{
    public PlayerMove move;

    void onCollisionEnter (Collision info)
    {
        if (info.Collider.tag == "Obstacle")
        {
            move.enabled = false;
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Будьте осторожны с методами в Unity, они начинаются с заглавных букв.

OnCollisionEnter должен начинаться с заглавных букв, чтобы Unity распознавал их как метод, вызываемый один раз за коллизию.

Asscopolamin сказал, не называйте свой класс Collision: вам лучше переименовать его, а также ваш файл, ваше имя класса и ваше имя файла должны совпадать по порядкунаследовать от MonoBehaviour.

Я предполагаю, что PlayerMove - это сценарий, который вы используете в качестве контроллера персонажа.Убедитесь, что к вашей переменной move прикреплен правильный скрипт.

0 голосов
/ 29 сентября 2019

Вы назвали свой класс Collision.Параметр info в методе OnCollisionEnter использует не UnityEngine.Collision, а собственный класс Collision.

Измените имя класса Collision на другое:

public class Столкновение : MonoBehaviour

public class MyCollision : MonoBehaviour

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