(转载)Unity3D:获取GameObject的size

小菜鸟 2021-11-04 AM 1477℃ 0条

1.Renderer:渲染尺寸,受缩放影响,受旋转影响。3D图像投影在2D平面上的尺寸
2.MeshFilter:原始尺寸,不受缩放影响

计算真实的size:需要乘以localScale

如:gameObject.GetComponent<MeshFilter>().mesh.bounds.size.x*gameObject.transform.localScale.x
3.Collider:碰撞体尺寸,受缩放影响,受旋转影响。3D图像投影在2D平面上的尺寸

void onClick_scale_percent(){
//       stlObjects [0].clingToBottom ();

        GameObject cube = GameObject.CreatePrimitive (PrimitiveType.Cube);
        Debug.LogError ("cube Renderer size:"+cube.GetComponent<Renderer>().bounds.size);//default:1,1,1
        Debug.LogError ("cube MeshFilter size:"+cube.GetComponent<MeshFilter>().mesh.bounds.size);
        Debug.LogError ("cube collider size:"+cube.GetComponent<Collider>().bounds.size);

        cube.transform.parent = go_printCuber.transform;
        cube.transform.localPosition = new Vector3 (0, 0, 0);
        cube.transform.localScale = new Vector3 (0.5f, 0.5f, 0.5f);

        cube.transform.Rotate (0, 45, 0);

        Debug.LogError ("-------------------");
        Debug.LogError ("cube Renderer size:"+cube.GetComponent<Renderer>().bounds.size);
        Debug.LogError ("cube MeshFilter size:"+cube.GetComponent<MeshFilter>().mesh.bounds.size);
        Debug.LogError ("cube collider size:"+cube.GetComponent<Collider>().bounds.size);

        Debug.LogError ("cube localScale:"+cube.transform.localScale);//default:1,1,1
}

转自:https://www.cnblogs.com/makebetter/p/6734763.html

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~