U3D Navigation
让我们来一起粗步认识一下NavMesh的简单使用
首先我们建立一个新场景,在新场景我们创建 一个地形或者创建一个Plane,
然后在其上面用Cube或者其它的建立一些障碍物
再创建自己需要为其设置自动寻路的Cube,可以为它改个名字,我们在这里
将其改名为walker
再创建一个walker要自动到达的位置,创建一个Cube,改名为endposition;
准备工作做好了,让我一起来尝试下NavMesh
打开Navigation,Windows->Navigation
在Hierarchy层次窗口中将所有障碍物选上,在Navigation窗口,将Navigation Static打上勾,选择一个Navigation Layer 层
在Hierarchy层次窗口中将允许行进的地形或者Plane选上,做与上面一样的操作,注意将允许行进和不允许行进的Navigation Layer设置为不一样
选中walker为其添加NavMeshAgent组件 Component-> Navigation ->NavMeshAgent
组件属性就不介绍了,看得懂
唯一注意的就是在NavMesh Walkable中将不允许行进的NavigationLayer名字去除掉,将如这里不允许行进的Navigation Layer是Not Walkable
NavMesh Walkable就不应该将此层选中
在Hierarchy中将允许行进或者不允许行进的物体选中,在Navigation窗口中,选中Bake烘焙
为了让其运动,我们写一个简单的脚本,脚本内容如下
using UnityEngine;
using System.Collections;
public class Nav : MonoBehaviour {
// Use this for initialization
public Transform target;
private NavMeshAgent navmeshagent;
void Start () {
navmeshagent = gameObject.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
navmeshagent.SetDestination(target.position);
}
}
脚本不做解释,不懂的人查下文档
将脚本拖拉到walker中,再将endposition拖拉到上述脚本的target;
最后运行,完成,你会发现walker会自动寻找路线移动到endposition的位置。
最新文章
- rest api参数与content-type
- File类的创建,删除文件
- aria-expanded,aria-hidden到底做什么用?
- Oracle11g服务及实例
- VMware 虚拟机的网络连接方式详解
- github每次push都需要密码以及用户名的解决办法
- JDK的并发容器
- C#设计模式之二十二访问者模式(Visitor Pattern)【行为型】
- 百度地图API-javascript-web地图的应用
- 芝麻HTTP:Ajax结果提取
- linux基础-系统安装教程篇(centos6.5)
- 使用 Linux 文件恢复工具
- day 45 BOM和DOM
- sql学习内容记录
- 每10秒执行定时任务-crontab
- Vim settings file on Windows
- 通用返回XML格式结果
- 第九章&#160;词典 (c)散列:散列函数
- tf.variable_scope
- CSU1911 Card Game 【FWT】
热门文章
- STM32调试问题
- @InsertProvider 根据bean属性,自动生成插入sql语句
- Delphi 的内存操作函数(1): 给字符指针分配内存
- 【Todo】一些scala的实验 &; 与Java的混合
- 64-bit Itanium与x64
- IntelliJ IDEA cannot resolved 处理
- BZOJ 2809 APIO 2012 dispatching 平衡树启示式合并
- Printing multipage output
- 在运行hadoop是出现Master的9000端口拒绝访问的情况
- 这个捕鱼游戏制作的真心不错,原创音乐,AV动作,让人流连忘返啊呵呵