Задать вопрос
TheTalion
@TheTalion

Правильное изменение привязок Rect Transform относительно объекта на сцене. Какая формула, либо какими инструментами это делать?

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

Вот скрины:
Есть так:
014de37066bf32760e9e38eeab9a056e-full.jp
А нужно примерно так из кода:
436cd2b184d95abaa11d285fa84bf79c-full.jp

Явно есть зависимость сторон и явно эта проблема возникала у многих людей. Вот статистические данные: если объект находится в левом углу, то у него начальные значения такие:
Left 0 (нет удаления от левой стороны)
Top 418 (удаление верхней стороны объекта от верха) + 26(если до самого края довести)
Right 773 (удаление крайней правой стороны объекта от правой стороны экрана) + 50(если до самого края довести)
Bottom 0 (нет удаления от низа)

т.е. размер объекта описан фигурой на удалении в левом крайнем углу в 0\26\50\0
Привязки стоят в:
Anchors:
minX 0
minY 0
maxX 1
MaxY 1
(т.е на весь экран)

А должно стать:
Left 0
Top 0
Right 0
Bottom 0
Т.е. нет удаления от объекта

Anchors:
minX 0
minY 0
maxX 0.06
MaxY 0.098
(т.е только на размер объекта)

Как правильно изменить привязки из кода? Либо какая формула должна быть, то я слаб в математике. Понятно, что тут что-то по типу x = 1 = 418 + 23, y = 1 = 773 + 50, итого если, например x = 1 = 441, то iscX = X = 418, то как найти X?
  • Вопрос задан
  • 275 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
Griboks
@Griboks Куратор тега C#
Не совсем понял вопрос.
Если мешает родитель, то почему бы его не убрать?
Если мы знаем расстояние от объекта до границ родителя, то надо просто вычислить процент относительно его размеров.
a.size=8*10
a.b.size=2*3
a.b.pos=2,2
Тогда
a.b.anchor=2/8,2/10,(2+2)/8,(2+3)/10=1/4,1/5,1/2,1/2
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы