Unity Как обтекать текст TextMesh Pro вокруг изображения?

Версия Unity: 5.6.5f1 Personal

Версия TextMesh Pro: 1.0.56.0b3

У меня есть текстовый объект TextMesh Pro UI, чья область пересекает область изображения пользовательского интерфейса. Текст динамический, но изображение никогда не изменится. Есть ли способ заставить TextMesh Pro UI Text обтекать изображение, подобно тому, как текст будет переноситься в одну сторону в HTML/CSS?

Изображение ниже показывает две копии объекта в Unity. Один объект, обозначенный красным пространством, где находится изображение, - это то, что я сейчас получаю. Текст входит в пространство изображения. Другой объект, обозначенный синим пространством, в котором расположено изображение, показывает желаемый результат, когда текст переносится правильно.

Текущий и желаемый результат: Текущий против желаемого результата

Исследования до сих пор:

Как мне вставить изображение в текст? - Изображение, которое я использую, является изображением пользовательского интерфейса, а не текстовым активом. Изображение будет действовать так, как если бы оно было встроено в текст.

Как вы оборачиваете текст вокруг прямоугольника?, Fluid layout для Unity UI - это то, что я ищу. Однако никаких предложений не было размещено в них.

Я исследовал идею использования нескольких текстовых объектов пользовательского интерфейса TextMesh Pro, каждый из которых выступает в качестве фрагмента всей текстовой области. Однако это не то же самое, что обтекание текста вокруг изображения. Для динамического текста, если я вытащу содержимое из одной текстовой области и перенесу его в следующую область, это будет конфликтовать с функцией автоматического изменения размера и приведет к неравному размеру шрифта.

Другая возможность заключается в том, что я могу вставлять символы по одному, проверять, не приведет ли добавление другого символа к конфликту с изображением, и добавлять System.Environment.Newline чтобы предотвратить это. Тем не менее, я беспокоюсь о потенциальных проблемах производительности при работе с большими объемами текста.

Документация TextMesh Pro - Документация TextMesh Pro содержит некоторые инструменты для нахождения точек переноса слов, но я не выяснил, как реализовать средство сравнения этого с привязкой другого объекта.

0 ответов

Это может быть выполнено с помощью режима переполнения TextMeshPro "Связанный". См. Пример на прилагаемой картинке. По сути, вам нужно создать два объекта TMP и соответствующим образом настроить макет для каждого из них. Затем:

1) измените режим переполнения первого на "Связанный" с помощью раскрывающегося списка в инспекторе.

2) поместите второй объект TMP в качестве ссылки в появившееся поле.

Другие вопросы по тегам