1.打开Uinty,创建一个立方体(Cube)
2.新建一个脚本命名为:CubePoint.cs
3.新建以下代码
public class PointCube: MonoBehaviour
{//立方体的大小public Vector3 size = new Vector3(1, 1, 1);//第一个坐标点public Vector3 point1;public Vector3 point2;public Vector3 point3;public Vector3 point4;public Vector3 point5;public Vector3 point6;public Vector3 point7;public Vector3 point8;//在选中对象时会调用此函数private void OnDrawGizmos(){//先绘制矩形的线段来确定点是否对应了矩形的大小Gizmos.color = Color.green;Gizmos.DrawWireCube(transform.position, size);//计算点一point1.x = (size.x / 2) + transform.position.x;point1.y = (size.y / 2) + transform.position.y;point1.z = (size.z / 2) + transform.position.z;point2.x = (size.x / 2) + transform.position.x;point2.y = (size.y / 2) + transform.position.y;point2.z = (size.z / 2 * -1) + transform.position.z;point3.x = (size.x / 2 * -1) + transform.position.x;point3.y = (size.y / 2) + transform.position.y;point3.z = (size.z / 2) + transform.position.z;point4.x = (size.x / 2 * -1) + transform.position.x;point4.y = (size.y / 2) + transform.position.y;point4.z = (size.z / 2 * -1) + transform.position.z;point5.x = (size.x / 2 ) + transform.position.x;point5.y = (size.y / 2*-1) + transform.position.y;point5.z = (size.z / 2 ) + transform.position.z;point6.x = (size.x / 2) + transform.position.x;point6.y = (size.y / 2*-1) + transform.position.y;point6.z = (size.z / 2 * -1) + transform.position.z;point7.x = (size.x / 2 * -1) + transform.position.x;point7.y = (size.y / 2*-1) + transform.position.y;point7.z = (size.z / 2) + transform.position.z;point8.x = (size.x / 2 * -1) + transform.position.x;point8.y = (size.y / 2*-1) + transform.position.y;point8.z = (size.z / 2 * -1) + transform.position.z;//绘制所有点Gizmos.color = Color.red;Gizmos.DrawSphere(point1, 0.1f);Gizmos.color = Color.blue;Gizmos.DrawSphere(point2, 0.1f);Gizmos.color = Color.yellow;Gizmos.DrawSphere(point3, 0.1f);Gizmos.color = Color.gray;Gizmos.DrawSphere(point4, 0.1f);Gizmos.color = Color.red;Gizmos.DrawSphere(point5, 0.1f);Gizmos.color = Color.blue;Gizmos.DrawSphere(point6, 0.1f);Gizmos.color = Color.yellow;Gizmos.DrawSphere(point7, 0.1f);Gizmos.color = Color.gray;Gizmos.DrawSphere(point8, 0.1f);}
}
代码解释:
size:每个矩形都会有大小特点,此时新建变量size来确定矩形的大小。
将任意的一个物体的Z轴定义为其长度,X轴为其宽度,Y轴为其高度。
opint1(点一)的计算公式:
x=(宽度÷2)+中心点位置的X轴
y=(高度÷2)+中心点位置的Y轴
z=(长度÷2)+中心点位置的Z轴
点一的公式统一为先得到矩形的半径,再加上中心位置,得到其向量坐标;
知道了点一的计算公式,其它点就好办了。其余点全部取其对点关系。
opint2(点二)的计算公式:
x=(宽度÷2)+中心点位置的X轴
y=(高度÷2)+中心点位置的Y轴
z=(长度÷2*-1)+中心点位置的Z轴
直接将点二的Z轴乘-1,让它与点一形成对点关系。
opint3(点三)的计算公式:
x=(宽度÷2*-1)+中心点位置的X轴
y=(高度÷2)+中心点位置的Y轴
z=(长度÷2)+中心点位置的Z轴
将点三的X轴乘-1,让它与点二形成对点关系。
opint4(点四)的计算公式:
x=(宽度÷2*-1)+中心点位置的X轴
y=(高度÷2)+中心点位置的Y轴
z=(长度÷2*-1)+中心点位置的Z轴
将点三的XY轴分别乘-1,让它与点二点三形成对点关系。
知道了1.2.3.4个点的计算公式那么5.6.7.8的点就好计算了,将5.6.7.8四个点所有Y轴全部乘-1让其形成上下关系。
通过以上计算,由此可以看出,一个矩形的在空间中八个点的位置都是成反比关系。并且可以看出1.2.3.4的Y轴与5.6.7.8的Y轴成反比关系。