对象没有朝着我扔它的方向前进,即使在使用transform.forward时也是如此



我想让玩家扔的手榴弹正好放在我的相机指向的地方,但是,如果我面朝下,手榴弹不会直接向前扔,如下面的视频所示:

https://streamable.com/dqjq4z

这是投掷手榴弹的功能:

private void Yeet()
{
GameObject grenade = Instantiate(wm_equipment, FPSCamera.transform.position, Quaternion.identity);
grenade.GetComponent<Grenade>().delay = delay;
Rigidbody rb = grenade.GetComponent<Rigidbody>();
Vector3 forward = FPSCamera.transform.forward;
rb.AddForce(forward * throwForce, ForceMode.VelocityChange);
}

我用玩家相机的前向矢量来判断手榴弹应该朝哪个方向扔。然而,在这种情况下,它似乎不起作用。不确定我在这种情况下做错了什么,如果有任何帮助,我们将不胜感激。

手榴弹的对撞机确实与玩家的对撞机发生了碰撞,因此导致了它的行为。

通过向生成点添加正向偏移修复:

GameObject grenade = Instantiate(
wm_equipment,
FPSCamera.transform.position + FPSCamera.transform.forward,  // <-----
Quaternion.identity);

感谢所有回答这个问题的人

我不确定这是否会100%起作用。抱歉,如果不是,但也许可以尝试:

Vector3 forward = transform.position + FPSCamera.transform.forward;

最新更新