噩梦系列篇之敌人自动追击Player功能(NavMeshAgent)
敌人自动追击功能用到NavMeshAgent
制作NavMeshAgent:
首先选择地图,保持地图为static状态;
之后就是选择window里面的Navigation如下图:
然后点击Bake后得到如下图;蓝色地图区域就是表示可以自动寻路的区域
之后就是给敌人加入NavMeshAgent。。。
然后给敌人加入一个脚本enemymove();这样就实现了最简单的自动寻路去追击主角的功能。
using UnityEngine;
using System.Collections;public class enemymove : MonoBehaviour {private NavMeshAgent agent;private Transform player;void Awake(){agent = this.GetComponent<NavMeshAgent>();}void Start () {player = GameObject.FindGameObjectWithTag(Tag.player).transform;}void Update () {agent.SetDestination(player.position);//追击到主角的位置}
}
最简单的追击功能就此实现了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
设定一下enemy的动画状态机;如同player一样设定不介绍了直接看图:
之后为了完善追击功能和敌人动画的播放
首先为敌人设置刚体和collider(注意rigidbody的那两个属性把数值设置大。。player也是要设置大)
之后完善追踪及动画播放的代码:
using UnityEngine;
using System.Collections;public class enemymove : MonoBehaviour {private NavMeshAgent agent;private Transform player;private Animator anim;void Awake(){agent = this.GetComponent<NavMeshAgent>();anim = this.GetComponent<Animator>();}void Start () {player = GameObject.FindGameObjectWithTag(Tag.player).transform;}void Update () {if (Vector3.Distance(transform.position, player.position) < 2.5f)//如果在这个范围内停止追击{agent.Stop();//停止追击anim.SetBool("MOVE", false);}else{agent.SetDestination(player.position);//追击到player的位置anim.SetBool("MOVE", true);}}
}
噩梦系列篇之敌人自动追击Player功能(NavMeshAgent)相关推荐
- 噩梦系列篇之Player的动画播放控制
承接上一篇的继续!!!来看player的动画播放.每当按下键盘时,player就会有相应的动画.代码还是写在上个控制角色移动的脚本里 如下: using UnityEngine; using Syst ...
- 噩梦系列篇之Player随鼠标转向控制
接下来player应该跟随鼠标的移动而确定方向了: 首先要确定环境所在层:现在的环境就是Ground...把他的layer设置为Ground..... 接下里就是代码时刻,让我们coding起来: 只 ...
- 噩梦系列篇之Player的动画状态机
将player导入到unity里然后为了给角色建立一个状态机而建立一个Animation的文件夹,在里面建立Animator Controller并且命名为:PlayerAC:如图: 然后把Playe ...
- 【深入浅出MyBatis系列八】SQL自动生成插件
为什么80%的码农都做不了架构师?>>> #0 系列目录# 深入浅出MyBatis系列 [深入浅出MyBatis系列一]MyBatis入门 [深入浅出MyBatis系列二]配置 ...
- c语言中如何让鼠标在一个窗口之外不能点击_Excel系列教程:如何自动填充单元格...
小白学院,小白也能看懂的IT之家学院. 在此前IT之家的一篇文章中,有读者在评论区表示: 如果你坐在办公室里,却只会用Office,那你早就被老板炒了. 此外,该读者还希望小编不要用微软Office来 ...
- onenote 模板_onenote实用?炫酷功能系列篇②:用插件让效率翻倍
对我而言,onenote作为office系列的一员,最大的遗憾就是--竟然不支持VBA!office如此强大的一个通用神器,在onenote这里竟然直接被砍了.好在还有个替代品--Onetastic, ...
- coreelec 下载app_DY的瞎折腾系列 篇十三:N1多媒体系统CoreELEC升级指南
DY的瞎折腾系列 篇十三:N1多媒体系统CoreELEC升级指南 2019-04-15 18:31:07 70点赞 535收藏 292评论 感谢大家一直对N1系列的支持,由于CoreELEC刷入N1后 ...
- 信创办公--基于WPS的Word最佳实践系列(实现标题自动编号)
信创办公–基于WPS的Word最佳实践系列(实现标题自动编号) 1.应用背景 利用[导航窗格]可以对文档进行组织重排,对某一部分的顺序进行快速调换,但是如果标题前的编号是人工编号的话,编号是不会自动更 ...
- python办公自动化系列之金蝶K3自动登录(二)
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
最新文章
- 图论数学:矩阵树定理
- CTFshow php特性 web145
- Javascript面向对象编程(二):构造函数的继承
- art-template入门(五)之模板变量
- 中文幽默语料库构建与计算项目(幽默等级识别,幽默类型识别,隐喻类型识别,隐喻情绪识别)
- 精通HTML5+CSS3需要学什么?
- LINUX下载编译gperf
- 深入浅出设计模式之命令模式、适配器模式、外观模式
- Java IO _打印流
- 计算机d盘无法格式化,d盘无法格式化,小编教你解决D盘无法格式化的方法
- 3dsmax模型导入超图
- CSS 小技巧:如何保留 hover 的状态?
- 想搬去苏州生活了。。
- 电脑双系统怎么删除一个呢?教你快速删除
- 操作系统安全防护技术
- TFT-LCD LVGL与硬件交互
- Baxer双臂机器人Ubuntu20.04+ROS noetic开发环境配置
- Python使用traceback.print_exc()输出异常信息
- 【计算机视觉】简述对LFT-Net(大场景点云分割)的理解
- CnOpenData中国各省份工商注册企业分年份数量统计(含新增,注销企业数量)