U1L7-1——Vector3基础

Vector3

Vector3​ 是一个结构体,主要是用来表示三维坐标系的一个点 或者一个向量
Unity 内部使用该结构传递 3D 位置和方向。 此外,它还包含用于执行常见向量操作的函数。
学了这个以后,就可以对Unity内的三维空间的各种对象的位置进行操作了

对于Vector3的更多内容,在Vector3向量里看

Unity的坐标系如下图:

image

本章代码关键字

1
2
3
4
5
6
7
8
9
10
11
Vector3            //主要是用来表示三维坐标系的一个点或者一个向量的结构体
new Vector3(, , ) //Vector3的一个构造函数,三个参数对应在三维坐标系的点或者向量的坐标
.x .y .z //Vector3的三个成员变量,对应该点或者向量在各坐标轴的位置
Vector3.zero //对应三维坐标系的(0, 0, 0)
Vector3.right //对应三维坐标系的(1, 0, 0)
Vector3.left //对应三维坐标系的(-1, 0, 0)
Vector3.forward //对应三维坐标系的(0, 0, 1),这个方向非常重要,所有的3D建模都要求以z轴正方向为面朝向
Vector3.back //对应三维坐标系的(0, 0, -1)
Vector3.up //对应三维坐标系的(0, 1, 0)
Vector3.down //对应三维坐标系的(0, -1, 0)
Vector3.Distance(, ) //计算两个点之间距离的方法

申明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//申明
Vector3 v = new Vector3();
v.x = 10;
v.y = 10;
v.z = 10;
//只传xy 默认z是0
Vector3 v2 = new Vector3(10, 10);
//一步到位
Vector3 v3 = new Vector3(10, 10, 10);

Vector3 v4;
v4.x = 10;
v4.y = 10;
v4.z = 10;

基本计算

1
2
3
4
5
6
7
8
9
10
//Vector的基本计算
// + - * /
Vector3 v1 = new Vector3(1, 1, 1);
Vector3 v12 = new Vector3(2, 2, 2);
//+-就是用对应的x1 +- x2 , y1 +- y2 , z1 +- z2
print(v1 + v12);
print(v1 - v12);
// * / 就是用对应的数乘除(Vector3之间不能相互乘除)
print(v1 * 10);
print(v12 / 2);

对于它们的几何意义,可以看这里向量加减乘除的几何意义

常用坐标或单位向量

原点(0,0,0)

1
Vector3.zero;

右(1,0,0)

1
Vector3.right;

左(-1,0,0)

1
Vector3.left;

上(0,1,0)

1
Vector3.up;

下(0,-1,0)

1
Vector3.down;

前(0,0,1)

1
Vector3.forward;

后(0,0,-1)

1
Vector3.back;

计算两点距离

1
Vector3.Distance(v1, v12);