Объявление
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 | Сетка для рисования. |
position | Положение сетки. |
rotation | Вращение сетки. |
matrix | Матрица преобразования сетки (сочетает в себе положение, вращение и другие преобразования). |
material | Материал для использования. |
layer | Слой для использования. |
camera | Если null (по умолчанию), сетка будет отрисовываться во всех камерах. В противном случае он будет отображаться только в данной камере. |
submeshIndex | Какое подмножество сетки рисовать. Это относится только к сеткам, состоящим из нескольких материалов.. |
properties | Дополнительные свойства материала, применяемые к материалу непосредственно перед отрисовкой этой сетки. См. MaterialPropertyBlock. |
castShadows | Определяет, может ли сетка отбрасывать тени. |
receiveShadows | Определяет, может ли сетка получать тени. |
useLightProbes | Должна ли сетка использовать световые датчики? |
probeAnchor | Если используется, сетка будет использовать положение этого Transform для выборки световых зондов и поиска соответствующего зонда отражения. |
lightProbeUsage | LightProbeUsage для сетки. |
Описание
Нарисуйте сетку.
DrawMesh рисует сетку для одного кадра. На сетку будет влиять свет, она может отбрасывать и получать тени и быть на него воздействовали проекторы — как будто он был частью какого-то игрового объекта. Его можно нарисовать для всех камер или только для какая-то конкретная камера.
Используйте DrawMesh в ситуациях, когда вы хотите нарисовать большое количество мешей, но не хотите создавать и управлять игровыми объектами. Обратите внимание, что DrawMesh не рисует сетку сразу; он просто «отправляет» его для рендеринга. Сетка будет визуализирована как часть обычного процесса визуализации. Если вы хотите сразу нарисовать сетку, используйте Graphics.DrawMeshNow.
Поскольку DrawMesh не рисует сетку сразу, изменение свойств материала между вызовами этой функции не приведет к тому, что сетки подхватят их. Если вы хотите нарисовать серию мешей с одним и тем же материалом, но с немного разными свойствами (например, изменить цвет каждого меша), используйте параметр MaterialPropertyBlock.
Обратите внимание, что этот вызов создаст некоторые внутренние ресурсы, пока сетка находится в очереди на отрисовку. Распределение происходит немедленно и будет сохраняться до конца кадра (если объект был поставлен в очередь для всех камер) или до тех пор, пока указанная камера не отрендерится.
Смотрите так же: 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);
}
}