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/ |