Unity3D獲取模型在運動中任意幀的頂點坐標


 1 public SkinnedMeshRenderer rendererBody;
 2 Mesh mesh;
 3 
 4 private void Awake()
 5 {
 6     Instance = this;
 7 
 8     mesh = new Mesh();
 9 }
10 
11 public Vector3[] GetMeshBodyWorldPoint()
12 {
13     Vector3[] v3s = null;
14     if (rendererBody != null)
15     {
16         //這里是關鍵,將一個蒙皮動畫的某個時間點上的動作,Bake成一個不帶蒙皮的Mesh
17         rendererBody.BakeMesh(mesh);
18         int count = mesh.vertexCount;
19         v3s = new Vector3[count];
20         Vector3[] meshv3s = mesh.vertices;
21         for (int i = 0; i < count; i++)
22         {
23             v3s[i] = transform.TransformPoint(meshv3s[i]);
24         }
25     }
26     return v3s;
27 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM