リストがあり、その配列をプロパティに割り当てる必要があります。ヒープ割り当てのないリストから配列を取得する
今public void BuildMesh(List<Vector3> list){
mesh.vertices=list.ToArray();
}
問題:
- プロジェクトはゲームであり、それはリストの内部配列の横に新しい配列を作成しててToArray()のデフォルトの実装はオプションではありませんので、ガベージコレクションの非常に厳しいです。
- メッシュオブジェクトは閉じたソースAPIからのもので、verticesプロパティはVector3 []なので、ポインタを割り当てることはできません。
ヒープ割り当てを防止するオプションはありますか?
EDIT:これはIList<Vector3>
を使用することはできません重複
ではありません。メッシュは閉じたソースAPIから来ており、Vector3 []が必要なので、IList<Vector3>
を割り当てることはできません。
[コピーなしでにリストをコピーする](http://stackoverflow.com/questions/4972951/listt-to-t-without-copying) –
@VadimMartynovこれは別の質問です。メッシュは閉じたソースAPIから来ており、Vector3 []が必要なので、IListを割り当てることはできません。 –
固定サイズのオブジェクトがある場合は、単にオブジェクトを破棄しないでください。代わりに、単にオブジェクトを未使用とマークします。プログラムの先頭にオブジェクトの固定配列を作成します。次に、オブジェクトを作成および廃棄する代わりに、使用済みまたは未使用のオブジェクトをマークします。ガベージコレクションは不要です。 – jdweng