NavMeshAgent 寻路
烘焙地图
- 选中场景中要烘焙的游戏物体。将详情面板中的Static更改为Navigation Static。
- 选择Window → Navigation。
- 点击新打开的Navigation → Bake → 调整具体参数 → 点击最下方的Bake进行烘焙。
以上功能便是将能够寻路的地图烘焙好了 - 创建一个胶囊体,在胶囊体上添加 Nav Mesh Agent组件
// 寻路组件
NavMeshAgent nav;
// 动画组件
Animator ani;
private void Start() {
// 获得要寻路的游戏物体
var obj = GameObject.Find("Player");
// 获得游戏物体上的寻路组件
nav = obj.GetComponent<NavMeshAgent>();
// 获得游戏物体上的动画组件
ani = obj.GetComponent<Animator>();
}
void Update() {
// 获得一条射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
射线碰撞信息
RaycastHit hit;
// 若射线发生了膨胀
if( Physics.Raycast(ray, out hit, 1000, 1 << 6)) {
// 设置寻路组件的目的地
nav.SetDestination(hit.point);
}
// 改变游戏物体上动画跳转参数(要先做好待机和移动的动画融合树)
// 在这里给到的参数是当前速度,速度会从零一直增加到最大速度,动画也是有过度动画的。
ani.SetFloat("Speed", nav.velocity.magnitude);
}
若是以上操作能够使角色进行寻路,但角色跑步和角色转向与角色移动衔接很不自然可以试着调整寻路组件上的部分参数
NavMeshAgent 寻路组件
Base Offset
偏移量,空中飞行的游戏物体需要按照地面进行寻路,可以适当调节。Speed
最大移动速度。Angular Speed
最大转角速度,可以给大点,方便场景中的游戏物体能够快速的转向。Acceleration
加速度,这个也可以稍微给大点,方便能够快速相应。Stopping Distance
停止寻路距离。
Nav Mesh Obstacle 动态遮挡物
Carve
是否截断,能否通过。
动态遮挡物不要选择Navigation Static,因为选中烘焙后改变其动态遮挡物位置后之前的位置也是不能够进行移动的。
本文来自博客园,作者:坞中客,转载请注明原文链接:https://www.cnblogs.com/wuzhongke/p/16837516.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