解决Unity使用navmesh导航系统实现npc开关门

最近一直在用navmesh实现各种功能(主要是买不起A*Pro,免费版的感觉没navmesh好用),顺便记录一下吧

我目前这个功能可以完成点击房子内部,玩家可以移动到房子里面和npc自动开关门,根据这个思路应该可以实现其他的,主要提供解决思路

注:npc进行导航的时候我是使用位置集合,让npc知道什么时候到哪里该做什么事情(类似下图)

原因如下:如果使用navmesh的话,房子的门是关着的,尽管你使用navmesh的obstacle给门设置为NavmeshObstacle动态障碍物,但是在门没有打开的时候导航路线并没有更新,所以没有这条路径可以走到房子里面,然后npc就会在使用navmesh agent的时候到达在墙外面找一个最近的点卡着

那么如何解决这个问题呢

方法1:在门的前后添加Navmesh Link,然agent知道这里又这一条路,下图中的门内外的小矩形就是navmesh link,只要给navmeshLink这个组件enable激活就可以了都不用跑到navmesh surface中进行baked

下图是组件enable = false的时候

这里已经可以实现让人物自己会进入房间了,但是如果你发现人物在经过这个区域的话速度会很快,那么可以通过代码来控制组件navmesh的enable,我在这里添加了一个触发器(下图的绿色线框就是)当npc走到这个门的时候就会触发门打开的代码

这个时候因为门添加了navmesh obstacle,那么尽管外面通过代码关闭了navmeshlink组件但是已经产生了路径这个时候npc就可以进入了

法2(简单粗暴一点):直接在门的前后添加相关位置即可

例如下图:npc想进入房子里面的睡觉位置,在门的前后添加“进入位置”和“出去位置”,然后跟前面一样,这里也是有触发器的,到“进入位置”这里的时候触发让门打开,npc就可以进去,如果没有这个“进入位置”,也就无法触发打开门,npc是可能不会走到门口的,而是在离睡觉位置距离最近的墙壁外面

npc最终效果:

记录一下,有错误直接私信和评论就行,觉得写的还可以的话点个赞OvO

智慧消防安全与应急管理是现代城市安全管理的重要组成部分,随着城市化进程的加速,传统消防安全管理面临着诸多挑战,如消防安全责任制度落实不到位、消防设施日常管理不足、消防警力不足等。这些问题不仅制约了消防安全管理水平的提升,也给城市的安全运行带来了潜在风险。然而,物联网和智慧城市技术的快速发展为解决这些问题提供了新的思路和方法。智慧消防作为物联网和智慧城市技术结合的创新产物,正在成为社会消防安全管理的新趋势。 智慧消防的核心在于通过技术创新实现消防安全管理的智能化和自动化。其主要应用包括物联网消防安全监管平台、城市消防远程监控系统、智慧消防平台等,这些系统利用先进的技术手段,如GPS、GSM、GIS等,实现了对消防设施的实时监控、智能巡检和精准定位。例如,单兵定位方案通过信标点定位和微惯导加蓝牙辅助定位技术,能够精确掌握消防人员的位置信息,从而提高救援效率和安全性。智慧消防不仅提升了消防设施的管理质量,还优化了社会消防安全管理资源的配置,降低了管理成本。此外,智慧消防的应用还弥补了传统消防安全管理中数据处理方式落后、值班制度执行不彻底等问题,赋予了建筑消防设施智能化、自动化的能力。 尽管智慧消防技术在社会消防安全管理工作中的应用已经展现出巨大的潜力和优势,但目前仍处于实践探索阶段。相关职能部门和研究企业需要加大研究开发力度,进一步完善系统的功能与实效性。智慧消防的发展既面临风险,也充满机遇。当前,社会消防安全管理工作中仍存在制度执行不彻底、消防设施日常维护不到位等问题,而智慧消防理念与技术的应用可以有效弥补这些弊端,提高消防安全管理的自动化与智能化水平。随着智慧城市理念的不断发展和实践,智慧消防将成为推动社会消防安全管理工作与城市化进程同步发展的关键力量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值