unity实现AI对战坦克

游戏要求

  • 使用“感知-思考-行为”模型,建模 AI 坦克
  • 场景中要放置一些障碍阻挡对手视线
  • 坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射线探测对手方位
  • AI 坦克必须在有目标条件下使用导航,并能绕过障碍。(失去目标时策略自己思考)
  • 实现人机对战

具体实现

参考师兄的博客https://blog.csdn.net/Jenny_Shirunhao/article/details/103337423,Bake生成导航网格图之前的步骤就不赘述了,烘焙效果如下:

为AI坦克添加脚本使其能够跟踪玩家的坦克

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;public class TrackTarget : MonoBehaviour
{public GameObject target;NavMeshAgent nav;void Start(){nav = GetComponent<NavMeshAgent>();}void OnTriggerEnter(Collider collider){if (collider.gameObject.tag == "Player"){nav.SetDestination(target.transform.position);}}
}

AI通过碰撞体的tag来判断是否是玩家,为使上面代码正常运行,需要给AI坦克增加碰撞体,以及将玩家坦克的标签设为Player。

AI坦克还不够多,再在地图上放几个。

使AI坦克发射炮弹

修改Fire_Control_CS的代码如下:

float count = 4.0f;
void Update (){if (idScript.isPlayer) {#if UNITY_ANDROID || UNITY_IPHONEMobile_Input ();#elseDesktop_Input ();#endif}else{count -= Time.deltaTime;if(count <= 0){Fire();count = 4.0f;}}}

坦克还不够多,再在地图上放几个。

腹背受敌,要的就是这种感觉。

坦克默认,受到攻击时显示血条,为了时刻能显示玩家的血条,修改Damage_Control_CS代码如下:

 if(idScript.isPlayer){displayScript.Get_Damage(durability, initialDurability);}// Destructif (idScript.isPlayer) {#if UNITY_ANDROID || UNITY_IPHONEif (CrossPlatformInputManager.GetButtonDown ("Destruct")) {#elseif (Input.GetKeyDown (KeyCode.Return)) {#endifStart_Destroying ();}}

保存运行,看到血条如下:

游戏效果



仓库地址

github链接

unity实现AI对战坦克相关推荐

  1. 对战坦克大战(vc++)

     对战坦克大战 转载请注明出处 本文章的下载地址,请单击此链接 本节将介绍一个和FC(FamilyComputer)上的经典游戏<坦克大战>类似的游戏--对战坦克 大战.这是一个4 人对战 ...

  2. DeepMind科学家:AI对战《星际争霸》胜算几何?

    记者 | 周翔 AI科技大本营1月29日消息,在<麻省理工科技评论>与深科技举办的新兴科技峰会上,谷歌DeepMind科学家Oriol Vinyals在会上发表了主题为<AI对战星际 ...

  3. 2017“编程之美”终章:AI之战勇者为王

    编者按:8月15日,第六届微软"编程之美"挑战赛在选手的火热比拼中圆满落下帷幕."编程之美"挑战赛是由微软主办,面向高校学生开展的大型编程比赛.自2012年起, ...

  4. Unity编写冰球对战游戏 2D版

    Unity编写冰球对战游戏 2D版 Unity是一款非常方便.简洁.低成本的一款游戏引擎.在这里,向大家介绍这样用Unity这个引擎编写冰球对战游戏 因为Unity这个引擎可以编写3D游戏 ,同样的也 ...

  5. 为技术而聚,为AI而战,飞桨黑客马拉松第三期圆满收官!

    2022年7月4日PaddlePaddle Hackathon飞桨黑客马拉松(以下简称为"飞桨黑客松")第三期正式上线,开发者热情响应,历经三个月完美收官! 本期飞桨黑客松依然是码 ...

  6. Unity期末AI足球游戏小项目(免费开源)

    目录 游戏介绍 整体结构 部分截图 答辩论文截图 答辩问题 该游戏项目仅供参考,下载链接在文末.若需要答辩论文请私聊 版本:Unity 2018.4.36 游戏介绍 <Crazy Soccer& ...

  7. unity百度AI人体分析

    前言 元旦的时候睡不着,也不想让自己闲下来颓废,就接一下百度AI玩玩,定位到百度智能云的人体识别. 实现步骤 一.百度智能云人体分析应用创建,得到自己的API Key和Secret Key 二.下载相 ...

  8. 【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望

    GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面. ...

  9. Unity人工智能AI编程知识

    群组行为: 模拟鸟群行走或人群行走过程的称之为群组行为 分散 .队列 . 聚集 分散:在群体内,个体必须与其他个体之间保持一定的距离,当小于那个距离时,就要分散开来. 实现原理:确定需要分散的范围se ...

最新文章

  1. matlab算法开发与C++调用
  2. Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法
  3. Docker 搜索镜像
  4. 录屏、直播中的鼠标键盘演示神器PointFocus
  5. UI Personalization persistent DB database table
  6. maven 中 pom.xml 配置文件标签说明,dependencyManagement和dependencies区别
  7. oracle 10修改字符集,Oracle 10g修改数据库字符集
  8. 郭麒麟、宋轶主演的《赘婿》1-8集拍得怎么样?
  9. [转]Android学习系列(1)--为App签名(为apk签名)
  10. save与persist差别
  11. c语言程序设计 江汉大学,C语言程序设计B卷
  12. ffmpeg 安装教程
  13. vue项目实现高德地图截图
  14. 视频教程-MMOARPG地下守护神_单机版实战视频课程(中部) -Unity3D
  15. QT学习-超漂亮的软件登录界面模块
  16. php使用grpc简单教程
  17. YL-56声音检测模块
  18. redis统计各种活跃数据
  19. ViewPager按比例显示图片(显示下一张图片的一部分)
  20. 拉扎维模集英文原版阅读笔记1

热门文章

  1. 【整理】vba中MsgBox的参数及用法
  2. vscode1.65.2 + anaconda 在python拓展为2022.2.1924087327版本上的问题及解决
  3. 语音情感识别--语音(声音的预处理)
  4. Android 图片选择库美哭了
  5. html+css简单立体导航栏
  6. 微信小程序的运营策略六大技巧
  7. win10文件发生损毁,扫描系统并进行修复
  8. CreateEvent使用
  9. 《导航贴》- Unity手册,系统实战学习
  10. html5游戏偷菜源码,偷菜游戏原码