跟随youtube上关于fpp播放器运动/相机运动的教程,我得到了这个令人沮丧的错误



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乘以一个数字。但是你可以将两个向量相加或者相减。谢谢,希望能帮到你。

最新更新