Unity 3D 机器人无法正确跟随玩家

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

我的场景中有两个带有盒子碰撞器的 3D 刚体机器人。这是我在其中一个上的脚本,用于跟随另一个(不旋转)并推动它:

public class BotFollowSwerve : MonoBehaviour
{
    public Transform target;
    public float force = 10f;

    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        Vector3 targetDirection = (target.position - transform.position).normalized;

        rb.AddForce(targetDirection * force, ForceMode.Force);
    }
}

另一个机器人由玩家控制,可以旋转和移动。问题是,当玩家背对跟随机器人时,跟随机器人只会将自己排成距玩家机器人约 2 个机器人长度的距离,并开始在原地进行振动/绕圈移动。如果我移动玩家机器人而不旋转它 - 跟随者会跟随它,但保持距离。如果我旋转回跟随者,它的正常跟随和猛击会再次开始。

我试图查看

targetDirection
是否最终为零,因此除了值偶尔波动之外,机器人不会移动。但这似乎并没有产生任何结果。

c# unity-game-engine 3d game-physics
1个回答
0
投票

我建议您使用 Navmesh,因为它非常容易为 AI 设置,并且可以为您完成大部分工作。 在此输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.