Сообщение от ABTOMAT
https://docs.microsoft.com/ru-ru/dot...eywords/switch
Это оператор для разбора случаев разных значений одной переменной.
switch (переменая) { case проверяемоезначение1:
// Делаем дела break; // Прекращаем проверку, иначе код пойдёт дальше
case проверяемоезначение2:
// Делаем дела break; // Прекращаем проверку
default:
// Действия в случае, если не подошёл ни один из вариантов (аналог else) break; // Прекращаем проверку }
Твой код как раз случай из учебника, когда используют switch-case
switch (TotalThreatLevel) { case 1:
SetkaScaleZ = 11; SetkaScaleX = 11; break;
case 2:
SetkaScaleZ = 13; SetkaScaleX = 13; break;
case 3:
SetkaScaleZ = 15; SetkaScaleX = 15; break;
case 4:
SetkaScaleZ = 19; SetkaScaleX = 19; break;
case 5:
SetkaScaleZ = 23; SetkaScaleX = 23; break;
case 6:
SetkaScaleZ = 99; SetkaScaleX = 99; break;
}
В Блице, кстати, тоже он был.
Ну в принципе в программировании действует правило "Если работает, то ты уже молодец"
|
Благодарю. Будем знать. Я правда себя программистом не считаю, им и не являюсь,
по этому многого не знаю. Ну как говорится, был и был в блитце )
Так посмотреть на код, та же жопа, только вид сбоку.
Этакий миницикл. Мне важно понять, в чём преимущество
над моим папуасским говнокодом? Что тут последовательно выполняется
проверка на значение, что в моём случае то же самое.
Или я что-то упускю из виду? А то все эти IF в апдейте всё равно
по очереди исполняются. Особой экономии строк тоже не вижу,
наличие break сводит её на ноль.
Наверно свитчи нужны для каких-то более сложных конструкций?
Просто пока я вижу смысл свитча в том, чтобы остановить последующую проверку,
если мы нашли уже нужное число. Однако в случае поиска среди семи значений,
это сомнительная экономия вычислительной мощности. Я думаю она нужна, для каких-то
расчётов проводящихся в огромном количестве одновременно. В моём случае это разовая
проверка в скрипте.
Но я думаю это знание мне может в будущем пригодится для каких-либо расчётов в скриптах спавнящихся монстров,
так-как монстров будет много на карте, следовательно скрипты будут часто перебирать какие-то переменные.
Добавил: вспомнил где я в блитце использовал свитчи, аш 13 лет назад!
С их помощью я разбивал игру на сцены, нужные функции запускались при определённом
значении переменной, как раз через "case", чтобы делить игру на стартовое меню, и игровой уровень.
В юнити такая нужда отпала, и я собственно благополучно забыл о данной фиче )