U3d中獲取模型的大小

在u3d中你可能會糾結於,一個有模型的遊戲對象它究竟是多大,如何才能獲得它確切的大小值。 spa

廢話很少說下給出它的求解過程: .net

 一、經過mesh.bounds.size 能夠拿到模型對應三個軸向的大小 3d

 二、可是模型是能夠縮放的,因此真實的模型高度應當是原始高度乘以縮放係數才行。經過 transform.lossyScale能夠拿到模型對應三個軸向的縮放係數。 code

代碼以下: orm

[csharp]  view plain copy
  1. /// <summary>  
  2. /// 獲取遊戲對象的大小  
  3. /// </summary>  
  4. /// <returns>  
  5. /// The size.  
  6. /// </returns>  
  7. Vector3 GetObjectSize()  
  8. {  
  9.     Vector3 realSize = Vector3.zero;  
  10.       
  11.     Mesh mesh = GetComponent<MeshFilter>().mesh;  
  12.     if(mesh==null)  
  13.     {  
  14.         return realSize;  
  15.     }  
  16.     // 它模型網格的大小  
  17.     Vector3 meshSize = mesh.bounds.size;          
  18.     // 它的放縮  
  19.     Vector3 scale = transform.lossyScale;  
  20.     // 它在遊戲中的實際大小  
  21.     realSize = new Vector3(meshSize.x*scale.x, meshSize.y*scale.y, meshSize.z*scale.z);  
  22.       
  23.     return realSize;  
  24. }  
相關文章
相關標籤/搜索