敌人AI攻击方法的编写

老师 | Trigger

学习者 |小白

出品 | Siki 学院

public class Enemy : MonoBehaviour
{//属性值public float movespeed = 3;private Vector3 bullectEulerAngles;private float v = -1;private float h;//引用private SpriteRenderer sr;public Sprite[] tanksprite;// 上 右 下 左public GameObject bullectPrafabs;public GameObject explosionPrefab;//计时器private float timeVal;private float timeValChangeDirection;//改变方向的计时器private void Awake(){sr = GetComponent<SpriteRenderer>();}  void Update(){//攻击的时间间隔if (timeVal >= 3f){Attack();}else{timeVal += Time.deltaTime;}}private void FixedUpdate(){Move();}private void Attack(){if (Input.GetKeyDown(KeyCode.Space)){Instantiate(bullectPrafabs, transform.position, Quaternion.Euler(transform.eulerAngles + bullectEulerAngles));timeVal = 0;}}//坦克的移动方法private void Move(){if (timeValChangeDirection >= 4)//如果攻击后4秒产生转向{int num = Random.Range(0, 8);if (num > 5)//向下走{v = -1;h = 0;}else if (num == 0)//往回走{v = 1;h = 0;}else if (num > 0 && num <= 2)//向左走{h = -1;v = 0;}else if (num > 2 && num <= 4)//向右走{h = 1;v = 0;}timeValChangeDirection = 0;     //计时器清零}else{timeValChangeDirection += Time.fixedDeltaTime;  //计时器累加}transform.Translate(Vector3.up *this.v* movespeed * Time.fixedDeltaTime, Space.World);if (v < 0){sr.sprite = tanksprite[2];bullectEulerAngles = new Vector3(0, 0, -180);}else if (v > 0){sr.sprite = tanksprite[0];bullectEulerAngles = new Vector3(0, 0, 0);}transform.Translate(Vector3.up * v * movespeed * Time.fixedDeltaTime, Space.World);if (v != 0){return;}transform.Translate(Vector3.right * h * movespeed * Time.fixedDeltaTime, Space.World);if (h < 0){sr.sprite = tanksprite[3];bullectEulerAngles = new Vector3(0, 0, 90);}else if (h > 0){sr.sprite = tanksprite[1];bullectEulerAngles = new Vector3(0, 0, -90);}      }private void Die(){     //爆炸特效Instantiate(explosionPrefab, transform.position, transform.rotation);//死亡方法Destroy(gameObject);}private void OnCollisionEnter2D(Collision2D collision){if (collision.gameObject.tag == "Enemy"){timeValChangeDirection = 4;}}}

SiKi学院有免费课程可以参考,不懂可以参考视频!

Unity 3D做2D坦克大战--敌人自动攻击AI编写相关推荐

  1. unity自动生成敌人_Unity 3D做2D坦克大战--敌人自动攻击AI编写

    敌人AI攻击方法的编写 老师 | Trigger 学习者 |小白 出品 | Siki 学院 ```java public class Enemy : MonoBehaviour { //属性值 pub ...

  2. Unity 3D做2D坦克大战,控制图片切换朝向的2种方法。

    老师 | Trigger 学习者 |小白 出品 | Siki 学院 第一种更换图片切换朝向的方法: public class Player:MonoBehaviour{public float mov ...

  3. Unity开发游戏--2D坦克大战(一)

    Unity开发游戏--2D坦克大战(一) 前言 开发环境 场景搭建 新建工程 导入素材 设置Camera 设置游戏窗口大小 保存场景 创建角色 创建图片角色 修改角色大小 生成Prefab 前言 游戏 ...

  4. Unity3D_(游戏)2D坦克大战 像素版

    2D坦克大战    像素版 游戏规则: 玩家通过上.下.左.右移动坦克,空格键发射子弹 敌人AI出身时朝向己方大本营(未防止游戏快速结束,心脏上方三个单位障碍物设为刚体) 当玩家被击杀次数>=3 ...

  5. 用python做一个坦克大战

    这是一个非常有意思的项目!如果你想用 Python 来做一个坦克大战游戏,可以考虑使用 Pygame 这个库.它是一个专门用于制作游戏的 Python 库,能够帮助你快速开发出一个坦克大战游戏. 首先 ...

  6. 基于ComblockEngine+Unity的联机版坦克大战(一)

    文章目录 阶段目标 环境搭建 流程设计 相关说明 相关代码 上述源码地址 写在前面的一段话: 之前准备用LuaServer写一个简单moba手游,后来觉得,LuaServer毕竟是前公司内部的产品,不 ...

  7. 小白学习Unity 3D做经典游戏坦克大战日常

    老师 | Trigger 学习者 |小白 出品 | Siki 学院 Hello,小伙伴们.接下来小白跟Trigger老师做一款2D游戏坦克大战.从素材.代码到场景和UI的游戏开发.小白把日常遇到的问题 ...

  8. Unity学习笔记5:2D坦克大战

    之前看了很长一段时间的视频,但是基本没有手动操作过,究竟沉淀了多少还真难说得清楚. 所以直接看实例视频跟着做了. 视频地址:http://www.sikiedu.com/my/course/90 un ...

  9. 超详细 Unity 大作业之 坦克大战

    本次大作业中,我选择的主题是制作一款简单的坦克大战小游戏,实现此项目借鉴并使用了BiliBili教程及资源和学姐的博,利用Unity自带的3D导航技术实现敌人坦克的自动导航. 演示视频:Unity大作 ...

最新文章

  1. GB:徐健/王师/黄适合作开发微生物组测序新方法2bRAD-M
  2. 网站如何才能吸引用户,增加网站点击率?
  3. 【grunt整合版】30分钟学会使用grunt打包前端代码
  4. 遭银行账号诈骗最快最有效自救法
  5. 5个技巧让你更好的编写 JavaScript(ES6) 中条件语句
  6. 局域网网速太慢的问题
  7. WebForm中 页面传参的总结
  8. Java主线程等待所有子线程执行完毕再执行解决办法集
  9. mysql key语句_mysql建表语句key的含义
  10. 通过企业微信服务端API接口进行群发应用消息
  11. 32位xp系统识别4G以上内存
  12. 【OpenCV】OpenCV实战从入门到精通之五 -- 教你使用Rect()函数
  13. 凯恩帝1000对刀图解_KND数控车床对刀方法
  14. 如何设置路由器wifi的用户黑名单?(使别人不能连接你家WIFI)
  15. 京东2021年全渠道GMV同比增长近80% 全年营收同步增长27.6%
  16. 企业如何管理终端软件安装
  17. 阿里云人机验证(无痕)完整流程以及注意事项
  18. 锐捷客户端-您不在许可范围中,请确认您的权限
  19. 第1章 持续交付2.0
  20. Android修改user版本默认关闭开发者选项模式,eng版本默认打开开发者选项模式

热门文章

  1. mate9 android os,华为Mate9评测:全新EMUI 5系统 永不卡顿的安卓机?
  2. 用IOS苹果手机看epub电子书用什么阅读软件好?
  3. 解决启动谷歌浏览器时打开2345主页
  4. 【学习笔记】彻底删除2345输入法
  5. 短视频剪辑怎么自学?短视频剪辑的教程分享
  6. oracle 插入表数据时,自动生成ID
  7. dlclose隐藏的秘密!
  8. RTL8197F/RTL8812F WiFi设置为WPA3加密手机提示拒绝连接问题解决方案
  9. web前端技术社区分享
  10. 操作系统相关基础知识