High performance zero allocation array buffer (but unsafe)
当你的项目中存在一些古代插件,它的API只能接受Array参数时,你可以用UnsafeArrayBuffer来优化数组的Allocation。
UnsafeArrayBuffer内部使用System.Buffers.ArrayPool数组对象池,可以高效利用内存。
再通过UnsafeUtility.As,修改Array的Count字段,让Array成为了变长数组
using var buffer = new UnsafeArrayBuffer<Vector3>();
buffer.Add(Vector3.right);
buffer.Add(Vector3.left);
buffer.Insert(1, Vector3.up);
buffer.Add(Vector3.one, 3);
buffer.RemoveAt(2);
var mesh = new Mesh();
mesh.SetVertices(buffer.InternalBuffer); // Zero AllocationInternalBuffer只能使用在临时场景。