Скрипты в GameMaker 2.3
Насколько я знаю GameMaker обновился до версии 2.3 и среди его изменений поменялась работа скриптов. Теперь они запускаются ВСЕ при старте игры, а при создании сразу прописывают в себе функцию.
Это ни разу не помогло мне с проектом.
Изначально скрипты срабатывали только при "получении" запроса от объекта или других скриптов, что было очень удобно, так как те, что нужны для функций, имели их а те, что служили для быстрых проверок и изменений, не запускались до нужного момента.
После обновления всё пошло наперекосяк и новые скрипты будут запускаться вместе с остальными.
Как быть? Не прописывать же все нужные мне действия сугубо на объекты и иметь только три скрипта с функциями. Как вернуть старый их функционал и отключить их глобальный запуск? Есть ли способ создать неактивный скрипт?
Я очень рассчитываю на вашу помощь кто знает решение - на мой проект было потрачено время а начинать с нуля на другой платформе будет очень тяжело.
Ответ
В GMS сильно поменялась структура функционала, но не все корректно мигрируется из старых проектов. Если тебе не критичны новинки, то переходить на него стоит только с новым проектом.
Смотрите также:
Комментарии
Учитывая то, что написано в данной статье обратно включить это не получится и придется действительно обернуть код скриптов в функции.
Кратко из документации:
- Раньше скрипты были индивидуальными и изолированными
- Использование скриптов как функций усложняло работу IDE и понимание их параметров и описаний, поэтому пришли к явному определению функций для скрипта
- Теперь все скрипты являются глобальными и все переменные и функции в нем объявляются на уровне глобального пространства (Global Scope)
- Благодаря этому добавились какие-то новые фичи
В целом, на мой взгляд решение выглядит правильным, разве что разработчики GML могли бы и прикрутить миграцию скриптов для старых проектов, как это делается в Unity постоянно.
Как быть? Не прописывать же все нужные мне действия сугубо на обьекты и иметь только три скрипта с функциями.
Я так понимаю, тебе достаточно обернуть код твоих скриптов в функции внутри этого же файла и указать правильный набор аргументов
Это совсем не радостная новость. Меня вполне устраивал функционал старой работы скриптов и я даже выработал некоторую систему, которая позволяла через скрипты настраивать работу объектов и прочего. Принудительная же переделка в функции у меня не сработает из за структур некоторых скриптов-индивидуалистов, от которых зависит нормальная работа других объектов.
Можно ли сделать тогда другой аналог? Который будет контролировать работу объектов.
Насколько я понял проще установть последнюю версию перед 2.3 и продолжить работать под ней. Новинка не стоит свеч после переделки скриптов
В GMS сильно поменялась структура функционала, но не все корректно мигрируется из старых проектов. Если тебе не критичны новинки, то переходить на него стоит только с новым проектом.
Возможность добавлять комментарии была ограничена
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]