文章目录

Vector 是向量,矢量的意思,向量既有大小,又有方向,Verctor3 就是三维向量,一个三维向量会有三个分量,分别是 x,y,z,在 Unity 中每一个游戏对象都至少会有一个组件叫 Transform,Transform 主要用来控制游戏对象的位置,旋转和缩放。
新建一个 Cube 物体,然后给这个 Cube 物体新建一个脚本。
Vector3 其实就是一个类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

// Use this for initialization

void Start () {
Vector3 v = new Vector3 ();

float x = v.x;
float y = v.y;
float z = v.z;

// 获取 V 的单位向量
// V 的长度会变为 1 但方向不变
v.Normalize ();
// 返回 V 方向上的单位向量,但是 V本身不会发生变化
v.normalized;
// 获取 V 的长度
float l = v.magnitude;

// x = 0,y = 1, z = 0
Vector3.up; // 表示世界坐标系中 Y 轴正方向上的单位向量
// x = 0,y = -1, z = 0
Vector3.down; // 表示世界坐标系中 Y 轴负方向上的单位向量
// x = -1,y = 0, z = 0
Vector3.left; // 表示世界坐标系中 X 轴负方向上的单位向量
// x = 1,y = 0, z = 0
Vector3.right; // 表示世界坐标系中 X 轴正方向上的单位向量
// x = 0,y = 0, z = 1
Vector3.forward; // 表示世界坐标系中 Z 轴正方向上的单位向量
// x = 0,y = 0, z = -1
Vector3.back; // 表示世界坐标系中 Z 轴负方向上的单位向量

Vector3.zero; // 表示原点

Vector3 v1 = new Vector3 (1.5f, 1.0f, 1.0f);
Vector3 v2 = new Vector3 (1.0f, 1.5f, 1.5f);
// 求两个向量的夹角
float angle = Vector3.Angle (v1, v2);

Vector3 pos1 = new Vector3 (4.0f, 2.0f, 1.0f);
Vector3 pos2 = new Vector3 (2.0f, 4.0f, 1.0f);
// 获取两个点的距离
float distance = Vector3.Distance(pos1, pos2);
// 向量的点乘
float dd = Vector3.Dot (v1, v2);
// 向量叉乘
Vector3 vc = Vector3.Cross (v1, v2);
}
// Update is called once per frame
void Update () {

}
}
文章目录