U3d中获取模型的大小

这是个学习摘录:

在u3d中你可能会纠结于,一个有模型的游戏对象它到底是多大,如何才能得到它确切的大小值。

废话不多说下给出它的求解过程:

 1、通过mesh.bounds.size 可以拿到模型对应三个轴向的大小

 2、但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。通过 transform.lossyScale可以拿到模型对应三个轴向的缩放系数。

代码如下:

    ///   
    /// 获取游戏对象的大小  
    ///   
    ///   
    /// The size.  
    ///   
    Vector3 GetObjectSize()  
    {  
        Vector3 realSize = Vector3.zero;  
          
        Mesh mesh = GetComponent().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;  
    }  

原文地址:http://blog.csdn.net/anyuanlzh/article/details/8233151

你可能感兴趣的:(Unity3d,Model学习日志)