Obter todos os triângulos de uma malha dentro de um objeto
Aug 18 2020
Desejo interagir com o mapa/malha espacial ao qual tenho acesso via mrtk. Quero instanciar uma esfera na posição do cursor e obter cada triângulo da malha espacial que está dentro da esfera, para que eu possa cortá-lo e salvá-lo para mim . Eu sei como instanciar e posicionar a esfera e sei como obter a malha espacial por meio do sdk de entendimento da cena, mas não sei como abordar isso. Para entender melhor o que quero tentar, desenhei um pequeno esboço:

--Editar e Solução--
- TriggerEnter & -Exit para obter objetos colididos
- My Sphere/Cube/Whatever possui o script de manipulação de objetos do mrtk, que possui um evento EndOfManipulation que é acionado, após colocar meu objeto Whatever.
- Obtendo todos os meshfilter e meshes
- Verifique via collider.bounds.contains se o ponto está dentro do meu colisor e salve todos esses pontos para criar uma nova malha por meio do código de @Pluto .
- Combinando malhas em uma malha e colocando em algum lugar
Respostas
1 Pluto Aug 17 2020 at 23:28
- Obtenha os índices dos vértices
spatialMesh
que estão dentro da esfera ->indicesList
- Da matriz de triângulos,
spatialMesh
obtenha os triângulos que possuem todos os índices de vértice dentroindicesList
->triangleList
E você tem tudo o que precisa para construir uma matriz de vértices e uma matriz de triângulos para a malha dentro da esfera.
Apenas como exemplo:
for i = 0 to triangleList.Count
newVertices[i] = spatialMesh.vertices[triangleList[i]];
newTriangles[i] = i;
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas