Масштабирование разрешения в Unity - PullRequest
0 голосов
/ 13 октября 2019

Я хотел спросить вас, есть ли опция шкалы разрешения, как в Unreal Engine, в Unity. Я просмотрел интернет, но ничего не нашел.

1 Ответ

0 голосов
/ 14 октября 2019

Если вы хотите масштабировать объекты, которых нет на холсте, основываясь на разрешении, то я ничего не могу придумать. Однако было бы довольно легко реализовать что-то, что делает это.

Создайте сценарий и прикрепите его к каждому объекту, который должен масштабироваться в зависимости от текущего разрешения.

    public class ScaleObjectFromRes : MonoBehaviour
{

    private Vector2 targetResoultion = new Vector2(1920, 1080); //can be changed here or elsewhere
    private bool matchWidth = true; //0=width, 1=height  used to maintain aspect ratio


    // Start is called before the first frame update
    void Start()
    {
        float difference = CalculateDifference();
        ScaleObj(difference);
    }

    void ScaleObj(float diff)
    {
        gameObject.transform.localScale += (gameObject.transform.localScale * (diff/100));
    }

    private float CalculateDifference()
    {
        Vector2 actualResolution = new Vector2(Screen.width, Screen.height);
        Vector2 change = actualResolution-targetResoultion;

        Vector2 percentChange = (change / targetResoultion) * 100;

        //match width/height
        if (matchWidth)
        {
            return percentChange.x;
        }
        else
        {
            return percentChange.y;
        }

    }

Это масштабируетобъект на основе разницы в процентах между целевым разрешением и фактическим разрешением. Мы можем выбрать совпадение разницы в зависимости от ширины или высоты, чтобы гарантировать постоянное соотношение для объекта. При этом предполагается, что величина вектора масштаба объекта равна 1. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...