统一/C#:垂直跳跃前检查速度?

统一/C#:垂直跳跃前检查速度?,c#,unity3d,C#,Unity3d,如何将rb.velocity转换为整数 我试图让如果(rb.velocity

如何将rb.velocity转换为整数


我试图让
如果(rb.velocity<0)
进行跳跃,如果负动量太大,则可以在不做任何跳跃的情况下增加现有动量。

为了使速度达到int,这非常容易

int速度;
//通过绘制总大小x*x+y*y+z*z,我们得到了总速度值
速度=(int)rb.velocity.magnity;

要进行比较,只需执行
if(rb.velocity.y<0)
。这将检查垂直速度是否小于0,这是您真正想要的


但是,我也建议您在每次使用跳跃力之前(或以任何方式进行跳跃)跳跃时设置
rb.velocity=0,以保持一致性。

velocity是一个重要参数。简而言之,它不仅仅是一个简单的数字,而是三个数字的组合(一个代表X、Y和Z)。选择一个你想比较的。这能回答你的问题吗?不抱歉,因为它是一个向量2a)这是它的平方根,b)向量的大小永远不能小于0,这使得它在OPs情况下无法使用。@Franz Gleichman a这是一个例子,b)他需要自己弄清楚,他可以计算出中间值。a)这不是一个例子,这是错误的。简单明了的错误。b) 也许是这样,但这使你的答案实际上毫无用处。@Franzgleichman,不必刻薄:)是的,这是错误的。