Как сохранить позицию GameObject при изменении предустановки опоры и привязки RectTransform - PullRequest
0 голосов
/ 09 марта 2020

Есть ли способ сохранить anchorPosition при изменении точки поворота и предустановок привязки с помощью кода - так же, как при обновлении их в редакторе, позиция привязки обновляется, чтобы сохранить объект в том же положении.

В настоящее время их обновление с помощью кода приводит к изменению позиции GameObject, и мне нужно будет пересчитать.

Пример Учитывая привязку по умолчанию (.5f, .5f) для красного GO как показано ниже:

enter image description here

если мы обновим как:

var rt = (RectTransform) target.transform;
rt.anchorMax = new Vector2 (.5f, 1);
rt.anchorMin = new Vector2 (.5f, 1);

Мы получим:

enter image description here

1 Ответ

1 голос
/ 10 марта 2020

Вы можете просто запомнить положение до смены якоря и переназначить его после:

var rt = (RectTransform) target.transform;
var pos = rt.localPosition;        
rt.anchorMin = new Vector2(.5f, 1);
rt.anchorMax = new Vector2(.5f, 1);
rt.localPosition = pos;

Возможно, есть способ избежать этого, но, по крайней мере, вам не нужно ничего пересчитывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...