Помогите Даше понять в какой мы системе координат...
Давно чёт ничего не писал. Но я исправлюсь. Наверное я немного охладел к разработке и лучше писать про бизнес и так далее, чем я по большей части занимаюсь. Но сейчас у меня появилась задачка, которую надо сделать. И боже мой, Unity UI придумывал злой гений. Тут столько неочевидных приколов. И в основном они связаны с тем: "А в какой системе отсчёта мы находимся?"
Базовые условия. Экран у нас настроен 720 х 1280. Канвас скейлер 375 х 812. Мы пытаемся найти левый нижний угол и размеры рект трансформа в координатах экрана.
И что я пока накопал?
1. Метод GetWorldCorners в RectTransform зависит от настроек анкоров
Вот кто бы мне объяснил почему? Вообще ещё частью задачи является то, чтобы у меня ещё скриншот этого дела делался, поэтому мне нужно чтобы мне возвращало размеры и левый нижний угол в координатах экрана. Но то что считается мировой позицией угла зависит от настроек анкоров. Почему? Загадка юнити. Зависимость хотя бы понятная. Если анкор настроен на левый верхний угол то это начало системы координат. И так далее. Удобно ли это? Ну если пытаться решить задачу "нормально" и в абстрактном случае, то тут надо прям думать как приводить одно к другому
2. RectTransform.rect.size плевать хотел в режиме stretch на CanvasScaler
При режиме растягивания рект трансформа его размер возвращается не в размерах канваса и канвас скейлера. А в размерах экрана. Логично? Весьма. Единая система координат для слабаков. Сильные пляшут с бубнами неочевидно меняя размерности и системы. Ну чтобы разрабатывать было веселее. Почему так сделано? Пошел я нахрен, вот почему.
3. Забавный баг с CaptureScreenshot
Он вызывается только в плей моде. Но если вы вызовете его по ContextMenu то получите скриншот не GameView, а инспектора.
В общем весьма нетривиальная задача сделать скриншот куска интерфейса. Что примечательно я его уже делал и так же плевался, просто я совершенно не помню в каком из 120 проектов за последние 3 года. Поэтому сейчас делаю эту тулу заново. Вообще надо видимо выложить куда-то, так же как те же градиенты.
#оработе
Post #1585
2.46K