从没有堆分配的列表中获取数组

时间:2015-12-24 06:31:37

标签: c# pointers data-structures unity3d heap

我有一个列表,我想将其数组分配给一个属性。

public void BuildMesh(List<Vector3> list){
    mesh.vertices=list.ToArray();
}

现在出现问题:

  • 该项目是游戏,并且在垃圾收集方面非常困难,因此ToArray()的默认实现不是一个选项,因为它在列表的内部数组旁边创建了一个新数组。
  • 网格对象来自闭源API,顶点属性是Vector3 [],因此无法为其指定指针。

我有什么选择可以阻止堆分配吗?

编辑:这不是重复

无法使用IList<Vector3>。网格来自封闭的源API,需要Vector3 [],因此我无法为其分配IList<Vector3>

1 个答案:

答案 0 :(得分:2)

我认为您正在使用Unity。如果我是对的,请尝试接受mesh.SetVertices(list)的{​​{1}}。