Я создаю пользовательский интерфейс для своей игры. Я уже создал простые элементы, такие как анимированные кнопки и многофункциональные переключатели, но у меня возникла проблема с полями ввода.
Вот как это выглядит сейчас.
Моя цель
Область приема Raycast должна быть того же размера, что и текст.
Поворот текста должен быть (0,5, 0,5), потому что анимация меняет свой масштаб. Неприятно, когда длинный текст масштабируется не по центру. Область Raycast не должна зависеть от масштаба.
Мои попытки
input-32 имеет элемент Layout Element с Flexible Width, равным 1, поэтому он должен заполнять все доступное пространство. Текстовая область имеет Группу горизонтального макета (см. рисунок). Внутри находится разделитель со значением Flexible Width равным 1, заполнитель и текст.
Теперь это работает:
Выделение не на месте, а текст иногда неконтролируемо летит влево. Кажется, что поле ввода не ожидает наличия здесь других элементов, кроме текста и заполнителя, и работает так, как будто их нет.
Хорошо, тогда поместите разделитель непосредственно под input-32. Однако поведение точно такое же.
Я выяснил, что поле разрывается, когда я добавляю Подбор размера содержимого к текстовому элементу. Но как контролировать его ширину, от которой зависит рейкастинг? Вероятно, мне следует не изменять размер текста, а переопределить его raycasting, но я не знаю, как это сделать.
Должен признаться, я не понимаю, как поля ввода TextMeshPro работают на низком уровне, и поэтому мои попытки терпят неудачу. Вы можете мне помочь или хотя бы подсказать?
""
), потому что оно либо было пустым пользователем, либо каким-либо иным образом заполнено строкой нулевой длины, какой ширины должна быть кликабельная область? - person Draco18s no longer trusts SE   schedule 12.05.2019