@piffo

Проблема с return?

Такой метод весит на персонаже
void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.name == "set5")
        {
            if (wer == 4)
            {
                wer--;
                return;
            }
            if (wer == 3)
            {
                wer--;
            }
            if (wer != 4 || wer != 3)
                wer = 5;
        }
        if (col.gameObject.name == "wall3")
        {
            if (wer == 5)
            {
                wer--;
                return;
            }
            if (wer == 1)
                SceneManager.LoadScene("Level4");
            if (wer != 5 || wer != 1)
                wer = 5;
        }
        if (col.gameObject.name == "wall4")
        {
            if (wer == 2)
            {
                wer--;
                return;
            }
            if (wer != 2)
                wer = 5;
        }
    }

И есть вот такая проблема. Вот здесь
if (wer == 5)
            {
                wer--;
                return;
            }

return не всегда завершает выполнение метода. То есть примерно с шансом 2:10(точную закономерность не выявил), метод продолжается. А вот здесь
if (wer == 4)
            {
                wer--;
                return;
            }

return вообще не работает и метод продолжается дальше.
Я так понимаю подобные проблемы будут и вот здесь
if (wer == 2)
            {
                wer--;
                return;
            }

В чём может быть проблема и как это можно исправить?
PS Не вините, если я тупой и плохо изучил(или понял) return. Работаю с return первый раз.
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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