Масштабирование камеры Unity для конкретного объекта (2D) - PullRequest
0 голосов
/ 17 ноября 2018

Я хотел бы увеличивать и уменьшать масштаб для определенных элементов только в 2D.

  • У меня есть орфографическая камера.
  • У меня есть холст, содержащий элементы пользовательского интерфейса, которые не должны изменять размер или
    положение.

  • У меня также есть некоторые элементы на этом холсте, которые нужно увеличить или
    вне.

Изображение стоит 1000 слов: http://prntscr.com/ljjp8i

Я хочу увеличить масштаб фона (который является изображением) и серклей на нем, но не на кнопках / тексте вокруг вида игры.

Я уже провел тест со следующим кодом:

   void Update()
    {
        if (Input.GetAxis("Mouse ScrollWheel") < 0) // back
        {
            Debug.Log("zoom out");
            cam.orthographicSize +=1;

        }
        if (Input.GetAxis("Mouse ScrollWheel") > 0) // forward
        {
            Debug.Log("zoom in");
        }
    }
}

К сожалению, он ничего не делает. Несмотря на то, что DEbug.Log приходит, в представлении нет никаких изменений. Более того, я понятия не имею, как это отреагирует на все элементы пользовательского интерфейса, как исключить элементы, которые нельзя увеличивать.

Может ли кто-то указать мне хороший ресурс, который объясняет, как этого добиться, или дать мне рекомендации, чтобы я мог изучить сам? (Или даже дать решение, если вы до ^^)

Спасибо.

1 Ответ

0 голосов
/ 17 ноября 2018

По умолчанию холст настроен для визуализации в Screen Space.

Вам следует рассмотреть возможность создания отдельного холста для объектов, которые вы хотите масштабировать.Установите режим рендеринга этого холста на World Space, и на него должен влиять размер камеры.

enter image description here

...