rigidbody.velocity 不适用于变换。向上

问题描述 投票:0回答:1

here is the direction of transform.up seen in debug

full code

code for the jumping script, but character is jumping straight up, even with the direction, jump force is normal float

unity prefab

unity prefab

我已多次检查旋转是否由刚体加载并且旋转未冻结。但它会直接跳起来。还尝试看看刚体上的睡眠模式是否是问题所在,但似乎并非如此。

我在多次搜索中查找了这一点,甚至统一文档也有这种方法; https://docs.unity3d.com/ScriptReference/Transform-up.html,所以我忍不住认为这是统一以及我如何拥有精灵的问题。

unity-game-engine vector rotation
1个回答
0
投票

update() 中的第一行代码打破了你的跳转方向:

body.velocity = Vector2(Input.Axis("Horizontal") * speed, body.velocity.y)

这意味着,如果你不按水平移动按钮,你将每帧将velocity.x设置为0。

要解决此问题,您可以将速度添加到现有速度值:

body.velocity += Vector2.right * (Input.Axis("Horizontal") * speed);
© www.soinside.com 2019 - 2024. All rights reserved.