敌人自动追击功能用到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)相关推荐

  1. 噩梦系列篇之Player的动画播放控制

    承接上一篇的继续!!!来看player的动画播放.每当按下键盘时,player就会有相应的动画.代码还是写在上个控制角色移动的脚本里 如下: using UnityEngine; using Syst ...

  2. 噩梦系列篇之Player随鼠标转向控制

    接下来player应该跟随鼠标的移动而确定方向了: 首先要确定环境所在层:现在的环境就是Ground...把他的layer设置为Ground..... 接下里就是代码时刻,让我们coding起来: 只 ...

  3. 噩梦系列篇之Player的动画状态机

    将player导入到unity里然后为了给角色建立一个状态机而建立一个Animation的文件夹,在里面建立Animator Controller并且命名为:PlayerAC:如图: 然后把Playe ...

  4. 【深入浅出MyBatis系列八】SQL自动生成插件

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 深入浅出MyBatis系列 [深入浅出MyBatis系列一]MyBatis入门 [深入浅出MyBatis系列二]配置 ...

  5. c语言中如何让鼠标在一个窗口之外不能点击_Excel系列教程:如何自动填充单元格...

    小白学院,小白也能看懂的IT之家学院. 在此前IT之家的一篇文章中,有读者在评论区表示: 如果你坐在办公室里,却只会用Office,那你早就被老板炒了. 此外,该读者还希望小编不要用微软Office来 ...

  6. onenote 模板_onenote实用?炫酷功能系列篇②:用插件让效率翻倍

    对我而言,onenote作为office系列的一员,最大的遗憾就是--竟然不支持VBA!office如此强大的一个通用神器,在onenote这里竟然直接被砍了.好在还有个替代品--Onetastic, ...

  7. coreelec 下载app_DY的瞎折腾系列 篇十三:N1多媒体系统CoreELEC升级指南

    DY的瞎折腾系列 篇十三:N1多媒体系统CoreELEC升级指南 2019-04-15 18:31:07 70点赞 535收藏 292评论 感谢大家一直对N1系列的支持,由于CoreELEC刷入N1后 ...

  8. 信创办公--基于WPS的Word最佳实践系列(实现标题自动编号)

    信创办公–基于WPS的Word最佳实践系列(实现标题自动编号) 1.应用背景 利用[导航窗格]可以对文档进行组织重排,对某一部分的顺序进行快速调换,但是如果标题前的编号是人工编号的话,编号是不会自动更 ...

  9. python办公自动化系列之金蝶K3自动登录(二)

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

最新文章

  1. 图论数学:矩阵树定理
  2. CTFshow php特性 web145
  3. Javascript面向对象编程(二):构造函数的继承
  4. art-template入门(五)之模板变量
  5. 中文幽默语料库构建与计算项目(幽默等级识别,幽默类型识别,隐喻类型识别,隐喻情绪识别)
  6. 精通HTML5+CSS3需要学什么?
  7. LINUX下载编译gperf
  8. 深入浅出设计模式之命令模式、适配器模式、外观模式
  9. Java IO _打印流
  10. 计算机d盘无法格式化,d盘无法格式化,小编教你解决D盘无法格式化的方法
  11. 3dsmax模型导入超图
  12. CSS 小技巧:如何保留 hover 的状态?
  13. 想搬去苏州生活了。。
  14. 电脑双系统怎么删除一个呢?教你快速删除
  15. 操作系统安全防护技术
  16. TFT-LCD LVGL与硬件交互
  17. Baxer双臂机器人Ubuntu20.04+ROS noetic开发环境配置
  18. Python使用traceback.print_exc()输出异常信息
  19. 【计算机视觉】简述对LFT-Net(大场景点云分割)的理解
  20. CnOpenData中国各省份工商注册企业分年份数量统计(含新增,注销企业数量)

热门文章

  1. 【LigerUI实战】Grid弹出编辑popup
  2. 华为版ChatGPT要来了!
  3. Qt Creator基本使用方法学习
  4. Dell PowerEdge R730重装ubnutu18.04系统
  5. 微软经典面试题(附答案)
  6. python isin函数_pandas中isin()函数及其逆函数使用
  7. 【CSS】圣杯、双飞翼布局
  8. 编程学习方法分享 以及谈谈为什么不建议转行就业的同学自学
  9. 调频无线话筒的电路图
  10. 用c语言为程序分配内存,关于C语言程序的内存分配的入门知识学习