Почему каждое столкновение, а не просто помеченное врагом, активирует это утверждение if? C# в единстве - PullRequest
0 голосов
/ 23 апреля 2020

Итак, я делаю эту космическую игру, и я хочу, чтобы функция Damage была вызвана, когда игрок поражает врага. Но по какой-то причине каждое столкновение, в том числе с лазерами и усилениями, вызовет функцию повреждения. У кого-нибудь есть проблема? Я очень плохо знаком с Unity, C# и программированием в целом, поэтому проблема может быть очевидной. Это код, который я использую. Если вам нужно больше деталей или больше кода, просто спросите меня.

        void OnTriggerEnter2D(Collider2D other)
        {
            if (other.tag == "Enemy") ;
            {
                Damage();
            }
        }

Извините за плохой Энгли sh кстати, я не родной и все еще в старшей школе.

1 Ответ

0 голосов
/ 23 апреля 2020

Это довольно простая ошибка. У вас есть ненужная точка с запятой (;) после вашего оператора if. Это завершает область действия оператора if перед блоком {}, поэтому он каждый раз запускает функцию Damage ().

if (other.tag == "Enemy") ;

должно быть

if (other.tag == "Enemy")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...