有下面3种方式可以获取:
//Scale为(0.01, 0.01, 0.01)
GameObject go = GameObject.Find(parentPath);
Vector3 size_MeshRenderer = go.GetComponent<MeshRenderer>().bounds.size;
Debug.Log("---size_MeshRenderer: " + size_MeshRenderer);
Vector3 size_Collider = go.GetComponent<Collider>().bounds.size;
Debug.Log("---size_Collider: " + size_Collider);
Vector3 size_MeshFilter = go.GetComponent<MeshFilter>().mesh.bounds.size;
Debug.Log("---size_MeshFilter: " + size_MeshFilter);
打印结果如下:
image.png
由此可见:
通过< MeshFilter >获取的是物体的实际大小;
通过< MeshRenderer >和< Collider >获取的事物体的当前大小,使用时,需要除以父物体的scale才是真实大小,而且y和z坐标也是有区别的。
网友评论