Graphics.DrawMesh
Declaration
public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation, Material material, int layer, Camera camera = null, int submeshIndex = 0, MaterialPropertyBlock properties = null, bool castShadows = true, bool receiveShadows = true, bool useLightProbes = true);public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation, Material material, int layer, Camera camera, int submeshIndex, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows = true, Transform probeAnchor = null, bool useLightProbes = true);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int layer, Camera camera = null, int submeshIndex = 0, MaterialPropertyBlock properties = null, bool castShadows = true, bool receiveShadows = true, bool useLightProbes = true);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int layer, Camera camera, int submeshIndex, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows = true, Transform probeAnchor = null, bool useLightProbes = true);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int layer, Camera camera, int submeshIndex, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows, Transform probeAnchor, Rendering.LightProbeUsage lightProbeUsage, LightProbeProxyVolume lightProbeProxyVolume = null);Параметры
| Параметр | Описание |
|---|---|
| сетка | Mesh для рисования. |
| должность | Положение сетки. |
| ротация | Вращение сетки. |
| матрица | Матрица преобразований сетки (сочетает в себе преобразования положения, вращения и другие преобразования). |
| материал | Material использовать. |
| слой | Слой, на котором рисуется сетка. |
| камера | Если null (по умолчанию), сетка будет рисоваться во всех камерах. В противном случае она будет отображаться только в заданной Camera. |
| submeshIndex | Какое подмножество меши рисовать. Это относится только к сетям, которые состоят из нескольких материалов. |
| свойства | Дополнительные свойства материала, которые должны быть применены к материалу непосредственно перед рисованием этой сетки. См. MaterialPropertyBlock. |
| castShadows | Определяет, может ли сетка создавать тени. |
| receiveShadows | Определяет, может ли сетка получать тени. |
| useLightProbes | Должна ли сетка использовать световые зонды? |
| probeAnchor | Если используется, сетка будет использовать положение Transform для выборки световых зондов и поиска соответствующего отражательного зонда. |
| lightProbeUsage | LightProbeUsage для сетки. |
Описание
Нарисуйте сетку.
Эта функция теперь устарела. Использование Graphics.RenderMesh вместо этого.
DrawMesh рисует сетку для одного кадра. На сетку будут влиять свет, тени и прожекторы — как если бы она была частью игрового объекта. Ее можно рисовать для всех камер или только для какой-то конкретной камеры.
Используйте DrawMesh в ситуациях, когда вы хотите нарисовать большое количество мешей, но не хотите создавать и управлять игровыми объектами. Обратите внимание, что DrawMesh не рисует меш сразу, он просто "подает" ее для рендеринга. Меш будет рендеринг как часть обычного процесса рендеринга. Если вы хотите нарисовать меш немедленно, используйте Graphics.DrawMeshNow.
Поскольку DrawMesh не рисует меши сразу, изменение свойств материала между вызовами этой функции не приведет к их подбору. Если вы хотите нарисовать серию мешей с одинаковым материалом, но немного разными свойствами (e.g. изменить цвет каждой меши), используйте MaterialPropertyBlock параметр.
Учтите, что этот вызов создаёт некоторые внутренние ресурсы на время, пока меш стоит в очереди на отрисовку. Выделение происходит сразу и сохраняется до конца кадра (если объект поставлен в очередь для всех камер) или до тех пор, пока указанная камера не выполнит отрисовку.
Дополнительные ресурсы: Graphics.RenderMesh, MaterialPropertyBlock.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Mesh mesh; public Material material; public void Update() { // will make the mesh appear in the Scene at origin position Graphics.DrawMesh(mesh, Vector3.zero, Quaternion.identity, material, 0); } }