Ho una lista e voglio assegnare la sua matrice a una proprietà.Ottieni array dalla lista senza allocazione heap
public void BuildMesh(List<Vector3> list){
mesh.vertices=list.ToArray();
}
Ora i problemi:
- Il progetto è un gioco ed è molto dura per la raccolta dei rifiuti in modo da l'implementazione predefinita di ToArray() non è un'opzione in quanto crea un nuovo array accanto array interno di lista .
- L'oggetto mesh proviene da un'API closed source e la proprietà vertici è una Vector3 [] quindi non è possibile assegnarvi un puntatore.
Ho qualche opzione per impedire l'allocazione dell'heap?
EDIT: Questo non è un duplicato
Impossibile utilizzare IList<Vector3>
. La mesh proviene da un'API closed source e necessita di Vector3 [], quindi non posso assegnare a questo l'IList<Vector3>
.
Possibile duplicato di [Lista a T \ [\] senza copiare] (http://stackoverflow.com/questions/4972951/listt-to-t-withoutcopying) –
@VadimMartynov Questa è un'altra domanda. La mesh proviene da un'API closed source e necessita di Vector3 [], quindi non posso assegnare ad esso IList. –
se l'oggetto dimensione è stato risolto, non disporre l'oggetto. Invece basta contrassegnare l'oggetto non utilizzato. Crea una matrice fissa di oggetti all'inizio del programma. Quindi contrassegna l'oggetto utilizzato o inutilizzato invece di creare e smaltire l'oggetto. Non è richiesta la raccolta dei rifiuti. – jdweng