一选择模型顶点
此代码选择Box顶部的4个顶点
thisbox = new Vector2(transform.GetComponent<BoxCollider>().size.x / 2f, transform.GetComponent<BoxCollider>().size.y / 2f);
center = new Vector2(transform.position.x, transform.position.y);
verticepos[0] = new Vector3(center.x + thisbox.x, center.y + thisbox.y, transform.GetComponent<BoxCollider>().size.z/2 + transform.position.z);
verticepos[1] = new Vector3(center.x + thisbox.x, center.y - thisbox.y, transform.GetComponent<BoxCollider>().size.z/2 + transform.position.z);
verticepos[2] = new Vector3(center.x - thisbox.x, center.y - thisbox.y, transform.GetComponent<BoxCollider>().size.z/2 + transform.position.z);
verticepos[3] = new Vector3(center.x - thisbox.x, center.y + thisbox.y, transform.GetComponent<BoxCollider>().size.z/2 + transform.position.z);
二获取旋转后的坐标
此模型可能有旋转可以使用我之前文章的函数对其顶点进行旋转就可以得到坐标 http://t.csdn.cn/OY0S5
verticepos[0] = GetRoatepos(verticepos[0]);
verticepos[1] = GetRoatepos(verticepos[1]);
verticepos[2] = GetRoatepos(verticepos[2]);
verticepos[3] = GetRoatepos(verticepos[3]);
Vector3 GetRoatepos(Vector3 target)
{
GameObject temp = new GameObject();
temp.transform.position = target;
temp.transform.RotateAround(transform.position, Vector3.forward, transform.eulerAngles.z);
temp.transform.RotateAround(transform.position, Vector3.right, transform.eulerAngles.x);
temp.transform.RotateAround(transform.position, Vector3.up, transform.eulerAngles.y);
Vector3 vt = temp.transform.position;
Destroy(temp);
return vt;
}