Vector3
用于 3D 数学的向量。
描述
可用于表示 3D 空间中的位置或任何其他数值对的 3 元素结构。
注意: 在布尔上下文中,如果 Vector3 等于 Vector3(0, 0, 0)
,将评估为 false
。否则, Vector3 将始终评估为 true
。
教程
属性
| ||
| ||
|
方法
abs ( ) | |
ceil ( ) | |
cubic_interpolate ( Vector3 b, Vector3 pre_a, Vector3 post_b, float weight ) | |
direction_to ( Vector3 b ) | |
distance_squared_to ( Vector3 b ) | |
distance_to ( Vector3 b ) | |
floor ( ) | |
inverse ( ) | |
is_equal_approx ( Vector3 v ) | |
is_normalized ( ) | |
length ( ) | |
length_squared ( ) | |
limit_length ( float length=1.0 ) | |
linear_interpolate ( Vector3 to, float weight ) | |
max_axis ( ) | |
min_axis ( ) | |
move_toward ( Vector3 to, float delta ) | |
normalized ( ) | |
round ( ) | |
sign ( ) | |
signed_angle_to ( Vector3 to, Vector3 axis ) | |
常量
ZERO = Vector3( 0, 0, 0 ) —- 零向量,所有分量都设置为
0
的向量。ONE = Vector3( 1, 1, 1 ) —- 一向量,所有分量都设置为
1
的向量。INF = Vector3( inf, inf, inf ) —- 无穷大向量,所有分量都设置为 @GDScript.INF 的向量。
LEFT = Vector3( -1, 0, 0 ) —- 左单位向量。代表局部的左方向,全局的西方向。
RIGHT = Vector3( 1, 0, 0 ) —- 右单位向量。代表局部的右方向,全局的东方向。
UP = Vector3( 0, 1, 0 ) —- 上单位向量。
DOWN = Vector3( 0, -1, 0 ) —- 下单位向量。
FORWARD = Vector3( 0, 0, -1 ) —- 前单位向量。代表局部的前方向,全局的北方向。
BACK = Vector3( 0, 0, 1 ) —- 后单位向量。代表局部的后方向,全局的南方向。
属性说明
- float x
Default |
|
向量的 X 分量。也可以通过使用索引位置 [0]
访问。
- float y
Default |
|
向量的 Y 分量。也可以通过使用索引位置 [1]
访问。
- float z
Default |
|
向量的Z分量。也可以通过使用索引位置[2]
访问。
方法说明
返回具有给定分量的Vector3。
- Vector3 abs ( )
返回一个新的向量,其所有分量都是绝对值,即正值。
返回与给定向量的无符号最小角度,单位为弧度。
返回从由给定法线定义的平面上“反弹”的向量。
- Vector3 ceil ( )
返回一个新的向量,所有的分量都是四舍五入的,向正无穷大。
返回此向量与 b
的叉积。
在向量pre_a
, a
, b
, post_b
(a
是当前的)之间,通过给定的量weight
进行三次插值。weight
的范围是0.0到1.0,表示插值的数量。
返回从这个向量指向b
的归一化向量。这相当于使用(b-a).normalized()
。
返回这个向量与b
之间的平方距离。
这个方法比distance_to运行得更快,所以如果你需要比较向量或需要一些公式的平方距离,则更喜欢它。
返回此向量与b
之间的距离。
返回此向量与b
的点积。这可以用来比较两个向量之间的角度。例如,这可以用来确定一个敌人是否正面对玩家。
对于直角90度,点积将是0
,对于窄于90度的角度,点积大于0,对于宽于90度的角度,点积小于0。
当使用归一化单位向量,向量朝向相反方向时,结果总是在-1.0
(180度角)和1.0
(0度角)之间,当向量对齐。
注意:a.dot(b)
等同于b.dot(a)
。
- Vector3 floor ( )
返回一个新的向量,所有的向量都被四舍五入,向负无穷大。
- Vector3 inverse ( )
返回向量的反值。这与Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )
相同。
通过对每个分量运行@GDScript.is_equal_approx,如果这个向量和v
近似相等,返回true
。
- bool is_normalized ( )
如果向量被归一化,返回true
,否则返回false
。
- float length ( )
返回这个向量的长度,即大小。
- float length_squared ( )
返回这个向量的平方长度,即平方大小。
这个方法比length运行得更快,所以如果你需要比较向量或需要一些公式的平方距离时,更喜欢用它。
通过限制其长度为length
,返回具有最大长度的向量。
返回这个向量与to
之间的线性插值的结果,插值量为t
。weight
的范围是0.0到1.0,表示插值的数量。
- int max_axis ( )
返回向量的最大值的轴。参阅AXIS_*
常量。如果所有分量都相等,该方法返回AXIS_X。
- int min_axis ( )
返回矢量的最小值的轴。参阅AXIS_*
常量。如果所有分量都相等,本方法返回AXIS_Z。
将此向量向to
移动,以固定delta
量。
- Vector3 normalized ( )
返回缩放为单位长度的向量。相当于v/v.length()
。
返回与 b
的外积。
返回一个由这个向量分量的@GDScript.fposmod和mod
组成的向量。
返回一个由这个向量的modv
分量和@GDScript.fposmod分量组成的向量。
返回这个向量投射到另一个向量b
上的结果。
返回从给定法线定义的平面上反射的向量。
将此向量绕给定的轴旋转phi
弧度。该轴必须是归一化的矢量。
- Vector3 round ( )
返回这个向量的所有分量都被四舍五入为最接近的整数,中间情况下四舍五入为零。
- Vector3 sign ( )
返回一个向量,每个分量设置为1或负1,取决于这个向量的分量的符号。如果分量为0,则返回正1。
返回给定向量的带符号的角度,单位是弧度。当从axis
指定的一侧看,该角度的符号在逆时针方向是正的,在顺时针方向是负的。
返回这个向量与to
之间的球面线性插值的结果,按weight
的数量。weight
的范围是0.0到1.0,表示插值的数量。
注意:两个向量都必须被归一化。
返回沿着由给定法线定义的平面滑动的向量。
返回这个向量,每个分量都捕捉到step
的最近倍数。这也可以用来四舍五入到任意数量的小数。
- Basis to_diagonal_matrix ( )
返回一个以该向量为主对角线的对角线矩阵。
这相当于一个没有旋转或剪切的Basis,这个向量的分量被设定为缩放。