Страница 1 из 1

Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 10 июл 2017, 12:00
Orcan
Добрый День! Столкнулся опять с проблемой Почти сделал Новелу и тут оказалось, что на каждом экранах **1280х600 **1920х1080 показывает по-разному тоесть картинки (Sprite ) обрезаются по краям если на 1280х600 всё показывает идеально. то 1920х1080 обрезает слева и справа!(что не есть хорошо) Думаю написать костыль например если соотношении монитора 1920/1080, то сузить картинку, если 1280/600, то расширить. Но я думаю что это не есть хорошая идея в юнити есть же наверно инструменты решающие эту проблему, может через камеру как?

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 10 июл 2017, 15:20
snezhok_13
Обычно это делается углом камеры

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 13 июл 2017, 10:56
eonyanov
snezhok_13 писал(а):Обычно это делается углом камеры

Под углом тут понимается OrthographicSize, как я понимаю.
И да, надо писать костыль, чтобы при изменении пропорций выставлялся правильный OrthographicSize.
Сами спрайты лучше не сужать и не трогать. Всё исключительно через камеру. И надо ещё подумать, чем замещать пустое пространство по бокам.
А может правильней будет вообще перенести всё на uGui. Там со скейлом экрана попроще.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 14 июл 2017, 00:09
Orcan
У меня спецэфекты на этой картинки поставлены с GUI они не работают насколько я знаю или я ошибаюсь? Не никакие манипуляции с камерой не помогают надо скрипты какие то делать как лучше не понятно

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 14 июл 2017, 09:54
eonyanov
Спец эффекты? То есть ParticleSystem? Если да, то они могут рисоваться поверх uGUI. Нужно у объекта ParticleSystem выставить Layer = UI, а в разделе Renderer в поле OrderInLayer выставить значение побольше.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 15 июл 2017, 01:47
jet_aleks
не согласен с постами выше. Тут нужно строить пропорцию отваливаясь от размеров экрана. Высчитать формулу которая будет скелить спрайты. Это самый разумный подход. К тому же это проверено,Я подобное делал. Может конечно я ошибаюсь и есть более разумный подход.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 15 июл 2017, 11:24
Orcan
Gui не подходит(( надо костыль писать

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 16 июл 2017, 13:12
eonyanov
jet_aleks писал(а):не согласен с постами выше. Тут нужно строить пропорцию отваливаясь от размеров экрана. Высчитать формулу которая будет скелить спрайты. Это самый разумный подход. К тому же это проверено,Я подобное делал. Может конечно я ошибаюсь и есть более разумный подход.

Во всех постах про оптимизацию пишут, что скейлить спрайты не стоит.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 16 июл 2017, 13:20
jet_aleks
Эти посты были написаны года 2-4 назад. Все дико поменялось. Скейлить не желательно было из-за проблем рендеринга, если я не ошибаюсь, и это был баг движка до какойто из 3._ версий. Сейчас вы можете провести эксперимент со скейлом спрайтов.!!!!

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 17 июл 2017, 12:02
eonyanov
В любом случае, имхо, проще одну камеру настроить, чем скейлить всё спрайты.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 17 июл 2017, 21:45
Orcan
ну вот не понятно как можно изменять углом камеры чтобы экран не резался По Горизонтали и по вертикали вот например как режиться на разных экранах http://www.gamedev.ru/files/images/?id=127051 Тоесть почти на 1 единицу с каждой стороны

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 17 июл 2017, 21:56
samana
Могу ошибаться по поводу понимания проблемы, но может вам это решение подойдёт https://youtu.be/rMCLWt1DuqI?t=36m9s (с перемоткой).

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 18 июл 2017, 12:25
eonyanov
Вот Вам скрипт, попробуйте его повесить его на камеру. Хотя не обязательно и на камеру так то.
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraSize : MonoBehaviour
{
    public Vector2 ReferenceResolution = new Vector2(1280f, 600f);

        // Use this for initialization
        void Start ()
    {
        float aspect = (float) Screen.width / Screen.height;
        float newHeight = ReferenceResolution.x / aspect;
        Camera.main.orthographicSize = newHeight / 200f;
        }      

}


В поле ReferenceResolution в инспекторе введите разрешение, под которое у Вас настроена игра.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 18 июл 2017, 19:44
Orcan
спс Надо пробовать.

Re: Подгонка Sprite не Gui под разширение Экрана

СообщениеДобавлено: 04 авг 2017, 20:31
Orcan
я не понял как это работает Можешь продемонстрировать на живом проекте eonyanov Пожауйста