Unity - Scripting API: Mesh.AcquireReadOnlyMeshData
Success!
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
Submission failed
For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
Parameters
| mesh | The input mesh. |
| meshes | The input meshes. |
Returns
MeshDataArray
Returns a MeshDataArray containing read-only MeshData structs. See MeshDataArray and MeshData.
Description
Gets a snapshot of Mesh data for read-only access.
When you pass one or more Meshes to Mesh.AcquireReadOnlyMeshData, Unity returns a MeshDataArray of read-only MeshData structs. You can access the resulting MeshDataArray and MeshData structs from any thread. Creating a MeshDataArray has some overhead for memory tracking and safety reasons, so it is more efficient to make a single call to Mesh.AcquireReadOnlyMeshData and request multiple MeshData structs in the same MeshDataArray than it is to make multiple calls to Mesh.AcquireReadOnlyMeshData.
Each MeshData struct contains a read-only snapshot of data for a given Mesh.
You must dispose of the MeshDataArray once you have finished working with it. Calling Mesh.AcquireReadOnlyMeshData does not cause any memory allocations or data copies by default, as long as you dispose of the MeshDataArray before modifying the Mesh. However, if you call Mesh.AcquireReadOnlyMeshData and then modify the Mesh while the MeshDataArray exists, Unity must copy the MeshDataArray into a new memory allocation. In addition to this, if you call Mesh.AcquireReadOnlyMeshData and then modify the Mesh, your modifications are not reflected in the MeshData structs.
Use Dispose to dispose of the MeshDataArray, or use the C# using pattern to do this automatically: