首页 > 解决方案 > 如何让弹丸直出?

问题描述

所以我正在制作一个程序来从敌人的 npc 发射弹丸(不是我自己的程序,它来自 youtube 视频),它们只会在某些方向上向前射出。这是我的程序:agent.SetDestination(transform.position);

    transform.LookAt(player);
    if (!alreadyAttacked)
    {
        alreadyAttacked = true;
        Invoke(nameof(ResetAttack), timeBetweenAttacks);
        
        //Attack settings
        Rigidbody rb = Instantiate(projectile, transform.position, Quaternion.identity).GetComponent<Rigidbody>();
        rb.AddRelativeForce(transform.forward * 32f, ForceMode.Impulse);

难道我做错了什么?如果这会改变任何东西,那么发射弹丸的敌人也是一个 1x1x1 胶囊。

标签: unity3d

解决方案


AddRelativeForce 在本地空间中,所以如果你传递 Vector3.forward 它将是它所附加的刚体对象的正向。相反, transform.forward 在世界空间中。你可以在这里阅读更多。如果你想使用 AddRelativeForce 试试这个,

rb.AddRelativeForce(Vector3.forward * 32f, ForceMode.Impulse);

推荐阅读