функции скила, в т.ч. функцию оценки, которая записыватеся в самом скиле, надо, чтобы объект существовал - т.к. ООП. Без этого происходит обращение к пустому месту, отсюда сохранение скилов в game instance. - чтобы где-то существовала ОДНА копия, к которой можно обращаться для получения функций.
>Зачем кастовать "к элементу массива".
Чтобы не хранить в каждом НПС копию скилов. Сделать одну в instance, у НПС же будет ссылка храниться.
>Зачем мешать разные классы в едином списке скиллов
Не понял? Если ты про actor/UObject, там дробь стоит. Т.е. это "Или".
ну во-первых, далеко не обязательно. Во-вторых, "объект существует" и "объект на сцене" - два сильно разных понятия, в третьих, гейм инстанс для этого в любом случае крайне странно использовать. Про каст так и не понял, как вообще можно "кастовать к элементу массива" 😂 В общем выглядит как очень серьёзные проблемы со всей архитектурой системы скиллов в целом… GAS, конечно, излишне заморочен, но позволил бы избежать собственных велосипедов
Про "далеко не обязательно" - а как этого избежать можно? Я как не пытался, у меня происходило обращение к пустому месту, если я не вызывал скил на сцену. Я тут же и спрашивал, сообщили, что вообще никак, надо, чтобы где-то существовала копия объекта для обращения к нему и получения из него функции (default не дает получать функции, только переменные) Так что действительно интересно, как это сделать, может многое решить у меня. "каст" - в том смысле, что обращение к гейм инстансу, из него достается массив, из массива - скил.
использовать статичные методы, или блюпринтовые библиотеки или ещё что-то подобное. Можно попробовать к CDO обращаться, как вариант. Ну в целом и создавать объект можно, проверять что нужно и потом либо использовать его либо удалять. На самом деле можно и хранить по инстансу каждого скилла, тоже вариант. Я бы только не стал это в гейм инстансе делать - т.к. оно всю игру живёт, а действительно или в гейм моде, или ещё где-то. Например, у игрока его скиллы, у нпс - их скиллы и т.д. Ну и возможно имеет смысл отделить объект-определение скилла (где логика, параметры и т.д.) и актор который на сцене создаётся при использовании скилла
Обсуждают сегодня