本文介绍了从获取数组列表没有堆分配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个名单,我想转让其阵列的属性。
I have a list and I want to assign its array to a property.
public void BuildMesh(List<Vector3> list){
mesh.vertices=list.ToArray();
}
现在的问题:
- 该项目是游戏,是在垃圾收集非常艰难这样的ToArray的默认实现()是不是一种选择,因为它创建列表的内部数组旁的新数组。
- 网格对象是一个封闭源代码API和顶点属性是的Vector3 []所以不能一个指针分配给它。
难道我有什么选项,以防止堆分配
Do I have any option to prevent heap allocation?
编辑:?这不是重复
不能使用的IList<&的Vector3 GT;
。该网是一个封闭源代码API和需要的Vector3 [],所以我不能分配的IList<的Vector3方式>
它
Can't use IList<Vector3>
. The mesh is from a closed source API and needs Vector3[] so I can't assign IList<Vector3>
to it.
推荐答案
我觉得你使用统一。如果我是正确的,请尝试 mesh.SetVertices(名单)
其中接受列表<的Vector3方式>
I think you're using Unity. If I'm right, try mesh.SetVertices(list)
which accept a List<Vector3>
.
这篇关于从获取数组列表没有堆分配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!