Размеры камеры под различные разрешения экрана 2D
В общем встречал эту проблему раньше, наткнулся на нее и сейчас. А именно при разработке 2D игры, когда нужно обозначить края коллайдерами или разместить по краям прочие объекты и при этом чтобы скеил игровых(не UI) объектов происходил под размеры текущего экрана, а не указанного лично вами в Unity(например вы поставили 1080:1920, а у игрока 1080:2340).
В ответе я привел код, где мы запоминаем начальные значения размера экрана и меняем уже в Update(), если размер был изменен(можно в Start() запихнуть).
Вроде вопрос не сложный, но дойти до такого не каждому дано...
Update
Метод работал только при изменении размера экрана. Добавил скрипт на вызов изменения скеила в Awake() для статичных разрешений.
Ответы (1 шт):
Динамическое изменение окна игры
private float _defaultHeight;
private float _defaultWidth;
private void Start()
{
_defaultHeight = Camera.main.orthographicSize;
_defaultWidth = Camera.main.orthographicSize * Camera.main.aspect;
}
private void Update()
{
Camera.main.orthographicSize = _defaultWidth / Camera.main.aspect;
}
Скеил размера камеры в Awake
private float _startAspect = 1080f / 1920f;
private float _defaultHeight;
private float _defaultWidth;
private void Awake()
{
_defaultHeight = Camera.main.orthographicSize;
_defaultWidth = Camera.main.orthographicSize * _startAspect;
Camera.main.orthographicSize = _defaultWidth / Camera.main.aspect;
}
Значения в _startAspect это ширина и высота экрана, которую вы использовали в редакторе юнити.

