Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

Graphics.RenderMesh

Declaration

public static void RenderMesh(ref RenderParams rparams, Mesh mesh, int submeshIndex, Matrix4x4 objectToWorld, Nullable<Matrix4x4> prevObjectToWorld = null);

Параметры

Параметр Описание
рпарам Параметры, используемые Unity для отображения сетки.
сетка Mesh для рендеринга.
submeshIndex Индекс подсетки Unity отображается, когда сетка содержит несколько Материалов (подсеток). Для сетки с одним Материалом используйте значение 0.
objectToWorld Матрица преобразования Unity используется для преобразования сетки из объекта в мировое пространство.
prevObjectToWorld Матрица преобразования кадра Unity используется для вычисления вектора движения для сетки.

Описание

Отображает сетку с заданными параметрами отображения.

RenderMesh рендирует сетку для текущего кадра. На эту сетку влияет освещение, она может отбрасывать и принимать тени, и на неё влияют проекторы. Эта сетка может быть рендирована всеми камерами или определенным Camera.

Использование RenderMesh для программного управления рендерингом Mesh без необходимости создания и управления GameObjects. RenderMesh Unity отображает сетку как часть обычного процесса отображения. Если вы хотите отобразить сетку немедленно, используйте Graphics.DrawMeshNow.

RenderMesh не применяет никаких изменений, которые вы делаете в свойствах Материала Меши между вызовами. Это потому, что он не рендирует Меш сразу. Если вы хотите рендировать серию Мешей, которые имеют один и тот же Материал, но с немного разными свойствами (например, чтобы изменить цвет каждой меши), используйте MaterialPropertyBlock параметр.

Этот вызов создаёт внутренние ресурсы, пока меш находится в очереди на отрисовку. Выделение происходит сразу и сохраняется до конца кадра, если объект стоит в очереди для всех камер. Иначе оно сохраняется, пока указанная камера не завершит отрисовку.

Дополнительные ресурсы: MaterialPropertyBlock.

Следующий пример отображает 10 мешей с данным материалом:

using UnityEngine;

public class ExampleClass : MonoBehaviour { public Material material; public Mesh mesh;

void Update() { RenderParams rp = new RenderParams(material); for(int i=0; i<10; ++i) Graphics.RenderMesh(rp, mesh, 0, Matrix4x4.Translate(new Vector3(-4.5f+i, 0.0f, 5.0f))); } }