首页 > 解决方案 > 如何在 Unity 中为 3D“飞行”敌人创建 NavMeshAgent Pathfinder

问题描述

有没有办法在 NavMeshAgent 中编写代码以在 Unity 内部的“空气”中工作,这样敌人的 AI 就可以上下跟随角色而无需创建一个或多个楼层?我的代码仅适用于“地面”角色的 3D,而不适用于“飞行”角色。

public LayerMask aggroLayerMask;

private Collider[] withinAggroColliders;
public Player player;
private NavMeshAgent navAgent;

void Start()
{
    navAgent = GetComponent<NavMeshAgent>();
}

private void FixedUpdate()
{
    withinAggroColliders = Physics.OverlapSphere(transform.position, 450, aggroLayerMask);
    if (withinAggroColliders.Length > 0)
    {
        ChasePlayer(withinAggroColliders[0].GetComponent<Player>());
    }
}

void ChasePlayer(Player player)
{
    this.player = player;
    navAgent.SetDestination(player.transform.position);
}

}

标签: unity3dpath-findingnavmesh

解决方案


推荐阅读