NavMesh(导航网络)是3D游戏世界中用于实现动态物体自动寻路的一种技术,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格,进而在这些网格的基础上通过一系列的计算来实现自动寻路。

实现Capsule物体自动向Sphere物体寻路:

实现过程:

一、搭建场景

  选择菜单栏中GameObject->3D Object->Cube命令,在场景中创建三个Cube,并分别命名为Cube01(平台)、Cube02(斜面)、Cube03(地面)

  三个Cube参数值设置如下

Cube01(平台)、Cube02(斜面)、Cube03(地面)

            

设置完成图:

二、功能实现

1、分别选中三个Cube对象,分别单机Inspector试图右上角Static项右侧按钮,在弹出下拉列表中选中Navigation Static复选框,Unity就会利用这几个Cube对象来生成导航网络

2、选择菜单栏中的Window->Navigation命令,弹出Navigation试图,单机Navigation试图右下角Bake按钮生成导航网络

其中蓝色网格便是目标角色在自动寻路时可以到达的区域

三、添加目标对象

1、新建一个Capsule(胶囊体),Scale设置为(0.2,0.2,0.2)作为移动的角色(放的位置可以随意)

  新建一个Sphere(球体),Scale设置为(0.1,0.1,0.1)作为目的的角色(放的位置可以随意)

选中Capsule(胶囊体),选择菜单栏中的Component->Navigation->Nav Mesh Agent命令,为Capsule对象添加导航组件。添加成功后,Capsule上会出现绿色包围的圆柱框

四、实现Capsule(胶囊体)自动寻找Sphere目标点

  选择菜单栏中Assets->Create->C# Script,编写RunTest脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI; public class RunTest : MonoBehaviour { public Transform TargetObject; // Use this for initialization
void Start () {
if (TargetObject != null)
GetComponent<NavMeshAgent>().destination = TargetObject.position;
} // Update is called once per frame
void Update () { }
}

RunTest

讲将本绑定到Capsule上,并将Sphere物体绑定到Inspector试图中Capsule物体脚本组件中的TargetObject项上

运行程序就可以实现简单的自动寻路的效果

Unity3D_(网格导航)简单物体自动寻路的更多相关文章

  1. 关于Unity中网格导航与寻路

    寻路思路 1.烘焙出地形数据,导航数据,区分哪些是路径,哪些是障碍物 2.给要寻路的角色添加寻路的组件,加好了以后就会有速度和目的地之类的参数设置 3.只要设置好目的地,角色就会根据烘焙好的地图自己走 ...

  2. 【Unity】12.2 导航网格寻路简单示例

    开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 本节通过一个简单例子,演示如何利用静态对象实现导航网格,并让某个动态物体利用导航网格自动寻路, ...

  3. Bootstrap框架(基础篇)之按钮,网格,导航栏,下拉菜单

    一,按钮 注意:虽然在Bootstrap框架中使用任何标签元素都可以实现按钮风格,但个人并不建议这样使用,为了避免浏览器兼容性问题,个人强烈建议使用button或a标签来制作按钮. 框架中提供了基础按 ...

  4. Unity中使物体自动寻路的方法

    在做一个FPS游戏时,需要敌方自动找到玩家方位并向玩家移动,在查找资料(并走了不少坑)后,我试了三个方法,经测试,这三个方法都能实现自动寻路功能. 方法一:使用Mathf.Lerp()方法 代码很简单 ...

  5. 内存数据网格IMDG简单介绍

    1 简单介绍 将内存作为首要存储介质不是什么新奇事儿,我们身边有非常多主存数据库(IMDB或MMDB)的样例.在对主存的使用上.内存数据网格(In Memory Data Grid,IMDG)与IMD ...

  6. RecastNavigation(3D场景建模、网格导航)

    一.RecastNavigation详解 RecastNavigation定义: RecastNavigation是一个导航寻路工具集,使用邻接的凸多边形集合描述一个3D场景,A*寻路算法使3D场景的 ...

  7. wordpress面包屑导航简单实现

    前面我们学了一行代码搞定WordPress面包屑导航breadcrumb,现在wordpress文档中有一个简单实现的方法,适用于page页面,有二级分类的情况(Simple breadcrumb t ...

  8. css 网格布局简单应用

    将属性 display 值设为 grid 或 inline-grid 就创建了一个网格容器,所有容器直接子结点自动成为网格项目. grid :网格项目按行排列,网格项目占用整个容器的宽度. inlin ...

  9. Unity3D_(游戏)2D简单游戏制作过程:捕获高空掉落保龄球

      游戏介绍:通过鼠标的左右移动,可以控制帽子的移动,当帽子接到下落的保龄球时,会出现火花效果.没有接到保龄球时,保龄球落到草地上,过10S后会自动消失. 实现效果: 素材+Unity3D源代码:传送 ...

随机推荐

  1. Django中ajax发送post请求,报403错误CSRF验证失败解决办法

    今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了:很显 ...

  2. Git 一般性操作

    git全局设定 git config --global user.name “码云账号” git config --global user.email “码云注册邮箱” git 定位文件夹cd进入到需 ...

  3. POJ题解Sorting It All Out-传递丢包+倍增

    题目链接: http://poj.org/problem?id=1094 题目大意(直接从谷歌翻译上复制下来的): 描述 不同值的递增排序顺序是其中使用某种形式的小于运算符来将元素从最小到最大排序的顺 ...

  4. MySQL数据库基础-JAVA

    数据库 MySQL初步 MySQL基础认知 (Oracle真的是走哪祸害到哪23333) Java多用MySQL和Oracle SQLServer也收费,但是还行,比Oracle便宜,一个差不多3w多 ...

  5. ubuntu 安装vim报错

    问题:ubuntu18.04默认没有安装vim,使用 sudo apt install 提示 错误信息: 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: vim : 依赖: vim ...

  6. mybatis-plus简单了解

    mybatis-plus入门了解和简单使用 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 特性: ...

  7. Kerberos身份验证访问Web HttpFS

    原文出处: https://www.ibm.com/support/knowledgecenter/en/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsig ...

  8. tar.xz压缩工具使用(转)

    XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz ...

  9. ip正则

    IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一 ...

  10. springboot中使用filter

    通过注解的方式实现filter过滤器. 创建Filter包,并在该包下创建MyFilter 示例代码: package com.bjpowernode.springboot.filter; impor ...