Ottieni tutti i triangoli di una mesh all'interno di un oggetto
Aug 18 2020
Voglio interagire con la mappa/mesh spaziale a cui accedo tramite mrtk. Voglio creare un'istanza di una sfera nella posizione del cursore e ottenere ogni triangolo della mesh spaziale che si trova all'interno della sfera, quindi posso ritagliarlo e salvarlo per me . So come istanziare e posizionare la sfera e so come ottenere la mesh spaziale tramite la scena comprendendo sdk, ma non so come affrontarlo. Per capire meglio cosa voglio provare, ho disegnato un piccolo schizzo:

--Modifica e soluzione--
- TriggerEnter & -Exit per ottenere oggetti in collisione
- My Sphere/Cube/Whatever ha lo script di manipolazione degli oggetti da mrtk, che ha un evento EndOfManipulation che si attiva, dopo aver posizionato il mio qualunque oggetto.
- Ottenere tutti i meshfilter e le mesh
- Controlla tramite collider.bounds.contains se point è all'interno del mio collider e salva tutti quei punti per creare una nuova mesh tramite il codice da @Pluto .
- La combinazione di mesh in una mesh e il posizionamento è da qualche parte
Risposte
1 Pluto Aug 17 2020 at 23:28
- Ottieni gli indici dei vertici da
spatialMesh
quelli che sono all'interno della sfera ->indicesList
- Dall'array di triangoli di
spatialMesh
ottenere i triangoli che hanno tutti gli indici dei vertici all'internoindicesList
->triangleList
E hai tutto ciò che ti serve per costruire un array di vertici e un array di triangoli per la mesh all'interno della sfera.
Solo come esempio:
for i = 0 to triangleList.Count
newVertices[i] = spatialMesh.vertices[triangleList[i]];
newTriangles[i] = i;