U3D navmesh寻路简单示范
要求:放置一个BOSS,创建几个路标,自动循环这几个路标形成回路,变成自动巡逻,并配合animator系统的控制开关控制BOSS的动作
1.先设置好BOSS 中animator的控制开关,只看Run和Idle之间的联系,设置一个BOOL变量“isMove”进行控制(其他动作联系是我设置的其他攻击控制和使用技能控制,不必注意)
逻辑很简单,isMove为真,Idle向Run,isMove为假,Run向Idle, 把Idle设置为默认状态
l
2.在层次面板下创建一个空物体,改名为wayPoints,然后在其下创建5个子的空物体,分别为wayPoints01,02,03,04,05 表示BOSS将要巡逻的五个点

3.在Windows目录下点击navigation,打开这个系统,设置好相关属性之后,点击bake,如图,已经烘培好了可寻路的范围(蓝色部分)

4.在BOSS下添加一个NavMeshAgent的组件,并创建一个脚本,进行使用


using UnityEngine;
using System.Collections; public class nuoshouMove : MonoBehaviour {
public Transform[] wayPoints; private int index=;//设置一个标志位。他默认自动巡逻的标识 //到一个点后休息8S时间
public float stopTime=8f;
public float timer=; //引用自己和navmeshagent组件,动作组件
private NavMeshAgent nav; private Animator ani;
void Awake(){
ani = this.GetComponent<Animator> (); }
// Use this for initialization
void Start () {
nav = this.GetComponent<NavMeshAgent> ();
view = this.GetComponent<nuoshouView> ();
nav.destination =wayPoints [index].position;//一开始就走向第一个点
} // Update is called once per frame
void Update () {
moving(); //走向设置好的五个点
if (nav.remainingDistance < 0.2f) {
//到点后休息一段时间
ani.SetBool("isMove",false);
timer+=Time.deltaTime;//开始计时
if(timer>=stopTime){
index++;
index%=;//利用求余运算,进行循环
ani.SetBool("isMove",true);
nav.destination=wayPoints[index].position;
timer=;//计时器归零
}
}
} void moving(){
//ismove设为真,播放走这个动作
ani.SetBool ("isMove", true);
nav.destination = wayPoints [index].position;//走向目标位置 }
}
U3D navmesh寻路简单示范的更多相关文章
- Unity3D架构设计NavMesh寻路
Unity3D架构设计NavMesh寻路 发表于2013年10月6日由陆泽西 国庆闲来没事把NavMesh巩固一下.以Unity3D引擎为例写一个底层c# NavMesh寻路.因为Unity3D中本身 ...
- Unity3D架构设计NavMesh寻路(未完待续)
国庆闲来没事把NavMesh巩固一下.以Unity3D引擎为例写一个底层c# NavMesh寻路.由于Unity3D中本身自带的NavMesh寻路不能非常好的融入到游戏项目其中,所以重写一个NavMe ...
- 【Unity】12.2 导航网格寻路简单示例
开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 本节通过一个简单例子,演示如何利用静态对象实现导航网格,并让某个动态物体利用导航网格自动寻路, ...
- Orleans框架简单示范
希望现在学习Orleans不会晚,毕竟Server Fabric都开源了.本篇博客从Sample的HelloWorld示例程序来解读Orleans的Grains. Server配置参考 : https ...
- msf客户端渗透(一):payload利用简单示范
针对Windows 开启侦听 查看payload选项 将1.exe传到网页上 win7访问网页并下载1.exe 下载好之后双击运行,在服务器端就获得了一个shell 针对linux 先获取到一个软 ...
- unity自带寻路Navmesh入门教程(三)
继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果: 第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路 ...
- unity自带寻路Navmesh入门教程(二)
上一节简单介绍了NavMesh寻路的基本用法,这次来介绍一下稍微复杂一点点的高低落差以及跳跃的做法,首先来看看这次的目标: 由于博客相册上传GIF有限制,所以我把整个过程切开了2部分上传,第一部分 ...
- unity自带寻路Navmesh入门教程(一)
说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后回顾,或者方便刚入门的朋友学习.水平有限请勿见怪.不过请尊重码字截图录屏的劳动,如需转载请先告诉我.谢谢! unity自从3.5版本之后,增加 ...
- unity3D ——自带寻路Navmesh入门教程(一)(转)
转自:http://liweizhaolili.blog.163.com/blog/static/16230744201271161310135/ 说明:从今天开始,我阿赵打算写一些简单的教程,方便自 ...
随机推荐
- svn添加强制注释,pre-commit结合python
鉴于组内有些人在提交代码的时候并不写注释,而且没有固定格式,所以准备给svn提交时增加强制注释. 首先找到代码库里的hooks目录,正常建svn库的时候都有这个目录.进入hooks目录,找到pre-c ...
- [LeetCode]题解(python):137-Single Number II
题目来源: https://leetcode.com/problems/single-number-ii/ 题意分析: 给定一个数组,数组里面每一个数字都出现了3次除了一个,找出那个数.要求时间复杂度 ...
- e.currentTarget
e.target总是指向点击的目标 e.currentTarget会指向这个点击标的冒泡对象 <div class="wrap"> wrap <div class ...
- 阿里云ECS每天一件事D4:安装mysql5.5.40
Linux平台上MySQL也没什么好说的了,首先准备一下软件环境: yum install gcc gcc-c++ gcc-g77 autoconf automake make cmake bison ...
- 转: git常用命令
# git配置 #---------------------------------------------- #配置用户名和邮箱: $ git config --global user.name & ...
- HDU 5735 Born Slippy(拆值DP+位运算)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5735 [题目大意] 给出一棵树,树上每个节点都有一个权值w,w不超过216,树的根为1,从一个点往 ...
- Android TextView 实现文字大小不同和文字颜色不同
效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\&q ...
- 纯css加伪类实现关闭提示创窗口
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...
- SQLite For .Net 已经整合了32位和64位
以前引用SQLite.DLL的时候,如果是winform等桌面程序,还要分32位和64位不一样的DLL,但最近已经整合为一个包了 打开vs的程序包管理器控制器,输入: install-package ...
- Product(大数相乘)
Description The problem is to multiply two integers X, Y. (0<=X,Y<10250) Input The input will ...