unity实现AI对战坦克
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对战坦克相关推荐
- 对战坦克大战(vc++)
对战坦克大战 转载请注明出处 本文章的下载地址,请单击此链接 本节将介绍一个和FC(FamilyComputer)上的经典游戏<坦克大战>类似的游戏--对战坦克 大战.这是一个4 人对战 ...
- DeepMind科学家:AI对战《星际争霸》胜算几何?
记者 | 周翔 AI科技大本营1月29日消息,在<麻省理工科技评论>与深科技举办的新兴科技峰会上,谷歌DeepMind科学家Oriol Vinyals在会上发表了主题为<AI对战星际 ...
- 2017“编程之美”终章:AI之战勇者为王
编者按:8月15日,第六届微软"编程之美"挑战赛在选手的火热比拼中圆满落下帷幕."编程之美"挑战赛是由微软主办,面向高校学生开展的大型编程比赛.自2012年起, ...
- Unity编写冰球对战游戏 2D版
Unity编写冰球对战游戏 2D版 Unity是一款非常方便.简洁.低成本的一款游戏引擎.在这里,向大家介绍这样用Unity这个引擎编写冰球对战游戏 因为Unity这个引擎可以编写3D游戏 ,同样的也 ...
- 为技术而聚,为AI而战,飞桨黑客马拉松第三期圆满收官!
2022年7月4日PaddlePaddle Hackathon飞桨黑客马拉松(以下简称为"飞桨黑客松")第三期正式上线,开发者热情响应,历经三个月完美收官! 本期飞桨黑客松依然是码 ...
- Unity期末AI足球游戏小项目(免费开源)
目录 游戏介绍 整体结构 部分截图 答辩论文截图 答辩问题 该游戏项目仅供参考,下载链接在文末.若需要答辩论文请私聊 版本:Unity 2018.4.36 游戏介绍 <Crazy Soccer& ...
- unity百度AI人体分析
前言 元旦的时候睡不着,也不想让自己闲下来颓废,就接一下百度AI玩玩,定位到百度智能云的人体识别. 实现步骤 一.百度智能云人体分析应用创建,得到自己的API Key和Secret Key 二.下载相 ...
- 【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望
GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面. ...
- Unity人工智能AI编程知识
群组行为: 模拟鸟群行走或人群行走过程的称之为群组行为 分散 .队列 . 聚集 分散:在群体内,个体必须与其他个体之间保持一定的距离,当小于那个距离时,就要分散开来. 实现原理:确定需要分散的范围se ...
最新文章
- matlab算法开发与C++调用
- Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法
- Docker 搜索镜像
- 录屏、直播中的鼠标键盘演示神器PointFocus
- UI Personalization persistent DB database table
- maven 中 pom.xml 配置文件标签说明,dependencyManagement和dependencies区别
- oracle 10修改字符集,Oracle 10g修改数据库字符集
- 郭麒麟、宋轶主演的《赘婿》1-8集拍得怎么样?
- [转]Android学习系列(1)--为App签名(为apk签名)
- save与persist差别
- c语言程序设计 江汉大学,C语言程序设计B卷
- ffmpeg 安装教程
- vue项目实现高德地图截图
- 视频教程-MMOARPG地下守护神_单机版实战视频课程(中部) -Unity3D
- QT学习-超漂亮的软件登录界面模块
- php使用grpc简单教程
- YL-56声音检测模块
- redis统计各种活跃数据
- ViewPager按比例显示图片(显示下一张图片的一部分)
- 拉扎维模集英文原版阅读笔记1