В предыдущей статье мы рассмотрели процесс создания Модульной системы включения питания, в которой мы использовали операторы if-else для обнаружения включений и последующего выполнения их эффектов соответствующим образом. Несмотря на то, что использование операторов if-else для выполнения этой логики приводит к созданию функционального кода, лучше всего использовать оператор переключения, если у вас есть несколько if-else. Это делает ваш код более кратким и понятным. Кроме того, если у вас будет еще больше бонусов, реализация будет более оптимизирована, и ее будет легче достичь таким образом.

Как и когда их использовать

Хорошее практическое правило - всегда использовать операторы Switch, если ваш код требует более двух операторов if-else. Операторы Switch позволяют нам проверять множество различных случаев, а затем выполнять необходимые действия в одном аккуратном блоке кода.

  • условие: выражение, которое может быть целым числом (int), перечислением или выражением символьного типа.
  • case: За каждым из них следует значение, которое сравнивается с выражением. Затем вместо точки с запятой (;) используется двоеточие (:), чтобы определить, что следующая строка кода является исполняемым действием.
  • break: означает, что вы закончили, и в этом конкретном случае никаких дальнейших действий не требуется.

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

Как операторы if-else могут быть преобразованы в операторы Switch

Давайте посмотрим на код M odular Power-Up System из предыдущей статьи:

Код использует несколько операторов if-else для активации различных бонусов, это можно очистить и оптимизировать, преобразовав его в оператор switch.

  1. Вам по-прежнему нужно создать глобальную переменную типа int, чтобы отслеживать текущий идентификатор включения. Это будет выражение в инструкции Switch.

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

3. Раньше у нас был набор переменных типа int, назначаемых каждому включению питания, это не обязательно для инструкции Switch. Используя только выражение, вы можете напрямую начать сравнение. Кейсам могут быть присвоены любые значения int, поскольку выражение также имеет тип int. Я решил использовать возрастающие значения, но эти числа могли иметь любой порядок, пока они остаются того же типа, что и выражение. Ваш код поведения при включении питания должен находиться под регистром в операторе switch - это эквивалент выражения «в случае, если это произойдет, сделайте это».

Примечание. Номера, присвоенные объектам включения в инспекторе, должны совпадать с номерами в коде.

Примечание. Вы можете заметить, что при написании оператора Switch вы получаете сообщение об ошибке или зловещую красную линию под кодом. Это связано с тем, что компилятор ждет, пока вы добавите разрыв .

Теперь у вас есть полностью функциональная и оптимизированная модульная система включения питания! В моей следующей статье мы рассмотрим создание элементов пользовательского интерфейса в Unity!