Dapatkan semua segitiga mesh dalam suatu objek

Aug 18 2020

Saya ingin berinteraksi dengan peta spasial / mesh yang saya akses melalui mrtk. Saya ingin membuat instance bola pada posisi kursor dan mendapatkan setiap segitiga jaring spasial yang ada di dalam bola, jadi saya bisa memotongnya dan menyimpannya untuk saya . Saya tahu cara membuat instance dan memposisikan bola dan saya tahu cara mendapatkan mesh spasial melalui sdk pemahaman adegan, tetapi saya tidak tahu cara melakukan pendekatan ini. Untuk lebih memahami apa yang ingin saya coba, saya telah menggambar sketsa kecil:

--Edit & Solusi--

  1. TriggerEnter & -Exit untuk mendapatkan objek bertabrakan
  2. Sphere / Cube / Apapun yang memiliki skrip manipulasi objek dari mrtk, yang memiliki event EndOfManipulation yang terpicu, setelah menempatkan objek apa pun.
  3. Mendapatkan semua meshfilter dan meshes
  4. Periksa melalui collider.bounds.contains jika titik ada di dalam collider saya dan simpan semua titik tersebut untuk membuat mesh baru melalui kode dari @Pluto .
  5. Menggabungkan mesh menjadi satu mesh dan menempatkannya di suatu tempat

Jawaban

1 Pluto Aug 17 2020 at 23:28
  • Dapatkan indeks simpul dari spatialMeshyang ada di dalam bola ->indicesList
  • Dari array segitiga spatialMeshdapatkan segitiga yang memiliki semua indeks simpul di dalamnya indicesList->triangleList

Dan Anda memiliki semua yang Anda butuhkan untuk membuat larik simpul dan larik segitiga untuk jaring elemen di dalam bola.

Sebagai contoh:

for i = 0 to triangleList.Count
    newVertices[i] = spatialMesh.vertices[triangleList[i]];
    newTriangles[i] = i;