Позиционирование объектов в зависимости от размеров экрана
Столкнулся с проблемой при работе с Unity.
Мне нужно, чтобы на границах экрана были стены (не важно, видимые или нет). Однако заметил, что про изменении размеров экрана эти стены уходят за кадр (сейчас они организованы в виде спрайтов):
Подскажите, в какую сторону стоит копать и как реализовать, чтобы на всех экранах стены были менно по краям видимой зоны.
Ответы (1 шт):
Если Ваша игра выполнена в 2D, то самым простым способом будет использовать свойства Camera.orthographicSize и Camera.aspect Вашей камеры. Так Вы сможете узнать размеры видимой области в мировых координатах.
Далее, нужно будет заскейлить стены и расположить их по краям видимой области.
Что то типа:
var camera = Camera.main;
var halfHeight = camera.ortogtaphicSize;
var halfWidth = halfHeight * camera.aspect;
var center = camera.transform.position;
leftWall.transform.position = center + Vector3.left * halfWidth;
leftWall.transform.localScale = new Vector3(1, halfHeight);
...
Код писал от балды, так что могут быть синтаксические ошибки... Ваша среда разработки Вам об этом сообщит)
Возможно, при расположении стен, Вам нужно будет учесть их ширину и высоту. Для этого можно использовать свойства Renderer.bounds и/или Collider2D.bounds
