Задать вопрос
nuclear_kote
@nuclear_kote

Где в unity entities надо хранить строковые параметры?

public struct PlayerNameTag : IComponentData {
    public string playerName;
}


в итоге вылетает
ArgumentException: Components.UITags.Creation.PlayerPortraitTag contains a field of System.String, which is neither primitive nor blittable.


Что с этим делать и зачем оно возникает?
  • Вопрос задан
  • 219 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@ChessMax
Стоит учитывать, что NativeString имеет ограничение на длину (есть только три варианта этого класса: NativeString64, NativeString512 и NativeString4096). Из-за скудного API работать с этим классом как со строкой не так удобно.
Есть еще, как минимум, пара вариантов решения проблемы. Самая простая это хранить строки в каком-то списке, а в компоненте указывать индекс строки из этого списка.
Так же можно создать компонент, который реализует не IComponentData, а ISharedComponentData. Такие компоненты позволяют хранить в себе данные ссылочного типа.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Я посмотрел за вас в документации и там пишут
Unity.Entities.NativeString (a fixed-sized character buffer)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы