Обнулить offset в RectTransform, расположив anchors по углам rect
Кратко: как провести линию из нижнего левого в правый верхний угол экрана?
Если я сделаю:
offsetMin = Vector2.zero;
offsetMax = Vector2.zero
То прямоугольник встанет точно по якорям, будто я вручную в инспекторе обнулил параметры Left, Top, Bottom, Right. А я хочу с точностью да наоборот.
Нажимаешь на кнопку контекстного меню — якоря встают по углам прямоугольника.
Мой ход мыслей таков:
anchorMinиanchorMax- это позиции нижнего левого и верхнего правого якорей соответственно от 0 до 1.Screen.widthиScreen.height- размеры экрана- Чтобы получить
anchorMinиanchorMaxможно позиции нижнего левого и верхнего правого якорей разделить на размеры экрана.
Для проверки я написал такой код:
[MenuItem("CONTEXT/RectTransform/Nullify")]
static void Nullify (MenuCommand command)
{
RectTransform RT = (RectTransform)command.context; // Получаем RectTransform
Vector2 RectMin = new Vector2(RT.position.x - RT.rect.size.x / 2,
RT.position.y - RT.rect.size.y / 2); // Минимальный угол прямоугольника
Vector2 RectMax = new Vector2(RT.position.x + RT.rect.size.x / 2,
RT.position.y + RT.rect.size.y / 2); // Максимальный угол прямоугольника
Debug.DrawLine(RectMin, RectMax, Color.red, 10); // Линия между углами прямоугольника
Debug.DrawLine(Vector2.zero, new Vector2(Screen.width, Screen.height), Color.green, 10); // Линия между углами экрана
}
И вот тут появляется интересность: первый луч проводится точно между углами прямоугольника, а вот второй луч выходит из нижнего левого угла экрана и заканчивается совершенно не в правом верхнем, а где-то выше и левее:
Я думаю, что мой подход верен, но он ломается из-за того, что я не могу нормально получить координаты верхнего правого угла экрана. Хотя по факту это должно быть Screen.width, Screen.height, нарисованная линия показывает, что это не так.
В итоге ответом на мой вопрос будет хотя бы одно из:
- Координаты верхнего правого угла экрана
- Как провести линию между углами экрана
- Как реализовать это: "Нажимаешь на кнопку контекстного меню — якоря встают по углам прямоугольника" (это уж прям совсем глобальный вопрос)
