前言
在学习Vector3和Transform之前需要先了解一下Unity坐标系:
在Unity中有很多坐标系,诸如世界坐标系、局部坐标系、屏幕坐标系、视口坐标系等等,这些坐标系往往会给我带来很大的困扰,但又缺一不可。比如当你需要获取鼠标在世界坐标的位置时,你就需要明白什么是世界坐标和屏幕坐标,以及两者如何转换。
一、坐标系
参考视频:Unity的各种坐标系
1、分类
1)世界坐标
当你从Unity中新建了一个物体对象,它所具有的Transform参数所采用的就是世界坐标系,该坐标系分为左手坐标系和右手坐标系,其中如图所示。其中左手坐标系就是Unity中的世界坐标系,也就是Z轴为正,X轴为右,Y轴为上,而右手坐标系在数学中更加常用。
Unity中一个物体的坐标信息,通过Transform.position来存储,它是一个Vector3变量,是一个三维向量,存储了XYZ的信息。
在Unity中,可通过Transform.forward来表示正方向,Vector3.forward也可以表示正方向,这两者的区别在于:
Vector3.forward的值永远是(0,0,1),而transform.forward的值则是根据当前物体的自身坐标系Z轴,不一定等于(0,0,1) 怎么理解呢,举个例子:
首先一个物体的transform.position,一定是该物体在世界坐标的位置,相应的transform.localPosition才是该物体的局部坐标,那么transform += Vect