Как импортировать шрифты в Unity во время выполнения

#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.