本文是跟着唐老狮unity入门课程整理的笔记,是为了自己以后复习温故用的。
Transform的作用是什么?
游戏对象(GameObject) 位移、旋转)缩放、父子关系、坐标转换等相关操作都由它来处理。
他是unity提供的极其重要的类。
Vector3基础
Vector3 用来表示三维坐标系中的 一个点 或者 一个向量。
Vector3 --- unity声明好的一个 结构体。
它包含了三个浮点数(float)分量,分别代表 X、Y 和 Z 轴上的坐标或方向。
声明一个点
// 声明一个点
Vector3 v = new Vector3();
v.x = 10;
v.y = 10;
v.z = 10;
// 另一种方法 -- 一步到位(最常用)
Vector3 v1 = new Vector3(0, 0, 0);
// 只传x 和y 的值,z默认为0
Vector3 v2 = new Vector3(1, 2);
// 可以不new -- Vector3是值类型 它直接存储数据,而不是数据的引用
Vector3 v3;
v3.x = 10;
v3.y = 20;
v3.z = 20;
Vector3的基本操作
Vector3 vt1 = new Vector3(1, 1, 1);
Vector3 vt2 = new Vector3(2, 2, 2);
// 加减乘除都是对应的xyz值进行加减乘除
print(vt1 + vt2); // (3,3,3)
print(vt1 - vt2); // (-1,-1,-1)
print(vt1 * 2); // (2,2,2)
print(vt1 / 2); // (1/2,1/2,1/2)
Vector3的一些常用内容
// 常用内容
/* Vector3.zero --- 表示点(0,0,0)
*
* 左右
* Vector3.right ---- 表示点(1,0,0) x轴正方向
* Vector3.left --- 表示点(-1,1,0) x轴负方向
*
* 前后
* Vector3.forward --- 表示点(0,0,1) z轴正方向
* Vector3.back --- 表示点(0,0,-1) z轴负方向
*
* 上下
* Vector3.up --- 表示点(0,1,0) y轴正方向
* Vector3.down --- 表示点(0,-1,0) y轴负方向
*/
// 常用的方法--- 计算两个点之间的距离
print(Vector3.Distance(v, v3)); // Disrance方法中,要传入两个位置
位移相关操作 ---- API ---- Translate
// 自己写
// API --- Translate
// 朝自己的面朝向移动(一定不会这样让物体移动,这是错误的)
transform.Translate(transform.forward * 1 * Time.deltaTime,Space.Self);
// 相对于世界坐标,朝自己的面朝向移动
transform.Translate(transform.forward * 1 * Time.deltaTime, Space.World);
// 相对于自己的坐标系 下的 z轴正方向移动 始终朝自己的面朝向移动
transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.Self);
// 相对于世界坐标系的 z轴 动 始终朝 世界坐标系的Z轴正方向移动
transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.World);