UI / Canvas появляется перед объектами, даже если он установлен на World Space

В моем проекте Google Cardboard у меня есть несколько холстов, прикрепленных к стенам в комнате. На этих холстах есть кнопки, с которыми игрок может взаимодействовать. Я установил для каждого холста значение «Мировое пространство», но по какой-то причине кнопки отображаются перед объектами, которые должны отображаться перед кнопками.

update1: пользовательский интерфейс отображается за кубом в окнах игры и сцены, когда он не запущен. Только когда я нажимаю кнопку воспроизведения, изображение появляется перед кубом. Я программно добавляю изображения к кнопке пользовательского интерфейса, но проблема возникает, даже если я добавляю изображения только с помощью редактора.

update2: если я отключу картонные элементы в моей сцене (т.е. использую стандартную настройку камеры fps), я не получу проблемы.

Изображение ниже: Шахматная доска - это интерфейс. Серый блок - это 3D блок. Я хочу, чтобы интерфейс был за блоком, на стене.

за блоком должна появиться шахматная доска

объект холста

введите описание изображения здесь


person Ethan Fischer    schedule 25.09.2016    source источник
comment
Из этого снимка экрана я не могу сказать, что такое пользовательский интерфейс, а что такое 3D-объект.   -  person Umair M    schedule 26.09.2016
comment
Где вы хотите, чтобы пользовательский интерфейс был?   -  person Sourav Paul Roman    schedule 26.09.2016
comment
За серым кубом на стене   -  person Ethan Fischer    schedule 26.09.2016
comment
Отключите режим VR в компоненте GVRViewer и разместите больше снимков экрана из инспектора компонентов холста и инспектора объектов. Предоставленной вами информации недостаточно, чтобы кто-то мог вам помочь.   -  person Umair M    schedule 26.09.2016
comment
Хорошо, я опубликую более подробную информацию позже сегодня. Спасибо   -  person Ethan Fischer    schedule 26.09.2016
comment
Выложены дополнительные скриншоты. Инспектор показывает объект холста и кнопку пользовательского интерфейса, называемую рисованием.   -  person Ethan Fischer    schedule 27.09.2016
comment
У меня возникла эта проблема в Unity 5.4.3f1 при использовании GVR SDK 1.0. Проблема возникает только в редакторе, а не в сборках Android. У вас тоже возникла проблема в сборках?   -  person Starcalibre    schedule 19.12.2016


Ответы (2)


Вручную переместите родительский объект пользовательского интерфейса за серый объект.

введите описание изображения здесь

person Sourav Paul Roman    schedule 26.09.2016
comment
Ха-ха, если бы это было так просто. За кубом находится родительский объект пользовательского интерфейса. Я должен добавить, что пользовательский интерфейс появляется за кубом в окнах игры и сцены, когда он не запущен. Только когда я нажимаю кнопку воспроизведения, изображение появляется перед кубом. Кроме того, я программно добавляю изображения в пользовательский интерфейс, думаю, это то место, где мне следует поискать. - person Ethan Fischer; 26.09.2016
comment
Это результат выполнения. Тестирование на ПК, а не на cardborad. Но должно быть похоже. Создается впечатление, что созданные объекты пользовательского интерфейса находятся рядом с исходной точкой, если не изменена позиция. Назначение образа во время выполнения может не быть проблемой - person Sourav Paul Roman; 26.09.2016
comment
Ах, у вас тоже проблема с редактором. Хотя мой работает нормально. Как вы думаете, проблема с версией Unity. Используя 5.2.4f1. - person Sourav Paul Roman; 26.09.2016
comment
Хм, я не уверен, проблема в версии или нет. Я использую 5.4.0f3. Я посмотрю, возникнет ли проблема без картонной камеры и т. Д. - person Ethan Fischer; 26.09.2016
comment
И я переместил холсты, в которые встроены мои кнопки пользовательского интерфейса, из источника, поэтому я не думаю, что это должно быть проблемой. - person Ethan Fischer; 26.09.2016

Кто-то из answers.unity3D внес следующие предложения:

Проблема может исходить из шейдера, используемого элементом пользовательского интерфейса со значением ZTest, установленным на Off, или тег Queue шейдера элемента пользовательского интерфейса «выше», чем тег шейдера куба.

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

Думаю, есть проблемы с шейдерами и гугл картоном. Спасибо ребята

person Ethan Fischer    schedule 27.09.2016