位置: 编程技术 - 正文

unity自带寻路Navmesh入门教程(三)(unityai寻路)

编辑:rootadmin
继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果:第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路线进攻。第二个例子是动态的控制道路的开关。当吊桥打开时,道路不通,当吊桥放下时,道路可以通行。先来说说第一个例子吧,第一个例子其实很简单,只需要在之前两节的基础上修改一下层的设置就可以了。先来分析一下我们的地形,为了做这个例子,我准备了两个plane分别作为我方基地和地方基地,然后用plane简单的拼了三条线路。在我方基地,准备了红绿蓝各三个的小兵(用胶囊代替)。当然小兵身上带着NavMesh Agent组件 如果把两个plane和三条线路都打上Navigation static的话,就和普通的寻路没有区别,三条路都能走。接下来我们进行层的设置。 还记得第一节里面讲过的怎么设置NavMeshLayer吧?现在我们需要设置Red、Blue和Green三个层,如上图所示。现在,我们可以选择路线一,然后在Navigation Layer里面选择Red层了。相应的,路线二选择Blue层,路线三选择Green层Bake出来后,会是上面的效果。道路已经设置好了接下来我们对小兵身上的NavMesh Agent组件进行设置选择蓝色的小兵,然后找到NavMesh Agent组件里面的NavMesh Walkable选项,这里就是人物能通过的层的选择了。按照刚才层的设计,蓝色的小兵需要勾选Blue层 ,把Red层和Green层取消选择。同理,把红色小兵和绿色小兵的NavMesh Walkable层处理一下。现在,我们可以运行了,移动目标点到敌方基地,三种不同颜色的小兵就会根据不同的路线寻路进攻了。我们第一个目标也就完成了。接下来说一下第二个例子这个例子我准备了两个平台,中间是一个活动的吊桥,一个带NavMesh Agent组件的角色模型,一个目标点如果按照之前的操作,我们可以轻易的让角色在任意位置寻路,但为了让吊桥升起的时候角色不能通过吊桥,我们需要对吊桥的NavMesh层进行一些设置。和刚才一样,我们要预先设置了一个叫做bridge的层(在第一节的时候做过)。同样的,吊桥选择bridge层这里的操作和上面的例子没什么区别,但这次角色身上的NavMesh Walkable不需要设置,直接Everything就行了。 到了这里,我们需要通过脚本来控制人物是否能通过吊桥。这里需要用NavMeshAgent.walkableMask来动态修改NavMesh Walkable的&#;。 关于吊桥怎样升降,这不是本次讨论的内容,你可以选择直接用位移来控制,或者吊桥直接做好开关的动画也行。 之前说过,各位最好要有习惯用状态来控制物体。这里的吊桥会有2种状态,一种是开状态,一种是关状态。当开状态时,吊桥断开,人物不能通行,关状态时,吊桥闭合,人能通行。给予这两种状态,我们给人物身上的NavMeshAgent.walkableMask赋&#;。写一段很简单的代码吧: private bool open = false; private NavMeshAgent agent;void Start () { agent = gameObject.GetComponent();}void Update(){if(open) agent.walkableMask = 1;else agent.walkableMask = -1;}可以了,就是这么简单。这里为了简便,把赋&#;写在了UpDate里面,其实这样做是不正确的,没必要每帧都检测赋&#;,只需要把这个赋&#;写在吊桥开关的控制里面就行了。我来解释一下其中的意思:定义了一个状态的开关open,当吊桥打开时open= true;当吊桥闭合时,open = false;至于这个状态时怎样赋&#;的,各位可以自己试试想办法。然后假设这个脚本是放置角色身上的,那么在start的时候就获取角色身上的NavMesh Agent组件。当然了,你也可以把脚本放在其他的地方,然后通过赋&#;来指定agent。当open为true的时候,人物的walkableMask = 1,意思是只有第一层(就是默认的Default)可以让玩家通行。当open为false的时候,人物的walkableMask = -1,意思是所有层(Everything)都可以让玩家通过。 从自定义层的界面我们可以总结一下,每一个层的可通过&#;,其实就是全面所以层的&#;相加的总和再加1。或者说是2的(n-1)次方。 除了指定本身的层意外,还可以指定多个层,比如这里假如你想mix一个Default和bridge层都能通过,你可以设定walkableMask = 9,也就是1&#;8。 到此为止,阿赵我对于Unity自带的NavMesh寻路的介绍就结束了。至于NavMesh或者NavMesh Agent组件的各个属性和方法,API文档里面有具体的说明,有兴趣可以具体去看看,我就不一一解释。更多精彩,请访问【狗刨学习网】

