Transform类的一些应用

本文是跟着唐老狮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);

猜你喜欢

转载自blog.csdn.net/m0_73113333/article/details/142689364