如何使用Unity3D做游戏寻路算法中的寻路导航

怎样在2D地图上实现A*寻路_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,866贴子:
怎样在2D地图上实现A*寻路收藏
怎样才能在2D地图上实现电脑对玩家的搜索并且追逐,游戏的地图是仙剑97的一个迷宫,游戏的的障碍物可以用Edge Collider 2D吗?
学游戏开发多长时间 unity游戏开发 从零开始学习精选网校课程,满足你的学习兴趣.
Unity提供了NavMesh,这个解决方案非常管用。当然,楼主非要自己写A*也成:A*的最主要的实现过程就是“分格子”,即把游戏场景分为大小一致的格子,这个格子可以是三角形,也可以是正方形,也可以是其他形态,只要保证每个格子的形态一致就好;然后,对这些分好的格子进行标记,可以寻路的标记为“可用”,不能寻路的标记“障碍”;以上2步做好,就可以用A*算法来计算具体的寻路路径了。不过,我是不想遭这份罪——Unity已经提供解决方案了,我还写个毛线啊
3d有navigation,属于网格寻路。它会事先按照场景中所有的静态collider渲染出寻路网格,然后物体就能按照网格中可行走的区域寻路了。我不知道2d能不能用
如果是自由场景,而不是二维数组场景,建议用unity自带的navigation系统
登录百度帐号推荐应用您的位置:
→ unity3d自动寻路插件
unity3d自动寻路插件 unity3d寻路插件|
网友评分:8
软件大小:6.3M
软件语言:中文
软件类型:国产软件
软件类别:免费软件 / 其他文件
更新时间:
软件等级:
官方网站:暂无
运行环境:WinAll, WinXP, Win7, Win8
软件厂商:
顶好评:50%
同类相关软件
14.1M/中文/.0150.4M/中文/10.039.4M/英文/10.033.4M/中文/3.319.1M/中文/10.0
unity寻路插件在此大家准备的是Unity a*寻路插件,即为a pathfinding project pro.unitypackage是在unity游戏制作中经常使用到的自动寻路算法插件,实现了最短路径寻路效果,使得游戏角色能够快速的寻找到目标地点,增加的游戏角色的智能效果。快来绿色资源网下载unity寻路插件吧!unity寻路插件使用说明1. 场景准备先建立一个scene添加一个plane,让其坐标处于(0,0,0),并三方向scale都为10添加一个新的layer,命名为Ground,并将上面建立的plane设置为Ground层在plane上添加若干个box作为障碍物,添加一个新的layer,命名为Obstacles, 将这些box都归为这个Obstacles层2.加入A*创建一个空的GameObject,命名为A*, 从ComponentsC&PathfindingC&Pathfinder中添加插件脚本AstarPath。可以再AstarPath的观察器中看到它被分为几个部分,其中最重要的区域是Graphs区域和底部的Scan区域,Graphs区域保存了工程中所有的寻路图,最多可以有16个,但是一般1到2个已经足够了。有几类寻路图,其中最主要的有两种:Grid Pattern Graph和Navmesh Graph.这次就先添加Grid graph.就如名字所述一样,Grid graph会产生一系列的网格,大小为width * height,这个网格可以放在场景中的任何地方,也可以进行旋转。节点尺寸设置了节点所占空间的大小,在这里设置为1;右侧有一个5个点组成的小选取控制,选择左下角的那个点,将其坐标设置为(-50, 0.1, -50), 其中y方向设置为0.1是为了避免产生浮点错误,因为地面plane的y向坐标是0,如果网格也是y向为0的话,在进行高度检测的raycast的时候,会产生问题。高度测试:为了把寻路的node放置到场景中的正确位置,一般使用从node向下发射一个射线来进行检测,寻路node会被放置到碰撞点的位置。我们将mask设置为Ground,因为只希望寻路节点与Ground进行检测。碰撞测试:当寻路节点被放置之后,它就会被用来检测是否可行走,一般可以使用sphere,capsule或ray来进行碰撞检测。一般Capsule会使用和AI对象一样的半径和高度来进行碰撞。为了让AI对象和障碍物有一些边缘,这里将Capsule的半径设置为2.另外将碰撞检测的layer设置为Obstacles,因为不想让地面成为障碍。好了,都准备好了,点击底部的Scan,我们就可以看到grid Graph的生成了,可以再编辑窗口中看到辅助线显示的寻路网格,包括了可寻路的区域和障碍区域。3. 加入AI以上是对场景寻路相关的基础设置,接下来要加入AI对象进行寻路。在场景里面添加一个Capsule,并给其添加一个Character Controller组件,从ComponentsC&Pathfinding中添加Seeker脚本。Seeker脚本是一个帮助类的脚本,用来将其他脚本的寻路请求进行处理,它也可以处理Path modifier(一般是对寻路结果进行圆滑处理的脚本)。A* pathfinding project自带了两个AI脚本用于挂接到对象上进行寻路:AIPah可适用于任何类型的寻路图;而RichAI只适用于NavMesh类型。unity寻路插件
猜你喜欢 unity插件
插件有哪些在游戏开发中不断的衍生出了众多帮助用户更加便捷的进行游戏制作的插件工具,如进行场景便捷的插件工具,特效制作插件工具,以及可视化游戏编程插件等,为游戏开发者带来了大量的利益,在此提供几款最实用
其他版本下载
unity3d自动寻路插件
软件无法下载或下载后无法使用,请点击报错,谢谢!
请描述您所遇到的错误,我们将尽快予以修正,谢谢!
*必填项,请输入内容
本类下载排行
10.01 2.02 4.53 7.74 10.05 10.06 8.87 .08 7.19 10.010 .511 3.612 10.013 6.214 10.015
本类精品软件
1.7M/中文/8.477KB/中文/7.8
装机必备软件
本类集合软件Unity3D自动寻路导航烘焙 - 简书
Unity3D自动寻路导航烘焙
Unity3D寻路导航烘焙在初次进行3D(三维)游戏体验中,避免不了对游戏有生疏的情况,因此在游戏中一般会插入新手指导、自动寻路、导航地图等AI人工智能技术到游戏中,方便玩家更快体验,为了玩家的体验更好,Unity3D寻路导航系统Navgation MeshAgent即可实现导航寻路,Unity3D导航寻路广泛应用于3D塔防、3D格斗、3D世界、3D奇幻、3D动作等3D网游及系列休闲娱乐游戏与2D小规模游戏,在此导航寻路起到自动行走、自动生成、自动跳跃、自动状态、自动播放动画的自动功能,简言之Unity3D寻路导航系统指的是一个游戏中的人工智能机器人,命名空间是UnityEngine.AI,自动生成可以采用一种方式,虽然不是Unity官方的方法、但是在Unity3D塔防游戏中较为常用的一种导航寻路方式,这个方法我在此文中采用WayPoint表示,其主要原理是通过创建一个存储塔防怪物的数组,对怪物进行一个全名性质的统一管理,其中这个数组存储的内容为一个怪物类或需要生成多个或需要实现自动寻路的对象类,塔防怪物自动生成、自动寻路的方法在我的另一篇博文Unity3D塔防游戏开发基础中有详细介绍,接着进入此文正题。Navgation自动寻路导航系统,可以为游戏增加智能机器人检测寻路导航服务,使用方法单机Unity-Window选项中的Navgation窗口面板,打开此面板可以详细查询到此面板中的组件属性信息,1.Window选项在此处第九个Help左侧2.单机Window选项卡3.自动寻路导航窗口打开后是这个样式君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
开发者博客:如何用Unity做游戏中寻路导航
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Unity手游之路&八&自动寻路Navmesh之入门 - CSDN博客
Unity手游之路&八&自动寻路Navmesh之入门
现在的大部分mmo游戏都有了自动寻路功能。点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。使用Unity来开发手游,自动寻路可以有很多种实现方式。第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到。大部分的页游和端游都用到这种技术。在Unity游戏也可以用这种技术,Asset Store上面已经有相关的组件了,感兴趣的同学可以自己去了解。我在后面有机会再来详细介绍了。今天我们来学习Unity官方内置的寻路插件-Navmesh。由于内容比较多,我们将分几次来系统学习。今天先通过学习一个最简单的例子来入门。
(转载请注明原文地址)
我们要实现一个功能:点击场景中的一个位置,角色可以自动寻路过去。角色会绕过各种复杂的障碍,找到一条理论上”最短路径“。
1.创建地形
2.添加角色
3.创建多个障碍物,尽量摆的复杂一点,来检查Navmesh的可用性和效率。
4.选中地形,在Navigation窗口中,设置Navigation Static
5.依次选中障碍物,在avigation窗口中,设置Navigation Static
7.Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进程场景烘焙,就可以烘焙出寻路网格了
8.为角色添加NavMeshAgent组件。Component-&Navigation-&Nav Mesh Agent
9.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能
using UnityE
using System.C
public class PlayerController : MonoBehaviour
private NavMeshA
void Start()
//获取组件
agent = GetComponent&NavMeshAgent&();
void Update()
//鼠标左键点击
if (Input.GetMouseButtonDown(0))
//摄像机到点击位置的的射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
//判断点击的是否地形
if (!hit.collider.name.Equals(&Terrain&))
//点击位置坐标
Vector3 point = hit.
transform.LookAt(new Vector3(point.x, transform.position.y, point.z));
//设置寻路的目标点
agent.SetDestination(point);
//播放动画,判断是否到达了目的地,播放空闲或者跑步动画
if (agent.remainingDistance == 0)
animation.Play(&idle&);
animation.Play(&run&);
完成了,可以看看效果:
1.角色身上的Nav Mesh Agent 组件
Radius 半径: 代理的半径(仅用于寻路目的,可以跟实际对象的半径大小不一样,一般比实际对象的半径大)。
Speed 速度: 代理可以周游世界,走向它的目的地的最大移动速度。
Acceleration 加速度: 最大加速度。
Angular Speed 角速度: 最高转速(度/秒)。
Stopping distance 制动距离:制动距离。到目的地的距离小于这个值,代理减速。
Auto Traverse OffMesh Link 自动遍历OffMesh链接:自动移动并关闭OffMeshLinks
Auto Repath 自动重新寻路:如果现有的部分已失效,获得新的路径。
Height 高度:代理的高度(用于调试图形)。
Base offset 基本偏移:碰撞几何体相对于实际几何体垂直的偏移。
Obstacle Avoidance Type 障碍躲避类型 :躲避的质量水平。
NavMesh Walkable 导航网格行走:指定代理可以遍历的导航网格层类型。这个参数很有用,在接下来的实例中可以用到。
2.障碍物一定要有Mesh Render,用于烘焙寻路网格。
这个实例可以很简单的让我们学会如何最基本的使用自动寻路组件Nav。但是,这个组件还提供了更加强大的功能,比如,起始点和目标点中间出现阻断了,
怎么办?在下面的文章中,我们将会继续探寻其他强大的功能。
2.http://liweizhaolili./
3./Components/class-NavMeshAgent.html
本文已收录于以下专栏:
相关文章推荐
unity3d NavMeshAgent 寻路导航组件使用方法
考虑碰撞的情况下控制人物的行走在考虑碰撞的情况下,控制人物在场景中移动一般有两种方法,一种是利用刚体Rigidbody,然后通过施加力或者改变速度来控制人物的移动,另外一种方法就是利用unity自带的...
原文/ScriptReference/NavMeshAgent.html
继承自Behaviour。
acceler...
agent的躲避半径。在这个半径范围内,别的agent和obstacle将无法通过。其中obstacle是指添加了Nav Mesh Obstacle组件的物体。
上午,我做了关于Monster的自动寻路功能。
ok,先贴一下网上当下来,关于NavMeshAgent的属性和方法。
关于U3D内置的寻路组件主要分为两大个类,NavMesh和NavMes...
敌人自动追击功能用到NavMeshAgent
制作NavMeshAgent:
首先选择地图,保持地图为static状态;
之后就是选择window里面的Navigation如下图:
原文/ScriptReference/NavMeshAgent.html
继承自Behaviour
Variables
...
NavMeshAgent的使用,如何烘培(bake)
在游戏中,我们经常会用到角色自动寻路这个功能,
自动寻路步骤:
①  把场景中不动的物体勾选static
②  烘焙寻路网格
③  添加NavMeshAgent组件
④  给需要寻路的物体添加脚本
① 搭一个简易场景
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 导航寻路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信