Unity中的Vector2和Vector3是什么?

5

题目已经说明了一切。如果是用于运动脚本,我经常看到它们的使用。什么是Vector2和Vector3?对于新手来说,Unity文档有点难以理解。


1
这是一个基础介绍。向量主要用于表示方向。或者在力的情况下 - 方向和大小。我建议您在数学网站上咨询或在Unity之外学习向量。这将是有价值的。 - Reasurria
3个回答

10

向量是数学模型,既可以描述方向也可以描述大小。Vector2是二维的,而Vector3是三维的。

向量(1,5)表示的是一个方向,x轴上占1/6,y轴上占5/6。例如,向右移动1/6,向上移动5/6。如果加上负号,则表示向左和向下移动。

大小表示方向的“强度”。例如,在使用力和物理学时,沿着Vector2 (1,0)的推力比 Vector2 (100,0) 小得多,尽管方向相同。

以上就是基本的理论介绍。


7

Vector基本上是一个带有方向:这个被称为向量的大小,而方向被称为标准化向量。

Vector使用其分量来表示:向量在每个上的投影被称为向量的分量

enter image description here

一个 Vector1 有一个一维的方向,就像线上的一个点、方向盘的值或任何实数。例如 (0) 或 (-1000)。一个 Vector1 的大小等于该向量的 x 分量的绝对值或 sqrt(x^2)

enter image description here

Vector2拥有二维方向,就像2D空间中的xy点,或者游戏手柄杆的位置,或2D纹理上点的uv偏移量。例如(0,0)或(-1,100)Vector2的大小等于sqrt(x^2+y^2)

enter image description here

一个 Vector3 拥有一个三维方向,就像在三维空间中的 xyz 点、RGB 格式中的颜色或一组三个数字。例如 (0,0,0) 或 (-0.1, 3.14, 30)。一个 Vector3 的大小等于 sqrt(x^2+y^2+z^2)

enter image description here

Vector4是一个具有四维方向的对象,类似于4D空间中的xyzw点、RGBA格式的颜色或一组四个数字。例如(0,0,0,0)或(0.1, 0.2, 0.3, 0.4)。 Vector4的大小等于sqrt(x^2+y^2+z^2+w^2)

enter image description here


例如,在2D游戏中,如果我想让一个角色跳跃,我会使用Vector3的z轴吗? - falcononpc
1
在2D游戏中,您的游戏对象将在2D空间(x,y)中移动,并且您需要一个“vector2”来实现这一点(跳跃操作会操作Y)。并将“vector2”分配给“transform.position”,它是一个“vector3”,自动将其转换为一个z等于0的“vector3”。 - Bizhan
在一个二维游戏中,z代表深度。@idk - Bizhan
这值得更多的关注,这是一个很好的解释! - LavaTime

-1

Vector2

Vector2是二维向量和点的表示,用于表示二维位置,仅有两个轴x和y。

代码示例

正值

Debug.log(new Vector2(1, 2) - new Vector2(3, 2));

负值

print(-new Vector2(1, 2));

Vector3

Vector3是三维向量和点的表示,用于表示三维位置,考虑x、y和z轴。

代码示例

Vector3 offset = transform.position - player.transform.position;

1.transform.Translate(Vector3.forward * Time.deltaTime * speed)

  1. Debug.Log(Cube.transform.rotation) //cube是Gameobject

The Vector 3D response


3
值得解释一下,向量并不真正代表点,但是根据你对它们进行的数学运算,它们可以像点一样被处理。 - Prodigle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接