自动寻路Navmesh高级(寻路网格)

之前我们一起学习了如何使用Navmesh组件来实现最基本的角色自动寻路。今天我们再继续深入探索Navigation组件的高级功能。在本文中,你将了解到如何在两个隔离层自动生成寻路网格?如何手动指定寻路网格的路线?以及寻路网格层的应用。

?   隔离层自动生成寻路网格

?               (源码scene1.unity)

?               1.创建Plane实例P1,P2,两者之间出现一条鸿沟。直接控制角色位移是无法通过的。

?               2.打开Navigation窗口,分别选中P1,P2,分别设置Navigation Static 和OffMeshLink Generatic

?               3.保存场景,点击场景烘焙按钮Bake。结束后我们可以看到P1,P2除了自身生产寻路网格外,它们直接还生成了连接纽带。

?               4.添加角色模型Solder,为其添加NavMeshAgent(Component->Navigation->NavMeshAgent)

5.给Solder添加PlayerController脚本

手动指定寻路网格方向

1.scene1.unity的基础上,将P1,P2的OffMeshLink Generatic去除

2.在P1上新建一个空的GameObject Start,P2上新建一个空的GameObject End

3.选中start,为它添加Off Mesh Link组件Component->Navigation->OffMeshLink

4.设置Off Mesh Link组件的属性,Start Point 为 start,End Point为end

5.烘焙场景。我们可以看到有一条纽带从start指向end

点击地图,可以看到角色如果要跨越P1和P2,一定是沿着我们手动创建的路径

?   导航网格障碍物 NavmeshObstacle

之前我们都是用固定的物体作为障碍物,然后烘焙场景。Unity还提供了动态的障碍物。任何一个GameObject都可以添加Navmesh Obstacle组件,变成一个障碍物。具体步骤是Component->Navigation->NavmeshObstacle.它有两个属性:半径和高度,可以设置跟你的物品差不多的体积大小。

时间: 2024-10-13 22:49:23

自动寻路Navmesh高级(寻路网格)的相关文章

Unity手游之路<九>自动寻路Navmesh之高级主题

http://blog.csdn.net/janeky/article/details/17492531 之前我们一起学习了如何使用Navmesh组件来实现最基本的角色自动寻路.今天我们再继续深入探索Navigation组件的高级功能.在本文中,你将了解到如何在两个隔离层自动生成寻路网格?如何手动指定寻路网格的路线?以及寻路网格层的应用.(本文所用到的模型皆来自Unity3d官网). (转载请注明原文地址http://blog.csdn.net/janeky/article/details/17

Unity手游之路<八>自动寻路Navmesh之入门

http://blog.csdn.net/janeky/article/details/17457533 在的大部分mmo游戏都有了自动寻路功能.点击场景上的一个位置,角色就会自动寻路过去.中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点.使用Unity来开发手游,自动寻路可以有很多种实现方式.第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到.大部分的页游和端游都用到这种技术.在Unity游戏也可以用这种技术,Asset Store上面已经有相关

Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡

http://blog.csdn.net/janeky/article/details/17598113 在之前的几篇Blog总,我们已经系统学习了自动寻路插件Navmesh的相关概念和细节.然而,如果要做一个场景精美的手游,需要用到各种复杂的场景地形,而不仅仅是平地上的自动寻路.今天我们将通过一个完整的复杂的实例,来贯穿各个细节.我们将实现一个复杂的场景,角色可以在里面攀爬,跳跃,爬坡.是不是感觉很像当年的CS游戏呢?本案例将会用得一些基本的动画函数,大家可以先结合文档有个大概的了解.本实例是

自动寻路Navmesh基础入门

自动寻路Navmesh 现在的大部分游戏都有了自动寻路功能.点击场景上的一个位置,角色就会自动寻路过去.中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点.使用Unity来开发手游,自动寻路可以有很多种实现方式.第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到.大部分的页游和端游都用到这种技术.在Unity游戏也可以用这种技术,Asset Store上面已经有相关的组件了,感兴趣的同学可以自己去了解.我在后面有机会再来详细介绍了.今天我们来学习Un

自动寻路NavMesh

步骤 1.创建地形 2.添加角色 3.创建多个障碍物,尽量摆放的复杂些,用来检测NavMesh的可用性和效率 4.选中地形,在Navigation窗口中,设置Navigation Static 5.依次选中障碍物,在Navigation窗口中,设置Navigation Static 6.在Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进行场景烘焙,就可以烘焙出寻路网格了 7.为角色添加NavMeshAgent组件.Component->Navigation->Nav

Unity3D游戏开发之 (Navmesh) 和寻路 (Pathfinding)烘焙

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 导航网格烘焙 一旦标记完导航网格 (Navmesh) 几何体和层之后,就可以烘焙导航网格几何体了. 在导航 (Navigation) 窗口中(窗口 (Window)->导航 (Navigation)),转到烘焙 (Bake) 选项卡(右上角),然后点击"烘焙"按钮(右下角). 导

unity的自动寻路之 ------ wayPoint寻路的实现方式

孙广东 2015.6.28 看了看  Unity的官方案例,就顺便看了 wayPoint相关. 效果: WaypointProgressTracker.cs  [固定] WaypointCircuit.cs  [固定] using System; using System.Collections; using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace UnityStandardAssets.Utility

从 NavMesh 网格寻路回归到 Grid 网格寻路。

上一个项目的寻路方案是客户端和服务器都采用了 NavMesh 作为解决方案,当时的那几篇文章(一,二,三)是很多网友留言和后台发消息询问最多的,看来这个方案有着广泛的需求.但因为是商业项目,我无法贴出代码,只能说明下我的大致思路,况且也有些悬而未决的不完美的地方,比如客户端和服务器数据准确度和精度的问题,但是考虑到项目类型和性价比,我们忽略了这个点. 从今年5月份开始为期一个月,我的主要工作是为新项目寻找一个新的寻路方案.新项目是一个 RTS 实时竞技游戏,寻路要求是:每个寻路单位之间的碰撞精确

navmesh自动寻路

1.NavMeshAgent组件 Radius:代理的半径(这是代理的“个人遮护罩”,形成一个屏蔽罩,从而使其他代理无法通过此遮护罩) 我为两个对象的Radius都设为了2.5,效果图如下: 那么右边的对象无论怎么走,也都是无法进入左边对象的遮护罩内的,也就是左边对象的绿色线内的!效果如下: 两个对象都是向同一个点移动,但是因为Radius“遮护罩”的原因,致使他们无法靠近,这就可以避免多个对象因为靠的太近造成乱象的情况! 当我们把Radius设为0.1时,就造成了下面的情况了: Speed:速