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); } }