Я делаю мобильную игру, в которой игроку предоставляется четыре (не повторяющихся) цвета, которые они могут провести вместе и создать новый цвет. Игра отобразит 1-4 поля на экране, и игрок должен провести вместе цвета и угадать правильную комбинацию, чтобы перейти к следующему раунду. Я уже рассчитал все возможные комбинации, которые игрок может прокручивать, и сохранил цвет для этой комбинации в сценарии под названием «ColorDictionary.cs». Это статический скрипт, который содержит более 100 переменных Color32, которые другие скрипты могут использовать и захватывать в зависимости от того, что игрок проводит. Вот пара снимков экрана, чтобы лучше понять, что происходит.
Это просто, цвет, чтобы получить светло-красный, который требует, чтобы игрок смахнул красные и белые круги вместе
![](https://i.stack.imgur.com/zJoc5.png)
Теперь предположим, что игрок не очень умен и проводит красным с синим, рисунок ниже демонстрирует, как пользовательский интерфейс изменил цвета соответственно, чтобы отобразить вывод цветовых комбинаций. игрок вставляет.
![](https://i.stack.imgur.com/9SiaK.png)
Это делается путем проверки того, какие цвета отправил игрок, затем перехода и получения правильной комбинации из скрипта ColorDictionary. Вот один очень маленький фрагмент ColorManager, выполняющий проверку для вычисления и получения правильного цвета из словаря:
// YELLOW - RED
if (redActive) {
if (magentaActive) {
if (blackActive) { currentColor = ColorDictionary.tallPoppy; }
else if (whiteActive) { currentColor = ColorDictionary.salmon; }
else { currentColor = ColorDictionary.sunsetOrange; }
} else if (blueActive) {
if (blackActive) { currentColor = ColorDictionary.nutmeg; }
else if (whiteActive) { currentColor = ColorDictionary.muddyWaters; }
else { currentColor = ColorDictionary.brownRust; }
} else if (cyanActive) {
if (blackActive) { currentColor = ColorDictionary.yellowMetal; }
else if (whiteActive) { currentColor = ColorDictionary.indianKhaki; }
else { currentColor = ColorDictionary.teak; }
} else if (greenActive) {
if (blackActive) { currentColor = ColorDictionary.verdunGreen; }
else if (whiteActive) { currentColor = ColorDictionary.roti; }
else { currentColor = ColorDictionary.pirateGold; }
} else {
if (blackActive) { currentColor = ColorDictionary.chelseaGem; }
else if (whiteActive) { currentColor = ColorDictionary.texasRose; }
else { currentColor = ColorDictionary.flushOrange; }
}
}
Это если лестница оператора продолжается некоторое время (хотя проверяет комбинации только для активных цветов)и цвет становится активным, только когда игрок щелкает по нему.