Содержание
Flags
(Удалённая конфигурация)
Флаги - это очень мощный инструмент. Вы можете через консоль разработчика в любое время менять какие-либо данные игры.
Представим, что в нашей игре есть переменные отвечающие за какие-то характеристики персонажа, например - сколько у него будет здоровья и силы. Изменить такие переменные в игре можно удалённо, не обновляя игру!
Таким образом, без изменения билда можно настраивать баланс в игре, безопасно внедрять новые обновления, проводить акции.
И в прибавок к этому - в Яндекс Играх есть возможность проводить тестирование с разными параметрами!
Создание флагов в консоли Яндекс Игр
- В разделе Флаги, добавьте флаг:
- Укажите название и значение флага. В вашем коде, флаг вы будете искать по названию. А значение можно менять через консоль и оно будет передаваться в игру.
- Также вы можете добавить условия. Например, если язык русский, то значение будет равно ru.
- Чтобы изменения вступили в силу, необходимо их опубликовать:
Использование в Unity
Получить значение флага можно с помощью метода YG2.GetFlag(string)
.
Метод GetFlag
принимает параметр (string
имя флага), и возвращает значение флага.
Пример получения и обработки флагов:
// Допустим, из облака мы получаем уровень сложности
string value = YG2.GetFlag("difficult"); // difficult - имя флага
if (value == "easy")
{
// Установите лёгкий уровень сложности.
}
else if (value == "hard")
{
// Установите сложный уровень сложности.
}
else
{
// Значение флага не определено, установите дефолтное значение.
// Если значение не определено, метод GetFlag вернёт null.
}
Методы, преобразующие значение флага в другой тип данных:
if (YG2.TryGetFlag("difficult", out string difficult))
{
// Флаг существует, пользуемся им!
Debug.Log(difficult);
}
if (YG2.TryGetFlagAsInt("intType", out int intType))
{
// Флаг существует и преобразован в тип int
}
if (YG2.TryGetFlagAsFloat("floatType", out float floatType))
{
// Флаг существует и преобразован в тип float
}
if (YG2.TryGetFlagAsBool("boolType", out bool boolType))
{
// Флаг существует и преобразован в тип bool
}
В представленных методах - качественное преобразование. Изначально строковое значение может иметь опечатки в виде лишних символов. Лишние символы будут удалены, благодаря чему преобразование в определённый тип будет произведено.
Для цифорвых значений можно использовать знак минус.
Для
float
после целого числа можно использовать как точку, так и запятую.boolean
поддерживает не только true
и false
, а также 0
и 1
.
Все флаги можно получить из словоря YG2.flagsDictionary
. Доступно только для чтения.
Также есть массив YG2.flags
- в котором элементы массива состоят из структуры Flag. Она имеет два поля: name и value. Доступно чтение и запись.
Подобный пример можно найти в скрипте FlagsExample. Он используется в демо сцене Flags.
Симуляция в Unity Editor
В настройках модуля есть массив Flags. Это массив из структуры Flag, которая описана выше. Создайте флаги подобно созданию конфигурации в консоли разработчика, и в Unity Editor можно будет протестировать работу флагов в вашей игре.