Видео 12Блок 4 - UE Engineering
FString, FName и FText - три строки, три разных мира
Почему Unreal использует разные строковые типы и где каждый из них нужен.
Главная боль
Почему Unreal не использует std::string
Главная мысль
Не все строки одинаковы.
FString, FName и FText - три строки, три разных мира
Главная боль
Почему Unreal не использует std::string.
Зачем это существует?
В Unreal строка может быть изменяемым текстом, быстрым идентификатором или локализуемым UI-текстом. Один тип не закрывает все эти задачи одинаково хорошо.
Темы
- FString
- FName internals
- FText
- Localization
- Hashing
- Performance
Greybox Arena
- Gameplay tags
- Debug labels
- Arena UI text
Где люди обычно ломаются?
- Используют
FStringдля идентификаторов - Показывают игроку
FNameили техническую строку - Используют
FStringтам, где нужен локализуемыйFText - Не понимают цену частых string operations
- Путают debug text и player-facing text
Как это выглядит в production?
Production-код разделяет намерение: FName для стабильных имен и ключей, FString для технических строк и операций, FText для текста, который видит игрок.
Главная мысль
Не все строки одинаковы.