Unreal Engine 4
https://uengine.ru/forum/

Хранение данных
https://uengine.ru/forum/viewtopic.php?f=2&t=75126
Страница 1 из 1

Автор:  Alexander2002 [ 09 мар 2020, 17:38 ]
Заголовок сообщения:  Хранение данных

Есть ли в Unreal Engine 4 таблица, где можно хранить числовые значения и обращаться к ним из любого blueprint? Вроде String Table, используемой в widget, только для числовых значений и чтобы можно было вызвать в blueprint.

Автор:  Alexander2002 [ 11 мар 2020, 16:56 ]
Заголовок сообщения: 

Вопрос решён. Была найдена функция make literal text. С помощью этой функции можно получить значение переменной из выбранной string table по соответствующему ей ключу и вывести его в виде переменной типа text. Эта переменная конвертируется в string, а она в float (в моём случае). Просто у меня в разных блупринтах есть переменные с одинаковым значением (например в 3 блупринтах есть переменная с массой блока брони, переменные с значением мощности двигателя №1 и прочие неизменяемые в процессе игры константы). Я хотел избавится от необходимости искать в разных блупринтах все места, где используется какое-либо значение, чтобы изменить его, если это будет необходимо. Если есть ещё какие-либо альтернативы, позволяющие сделать удобное хранилище данных (значений переменных) вне блупринта, то напишите. Может есть и более удобный и правильный вариант.

Автор:  Prytaleks [ 12 мар 2020, 15:39 ]
Заголовок сообщения: 

можно хранить какое угодно количество данных в массиве стринг, с помощью ParseIntoArray, строка разобьется на массив.

Пример строки

Ak74 27 92.3 X=203.5 Y=-250.2 Z=108.5

после ParseIntoArray, вернет такой массив, пример
Ak74 - имя предмета
27 - текущие патроны
92.3 - прочность
X=203.5 - текущая позиция
Y=-250.2 - текущая позиция
Z=108.5 - текущая позиция

если записать строку таким образом, и парсить через этот символ #, будет выглядить так.

Ak74#27#92.3#X=203.5 Y=-250.2 Z=108.5

Ak74 - имя предмета
27 - текущие патроны
92.3 - прочность
X=203.5 Y=-250.2 Z=108.5 - текущая позиция

Для этого нужно писать логику, как для записи, так и для считывания.
Также можно канешно использовать структуры. Лично для меня удобнее массив стринг, логика для записи в строку и считывание, не занимает много времени.
Индекс в массиве, есть ключ, через который ты получаешь все необходимые данные с помощью ParseIntoArray.
Хранить его можно например в ГэймИнстанс.
Каст на гэйминстанс(и куда угодно) нужно сделать в акторе на бэгинплэее и получить ссылку на массив(или другой объект) сразу, что бы не плодить эти касты в будущем.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/