1.敌人和玩家若存活,敌人始终朝着玩家所在位置移动,所以要给玩家物体一个Tag:Player从而找到玩家

2.敌人的自动寻路使用Unity自带的NavMeshAgent寻路组件寻路,要先把场景中不动的物体勾选Static,然后Navigation-Bake烘焙

移动 代码如下:

 public class EnemyMovement : MonoBehaviour
{
Transform player; // 玩家位置变量.
PlayerHealth playerHealth; // 玩家生命脚本
EnemyHealth enemyHealth; // 敌人生命脚本
UnityEngine.AI.NavMeshAgent nav; //敌人身上寻路组件 void Awake ()
{
// 获取组件
player = GameObject.FindGameObjectWithTag ("Player").transform; //根据Tag找到玩家
playerHealth = player.GetComponent <PlayerHealth> ();
enemyHealth = GetComponent <EnemyHealth> ();
nav = GetComponent <UnityEngine.AI.NavMeshAgent> ();//获取物体身上寻路组件
} void Update ()
{
// 如果主角和敌人都存活
if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0)
{
// 使用寻路组件朝玩家位置寻路
nav.SetDestination (player.position);
}
else
{
//主角或敌人死亡,停止寻路,禁用寻路组件
nav.enabled = false;
}
}
}

3.敌人小怪身上状态机:默认移动,始终朝着敌人移动;直到玩家死亡,才切换到待机状态

4.小怪身上挂刚体组件,Drag和Angular Drag都设置为Inf无限大,使用重力取消物理属性。勾选禁用Y方向移动和XZ方向旋转

5.小怪身上加CapsuleCollider组件,调整适配,不勾选IsTrigger

6.小怪身上加大一点的SphereCollider组件,勾选IsTrigger,作为进入攻击玩家范围的触发判断用

注意:

7.本例中有三种怪,其中两种怪是用的一套动画,而大象是单独一套动画

但是,大象的动画状态机和其他的是一个逻辑,所以为了复用状态参数以及状态机的逻辑,不新建AnimatorController,而是

复用状态机:AnimatorOverrideController(针对动画不同,但是状态机逻辑与参数都相同的情况:如多种角色)

Controller拖入复用的源状态机,然后分别拖入相应动画:

因此需要注意,父AC的改变会影响override的AC。

SurvivalShooter学习笔记(三.敌人移动)的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  3. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  6. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  7. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. jquery下载保存文件

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. activeMq发送消息流程

    1,发送消息入口 Message message = messageBean.getMessageCreator().createMessage(session); producer.send(mes ...

  3. 08-hibernate注解-多对多双向外键关联

    多对多双向外键 双方持有对方的集合对象 其中一方设置: //教师类 @ManyToMany(mappedBy="teachers")   //mappedby表示教师交给学生来控制 ...

  4. asp.net 查询本地excel 获取信息

    string filepath = @"D:\test1.xls";         string sheetname = "Sheet5";          ...

  5. github 搜索技巧

    1.关键词 + 指定开发语言 bitcoin language:javascript 2.关键词 + stars 数量 + forks 数量 bitcoin stars:> forks:>

  6. Failure [INSTALL_FAILED_OLDER_SDK] [每件问题100块]

    问题描述:链接真机时候出现的问题 解决问题: minSdkVersion 10targetSdkVersion 22 修改这两个值

  7. atitit. 管理哲学 大毁灭--- 如何防止企业的自我毁灭

    atitit. 管理哲学 大毁灭---  如何防止企业的自我毁灭 1. 为什么企业组织的生命力 普遍不如国家组织的长久 2 2. 企业的不稳定因子如下:: 2 3. 决策制度 2 3.1. 我们老大说 ...

  8. [转]Ubuntu 12.04.3 LTS 安装 Qt5.1.1

    参考文档如下: http://blog.csdn.net/astonqa/article/details/9767043 http://www.qtcn.org/bbs/apps.php?q=diar ...

  9. pycharm 社区版

    这个是免费版.到3.1.13 http://pan.baidu.com/s/1bnvPdtt 没用过idea的商业版,不知道为什么它的更新那么蛋疼,不能增量更新,每次都得手动下载完整的压缩包.

  10. vsftpd服务tar包安装

    一般如果有网络ubuntu直接apt-get install 安装vsftpd服务即可. 没网络只能下好vsftpd的tar包自己安装配置. 1. 解压 tar -xvf vsftpd-3.0.2.t ...