RectTransform координаты в соответствии с размером текста TextMesh Pro - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь создать InputField (TextMesh Pro) с динамическим (его текстовое содержимое может отличаться) префиксом.Это впечатляющее изображение должно объяснить цель.

https://imgur.com/a/qx1eXOa

Поэтому я установил текст TextMeshPro для использования в качестве префикса, и с помощью сценария я пытался соответствующим образом «переместить» TextArea.Дело в том, что TextArea - это RectTransform, и я работаю в режиме визуализации ScreenSpace.

Я пытался так:

private TextMeshProGUI prefix;
private RecTransform textArea;


public void ChangePrefixTo(string newPrefix)
{
    float oldWidth = prefix.preferredWidth;

    prefix.text = newPrefix;
    float newWidth = prefix.preferredWidth;

    Vector2 newPos = new Vector2();
    newPos.x = textArea.position.x + (newWidth - oldWidth);
    newPos.y = textArea.position.y;

    textArea.position = newPos;
}

, но textArea выстрелил в звезды,Как я могу отобразить положение RectTransform в соответствии с размером текста TextMeshPro?

Спасибо за помощь и да здравствует кит

1 Ответ

0 голосов
/ 30 сентября 2018

Вместо использования скрипта для изменения размера префикса, вы можете сгруппировать оба ваших элемента в группу горизонтальных макетов, отметьте только Ширина для дочерних элементов управления размером.

Добавить элемент макетаи установите предпочитаемую ширину, чтобы определить размер вашей TextArea.

Префикс будет масштабироваться в соответствии с его содержимым, и он будет увеличивать размер вашей текстовой области.

Вы можете найти демонстрационную версиюздесь: https://gph.is/2y0RXu0

...