Assets playermotion .cs(22,28):错误CS0019:运算符'<'不能应用于'Vector3'和'int'类型的操作数
请帮助if (isGrounded && velocity < 0)
{
velocity.y = -2f;
}
在这种情况下,velocity
是包含三个数字(x, y和z值)的Vector3
,它们表示3D空间中的速度和方向,而不是单个数字表示物体的运动速度。
如果你想要一个单一的数字来表示对象的当前速度(本质上是向量的长度),你可以使用velocity.magnitude
:
if (isGrounded && velocity.magnitude < 0)
{
velocity.y = -2f;
}
然而,这在这种情况下是没有意义的,因为大小永远不会小于0(比静止速度慢)。我想你可能想要做的是检查物体在Y轴上的速度——也就是说,物体是否在向下运动。为此,对if
语句使用velocity.y
:
if (isGrounded && velocity.y < 0)
{
velocity.y = -2f;
}
Unity只支持Vector3乘以一个数字。但是你可以将两个向量相加或者相减。谢谢,希望能帮到你。