Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Graphics.DrawMesh

Объявление

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); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3