У меня есть два холста, настроенных для моего проекта, один для фона, а другой для размещения элементов пользовательского интерфейса переднего плана. Изначально они были настроены на мировое пространство, и у меня не было проблем, но сейчас я оптимизирую свою игру, я должен изменить пространство, чтобы они адаптировались к мобильным телефонам. Как я могу спроектировать холст так, чтобы один работал на заднем плане, а другой - на переднем плане? Я пытался изменить z-pos и другие быстрые исправления, которые я нашел в Интернете, но ни одно из них не сработало.
Unity2D накладывает несколько холстов
Ответы (1)
Хорошо, у вас есть фоновый холст, спрайты и холст переднего плана, а фоновый холст должен быть позади всего, включая спрайты.
Идея состоит в том, чтобы рендерить сначала только фон одной камерой, а потом уже все рендерить другой.
Для этого нам следует:
- Добавьте слой для фонового холста. Измените слой фонового холста и дочерних элементов на этот слой.
Чтобы добавить слой, выберите любой игровой объект, и в верхней части инспектора вы увидите:
Щелкните раскрывающийся список с надписью «Слой» и выберите «Добавить слой». Затем создайте новый слой и дайте ему имя:
Выберите свой фоновый холст и измените слой для него и его дочерних элементов. При добавлении игровых объектов помните, что если вы добавите их на фоновый холст, их слой должен совпадать со слоем холста, иначе они будут отображаться не той камерой.
- Отключите этот слой в маске отсечения основной камеры.
Теперь камера больше не должна отображать фоновый интерфейс, и он исчезнет из вида игры.
- Добавьте камеру для рендеринга фона пользовательского интерфейса.
Камеры с большей глубиной отрисовываются поверх камер с меньшей глубиной, поэтому мы должны установить ее глубину меньше глубины основной камеры. Мы также должны установить его маску отсечения только на слой для фонового интерфейса, иначе все объекты на сцене будут рендериться дважды. Копировать другие настройки с основной камеры. Установите для режима очистки основной камеры значение «Не очищать» или «Только глубина», чтобы фон не стирался.
- Установите режим фонового холста на Экранное пространство - Камера и перетащите только что созданную камеру в поле "Визуализация камеры" там.
Теперь это должно работать.