#c# #unity3d #fonts #runtime #deserialization
#c# #unity3d #шрифты #время выполнения #десериализация
Вопрос:
Я создаю визуальный роман в Unity, и я хотел бы предоставить игроку возможность импортировать свои собственные шрифты в игру, моей первоначальной идеей было объяснить игроку, что ему нужно поместить файл шрифта в определенную папку, и я бы отсканировал шрифты в этой папке с помощью System.IO.DirectoryInfo.GetFiles();
, хотя мне удается получить доступ к этим файлам, я все еще не понял, как десериализовать эти файлы шрифтов (.ttf) в тип шрифта Unity. Двоичный форматировщик выдает исключение при попытке сериализовать / десериализовать тип шрифта Unity, и, насколько я искал, у Unity нет собственного API для этого, Unity импортирует шрифты, используя класс TrueTypeFontImporter, который реализован только в редакторе, поэтому я не могу получить доступ к этому классу во время выполнения.
У кого-нибудь есть идеи о том, как это решить?
Комментарии:
1. это отличный вопрос! У меня плохое предчувствие, что это зависит от платформы..
2. Единственной платформой, на которой я бы установил эту «функцию», была бы Windows.
Ответ №1:
Ответ может быть слишком поздним, но для тех, кто опоздал. Вы можете загрузить динамический файл .ttf с помощью
Font font = new Font ("path_to_ttf_file");
Что касается статического файла .ttf, я не знаю.
Комментарии:
1. Хотя это могло бы сработать, некоторое время назад мы перешли на Text Mesh Pro, который использует собственные объекты font.