Создание скриптов в GTA 5 на C#: интерактивное меню с помощью NativeUI: часть вторая
В прошлой части урока мы добавили в меню возможность сброса уровня розыска и получения любого оружия. Также мы выяснили, каким образом создаются подменю. Давай немного реорганизуем наш код, создав подменю игрока и подменю оружия, поместив соответствующие пункты в эти подменю:
Теперь немного отредактируем функцию Setup:
Чтобы сделать код более читабельным, я сделаю несколько функций для каждого типа: игрок и оружие.
Давай очистим некоторый код с выдачей звезд розыска, как мы сделали с селектором оружия, и поместим всё в одну функцию:
Я удалила другой код из onMainMenuItemSelect, так как теперь он бесполезен. Нам также нужно изменить одну строку кода в нашем селекторе оружия:
Также мы должны удалить вызов WeaponselectorMenu() в конструкторе и вместо этого поместить SetupPlayerWeapons в Setup:
Отлично! Теперь давай сделаем подменю транспорта и добавим селектор автомобилей (как мы сделали с селектором оружия), а также способ спавна авто по его имени. Начнем с меню:
И отредактируем нашу Setup функцию:
Теперь создадим метод SetupVehicleFunction:
Замечательно! Теперь здесь мы поместим все наши функции автомобиля. Начнем с селектора авто:
Реализация похожа на селектор оружия, поэтому я не буду комментировать этот код повторно. Создадим выбранный автомобиль и поместим в него игрока:
Давай поместим эту функцию в SetupVehicleFunctions и проверим работоспособность в игре:
Отлично! Всё работает. Теперь дадим игроку возможность создать автомобиль по его названию модели. Это довольно просто. Начнем с создания новой функции и элемента меню:
Используем функцию Game.GetUserInput, которая создает поле ввода и возвращает введенную строку:
Теперь необходимо проверить, есть ли такая модель в игре. Игрок может ввести любой набор случайных символов, который может привести к крашу игры. Поэтому не забудь добавить проверку на валидность модели:
Создаем автомобиль и сажаем в него игрока:
Пропишем нашу функцию в SetupVehicleFunctions и проверим код в игре:
Всё работает. Добавим последнюю функцию в меню оружия - получить всё существующее оружие в игре. Создадим новую функцию:
И добавим функционал, который практически ничем не отличается от того, который мы использовали раннее:
Пропишем нашу функцию в SetupWeaponFunctions и проверим это в игре:
Всё работает! О других возможностях в создании меню мы поговорим в третей части нашего урока.