#c# #unity3d #shader #render #depth-buffer
#c# #unity3d #шейдер #рендерить #глубина-буфер
Вопрос:
Я добавил объект куба с позицией (0, 0, 0) и объект сферы с позицией (0,5, 0, -3). Я добавил текстуры и материалы.
Я хочу переместить сферу позади всех других объектов с помощью очереди рендеринга или другого решения.
Я добавил этот скрипт в сферу. Это не работает:
using UnityEngine;
public class RenderQueueTest : MonoBehaviour
{
public int renderQueuePosition = -1;
void Start()
{
GetComponent<Renderer>().material.renderQueue = renderQueuePosition;
}
}
Я также попытался изменить очередь рендеринга материала сферы в инспекторе.
Очередь рендеринга материала сферы по умолчанию равна: 2000
Я изменил его на: 1999
Не работает.
Вот текстуры:
Комментарии:
1. Сфера также должна иметь материал, который не записывается в буфер глубины (
ZWrite Off
).
Ответ №1:
Что вы могли бы сделать, это попытаться переместить сам спрайт обратно, установить позицию преобразования.установите значение y на -0.1 в инспекторе или сделайте это с помощью скрипта, подобного этому:
using UnityEngine;
public class SendBackScrpt: MonoBehaviour
{
private Vector3 sendBack = new Vector3(0, -0.1f, 0);
private void Start()
{
Vector3 prevPos = transform.position;
transform.position = prevPos sendBack;
}
}
что вы также могли бы попробовать, так это поместить спрайт выше другого в иерархии.