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

Mesh.isReadable

Declaration

public bool isReadable;

Описание

Возвращает true, если Mesh включена для чтения/записи, или false, если она не включена.

Когда Mesh включена на чтение/запись, Unity загружает данные Mesh в адресируемую память GPU, но также сохраняет их в адресируемой памяти CPU. Когда Mesh не включена на чтение/запись, Unity загружает данные Mesh в адресируемую память GPU, а затем удаляет их из адресируемой памяти CPU.

Вы можете установить это значение, используя флажок Read/Write Enabled при импорте модели в Unity. Чтобы установить значение false во время выполнения, установите аргумент markNoLongerReadable для Mesh.UploadMeshData.

В большинстве случаев вы должны отключить эту опцию, чтобы сэкономить использование памяти во время выполнения. Вы должны включить ее только при следующих обстоятельствах:

  • При чтении или записи данных Mesh в коде.
  • Когда вы передаете Mesh в StaticBatchingUtility.Combine() для объединения Mesh во время выполнения.
  • При передаче сетки в CanvasRenderer.SetMesh.
  • Когда вы используете Mesh для создания NavMesh с использованием компонентов создания NavMesh во время выполнения.
  • Когда Сетка выпукла, вы используете Сетку с Сеткой Collider, и Сетка Collider имеет отрицательное масштабирование Transform (например, (–1, 1, 1)).
  • Когда вы используете Mesh с Mesh Collider, и преобразование Mesh Collider искажено или сдвинуто (например, когда вращающийся Transform имеет масштабированный родитель Transform).
  • При использовании Mesh с Mesh Collider и Mesh Collider флаги Cooking Options устанавливаются на любое значение, кроме значения по умолчанию.
  • При использовании Mesh с модулем Shape или Renderer Particle System, когда не используется instancing GPU.

Обратите внимание, что Particle System автоматически изменяет Meshes на читаемые, когда назначается через инспектор

Примечания: Когда Unity создает Mesh из скрипта, это значение изначально установлено на true. Meshes, не обозначенные как читаемые, будут вызывать ошибку при доступе к любым массивам данных из скрипта во время выполнения. Доступ всегда разрешен в Unity Editor вне цикла игры и рендеринга, независимо от этой настройки.

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

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { Mesh mesh = GetComponent<MeshFilter>().sharedMesh; print(mesh.isReadable); } }