推荐整理分享unity自带寻路Navmesh入门教程(三)(unityai寻路),希望有所帮助,仅作参考,欢迎阅读内容。

unity自带寻路Navmesh入门教程(三)(unityai寻路)

文章相关热门搜索词:unity 2d寻路导航,在unity的自动寻路中,如何设置寻路的目标点?,unity自动寻路代码,unity2d寻路,unity寻路算法讲解,unity rts寻路,unity2d寻路,unity 寻路,内容如对您有帮助,希望把文章链接给更多的朋友!

Unity3D的着色器介绍(一)—软渲染和着色器原理 由于讲图形渲染这样的东西比较抽象,而且结合三维数学方面的知识比较多,我自己的理解也不一定正确,所以先试写一篇看看。如果有什么意见,请

vs 提示图标的含义 【狗刨学习网】ClassViewandObjectBrowserIcons类视图与对象浏览器中图标NamespaceMethodorFunctionClassOperatorInterfacePropertyStructureFieldorVariableUnionEventEnumConstantTypeDefEnumI

基于Unity3D引擎制作大地图 基于Unity3D引擎制作大地图1.下载Unity3D:

标签: unityai寻路

本文链接地址:https://www.jiuchutong.com/biancheng/373007.html 转载请保留说明!

上一篇:unity3d游戏开发之商人模块开发心得(unity3D游戏开发)

下一篇:Unity3D的着色器介绍(一)—软渲染和着色器原理(unity3d颜色)

  • 从租计征房产税怎么申报
  • 个人所得税应纳税所得额减半征收
  • 公司财务外包费怎么入账
  • 会务费税前扣除材料
  • 期末数减期初数等于
  • 生产设备的修理费用计入什么科目小企业
  • 利润表盈利结构分析
  • 中小企业开业税务登记所需资料
  • 房产税应由哪方交纳
  • 固定报销额度算工资吗
  • 外出经营预缴税款,回所在地如何申报
  • 一次性医保补助多少钱
  • 公司注销后还会有事吗
  • 所得税费用为负数是什么意思
  • 单位买酒报销如何做账
  • 个体户营业收入超过500万
  • 货币性项目和非货币性项目的区别是什么?如何进行处理?
  • 新成立的公司股权转让交税吗
  • 汇算清缴补交所得税后报表需要调整吗
  • 库存商品结转会计分录
  • flash插件安装后还是不能播放
  • 基准收益率是
  • PHP:xml_set_external_entity_ref_handler()的用法_XML解析器函数
  • 分期付款买车的利息会计分录
  • 天猫魔搭
  • php str函数
  • 评估价值时点依据什么
  • 厂家赠送的商品如何走账
  • Win10 21H1 Build 19043.1200(KB5005101)预览版更新了哪些内容(附更新日志)
  • 房产证和不动产权证都要办理吗
  • 补缴企业所得税和滞纳金如何入账
  • 坏账损失的核算方法属于会计政策吗
  • 服务行业的进项
  • centos7配置自动获取ip
  • laravel5创建service provider和facade的方法详解
  • 税控开票清单
  • 应付票据是供应商往来吗
  • opengl加阴影
  • 年报和汇算清缴不一致怎么处理
  • mysql使用指南
  • notepad+v
  • 本年利润贷方余额表示盈利还是亏损
  • 增值税专用发票抵扣期限
  • 申报纳税的步骤
  • 出售无形资产净损益
  • 简易计税指的是增值税吗
  • 企业营改增税率是多少
  • 海关报关单海关签章
  • 政府扶助资金
  • 关联企业是如何运作的
  • 办理社会保险需要什么材料
  • 销售包装物计入其他应收款吗
  • 发票遗失重开需要收费吗?
  • 其他应付款通俗
  • 如何提取工会经费的钱
  • 进项税的发票
  • 企业如何科学设计产品
  • centos如何设置网卡
  • pps是什么文件
  • xp系统1
  • linux批量替换文件夹名称
  • 在linux中使用什么可以执行shell脚本
  • win8什么时候发布
  • linux系统安装驱动
  • Unity3D-SLua+ProtocolBuffers构建说明
  • Android OpenGL ES(六)----进入三维在代码中创建投影矩阵和旋转矩阵
  • Python实现mysql数据库更新表数据接口的功能
  • c#中抽象类的定义
  • nodejs 文档
  • unity编译原理
  • 动态修改ip
  • 单向链表的基本操作
  • android应用程序的主要语言是
  • python中子类继承父类的静态方法吗
  • jQuery判断checkbox选中状态
  • 登录""增值税发票选择确认平台""时提示""打开设备
  • 临沂市国家税务局人员名单
  • 苏宁易购的联系电话
  • 税务上门核查要看什么
  • 小规模纳税人土地使用税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设