unity3d - 如何在 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);
}
}
解决方案
推荐阅读
- python - python不返回值而是打印值..(数独搜索)
- sql - 根据组合查找要更新的字段
- c# - for loop asp:RadioButton 标签如何与 for loop asp:Label 标签相同?
- ios - CFRunLoopPerformBlock() 处理的块是什么?
- reactjs - 如何将 fetch 文件包装在 1 个文件名模块中,并导出每个 fetch 文件,并将其导入其他组件
- vue.js - 是否可以在 vuejs(客户端)中接受 POST 请求?
- react-native - 如何从登录中获得价值并在家中展示
- c++ - 可变参数子集
- laravel - Laravel - 条件不适用于刀片
- git - 使用 go-git 检查分支是否已推送到远程