#unity3d #shader #sprite #layer #depth
Вопрос:
У меня есть модель fbx, в которой используется мобильный неосвещенный шейдер Unity, и другой спрайт, в котором используется пользовательский шейдер. Я проверил, что они оба находятся в одной очереди визуализации, однако они рисуют не в порядке сортировки, а только по глубине.
Когда у меня порядок сортировки средства визуализации спрайтов установлен на 100, а порядок сортировки средства визуализации сетки установлен на 0, я ожидаю увидеть спрайт, нарисованный перед моделью, независимо от глубины. Но это не то, что я получаю.
В настоящее время 3D-модель использует встроенный в Unity мобильный неосвещенный шейдер (https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/DefaultResourcesExtra/Mobile/Mobile-Lightmap-Unlit.shader), и в моем пользовательском шейдере спрайтов эти флаги установлены в блоке подшейдера:
Lighting Off
Cull Off
ZWrite Off
BlendOp [_OpColor]
Blend [_SrcFactor] [_DstFactor]
Пожалуйста, дайте мне знать, есть ли способы достичь этого?
Комментарии:
1. Убедитесь, что все шейдеры находятся в прозрачной очереди с отключенной функцией ZTest.
2. Что вы имеете в виду под
layer of the sprite renderer
этим ? Вы редактируете егоorder
в своемSortingGroup
или? Вы редактируетеlayer
объект? Или что-то совсем другое?3. Я создал пользовательские редакторы для визуализации сеток и спрайтов, чтобы редактировать их порядок сортировки (m_SortingOrder).
4. Если вы имеете в
this sorting order
виду , я не верю, что это оказывает какое-либо влияние на 3D-объекты.5. Это свойство для визуализации сетки, но оно не влияет на 3D-сетки? Нет никакого способа заставить его работать, написав пользовательский шейдер?