在u3d中你可能會糾結於,一個有模型的遊戲對象它究竟是多大,如何才能獲得它確切的大小值。 spa
廢話很少說下給出它的求解過程: .net
一、經過mesh.bounds.size 能夠拿到模型對應三個軸向的大小 3d
二、可是模型是能夠縮放的,因此真實的模型高度應當是原始高度乘以縮放係數才行。經過 transform.lossyScale能夠拿到模型對應三個軸向的縮放係數。 code
代碼以下: orm
- /// <summary>
- /// 獲取遊戲對象的大小
- /// </summary>
- /// <returns>
- /// The size.
- /// </returns>
- Vector3 GetObjectSize()
- {
- Vector3 realSize = Vector3.zero;
-
- Mesh mesh = GetComponent<MeshFilter>().mesh;
- if(mesh==null)
- {
- return realSize;
- }
- // 它模型網格的大小
- Vector3 meshSize = mesh.bounds.size;
- // 它的放縮
- Vector3 scale = transform.lossyScale;
- // 它在遊戲中的實際大小
- realSize = new Vector3(meshSize.x*scale.x, meshSize.y*scale.y, meshSize.z*scale.z);
-
- return realSize;
- }