Unity坦克大战开发全流程——游戏场景——敌人——移动的敌人

游戏场景——敌人——移动的敌人

制作预制体

将坦克拖拽至场景中进行设置

写代码

让坦克在两点之间不停移动

随机坐标函数

然后在start()中调用即可

坦克要一直盯着玩家

当小于一定距离时,攻击玩家

重写开火逻辑

注意还要将其tag改成Monster!

当敌人死亡后,增加分数

重写死亡逻辑

最后再为敌人添加死亡特效即可

直到当前MonsterTank的代码为:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MonsterTank : TankBaseObj
{//坦克移动的目标地点public Transform targetPos;//坦克的随机坐标位置(在unity中进行关联)public Transform[] randomPos;//坦克炮台看向的目标public Transform lookAtTarget;//开火距离public int fireDis = 10;//检测时间public int fireOffsetTime = 1;public float nowTime = 0;//子弹与炮口public GameObject bullet;public Transform[] shootPos;//关联的图片public Texture maxHPBK;public Texture hpBK;//图片的坐标private Rect maxHPRect;private Rect hpRect;//显示血条计时时间private float showTime;void Start(){RandomPos();}// Update is called once per framevoid Update(){#region 让坦克在两点之间不停移动//控制坦克的移动transform.LookAt(targetPos);transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);//检测坐标距离if (Vector3.Distance(transform.position, targetPos.position) < 0.5f){RandomPos();}#endregion#region 坦克要一直盯着玩家if (lookAtTarget != null){transform.LookAt(lookAtTarget);//当与玩家的距离小于开火距离时,进行攻击if(Vector3.Distance(transform.position,lookAtTarget.position) < fireDis){nowTime += Time.deltaTime;if (nowTime >= fireOffsetTime){Fire();nowTime = 0;}}}#endregion}public void RandomPos(){if (randomPos.Length <= 0)return;targetPos = randomPos[Random.Range(0, randomPos.Length)];}public override void Fire(){//有多少个炮口就创建多少个子弹for (int i = 0; i < shootPos.Length; i++){GameObject obj = Instantiate(bullet, shootPos[i].transform.position, shootPos[i].transform.rotation);//控制子弹做什么BulletObj bulletObj = obj.GetComponent<BulletObj>();bulletObj.SetFather(this);}}public override void Dead(){base.Dead();//增加分数GamePanel.Instance.AddScore(10);}private void OnGUI(){if (showTime > 0){showTime -= Time.deltaTime;//设置坐标Vector3 screenPos = UnityEngine.Camera.main.WorldToScreenPoint(transform.position);screenPos.y = Screen.height - screenPos.y;//绘制底图maxHPRect.x = screenPos.x - 50;maxHPRect.y = screenPos.y - 50;maxHPRect.width = 100;maxHPRect.height = 15;GUI.DrawTexture(maxHPRect, maxHPBK);//绘制血条hpRect.x = screenPos.x - 50;hpRect.y = screenPos.y - 50;hpRect.width = (float)hp / maxHP * 100f;hpRect.height = 15;GUI.DrawTexture(hpRect, hpBK);}}public override void Wound(TankBaseObj other){base.Wound(other);showTime = 3;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟化分类和实现原理

6、虚拟化分类 &#xff08;1&#xff09;完全虚拟化 直接将Hypervisor跑在0环内核态&#xff0c;客户机os跑在1环&#xff0c;一旦触发敏感指令&#xff0c;由0环的VMM进行捕获翻译&#xff0c;从而模 拟这些指令。而运行在1环的GuestOS永远都不知道自己是个虚拟机。是完全…

【Transformer】深入理解Transformer模型2——深入认识理解(上)

前言 Transformer模型出自论文&#xff1a;《Attention is All You Need》 2017年 近年来&#xff0c;在自然语言处理领域和图像处理领域&#xff0c;Transformer模型都受到了极为广泛的关注&#xff0c;很多模型中都用到了Transformer或者是Transformer模型的变体&#xff0…

OpenCV实战 -- 维生素药片的检测记数

文章目录 检测记数原图经过操作开始进行消除粘连性--形态学变换总结实现方法1. 读取图片&#xff1a;2. 形态学处理&#xff1a;3. 二值化&#xff1a;4. 提取轮廓&#xff1a;5. 轮廓筛选和计数&#xff1a; 分水岭算法&#xff1a;逐行解释在基于距离变换的分水岭算法中&…

关于链表的一些问题

求链表的中间节点 可以定义两个指针&#xff0c;一个一次走两步一个一次走一步&#xff0c;当走的快的走到NULL时&#xff0c;走的慢的就是链表的中间节点。&#xff08;此法求出的偶数个节点的链表的中间节点是它中间的第二个&#xff09; 求倒数第K个节点 也可以定义两个指…

PowerShell Instal 一键部署gitea

gitea 前言 Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来…

新手快速上手掌握基础排序<一>

目录 引言 一&#xff1a;两数互换排序 1.画图分析 2.代码实现 二&#xff1a;三数换交换排序 1.例题举例 2.代码实现 3.再比如四数互换排序&#xff0c;也可以使用两数互换的方法来实现 &#xff0c;但最好使用基础的排序方法(冒泡法&#xff0c;选择法) 三&#xf…

PointNet人工智能深度学习简明图解

PointNet 是一种深度网络架构&#xff0c;它使用点云来实现从对象分类、零件分割到场景语义解析等应用。 它于 2017 年实现&#xff0c;是第一个直接将点云作为 3D 识别任务输入的架构。 本文的想法是使用 Pytorch 实现 PointNet 的分类模型&#xff0c;并可视化其转换以了解模…

【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】

一、导入必要的模块&#xff1a; 这篇博客将介绍如何使用Python编写一个爬虫程序&#xff0c;从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应&#xff0c;以及os模块处理文件和目录操作。 如果出现模块报错 进入控制台输入&#xff…

android开发调用百度地图api实现加载地图和定位

目录 一.踩的一些坑以及解决方法 1.权限声明不要少 2.地图初始化 3.定位问题 &#xff08;1&#xff09;监听器注册 &#xff08;2&#xff09;定位监听器类MyLocationListener的实现 &#xff08;3&#xff09;定位功能的调用 4.android studio连接真机调试问题 二.…

MySQL:索引

MySQL官方对索引的定义为: 索引 (Index) 是帮助MySQL高效获取数据的数据结构。 提取句子主干&#xff0c;就可以得到索引的本质:索引是数据结构。 1. 什么是索引&#xff0c;索引的作用 索引是一种用于快速查询和检索数据的数据结构&#xff0c;帮助mysql提高查询效率的数据…

ros2查看launch文件内需要提供的参数(接口):

格式&#xff1a;ros2 launch --show-args 包名称 launch文件名称 例如&#xff1a; ros2 launch --show-args ros_gz_sim gz_sim.python.py

行人重识别优化:Pose-Guided Feature Alignment for Occluded Person Re-Identification

文章记录了ICCV2019的一篇优化遮挡行人重识别论文的知识点&#xff1a;Pose-Guided Feature Alignment for Occluded Person Re-Identification 论文地址&#xff1a; https://yu-wu.net/pdf/ICCV2019_Occluded-reID.pdf Partial Feature Branch分支: PCB结构&#xff0c;将…

精致旅游网ROXANDREA 网页设计 html模板

一、需求分析 旅游网站通常具有多种功能&#xff0c;以下是一些常见的旅游网站功能&#xff1a; 酒店预订&#xff1a;旅游网站可以提供酒店预订服务&#xff0c;让用户搜索并预订符合其需求和预算的酒店房间。 机票预订&#xff1a;用户可以通过旅游网站搜索、比较和预订机票…

JavaScript 工具库 | PrefixFree给CSS自动添加浏览器前缀

新版的CSS拥有多个新属性&#xff0c;而标准有没有统一&#xff0c;有的浏览器厂商为了吸引更多的开发者和用户&#xff0c;已经加入了最新的CSS属性支持&#xff0c;这其中包含了很多炫酷的功能&#xff0c;但是我们在使用的时候&#xff0c;不得不在属性前面添加这些浏览器的…

Java项目:102SSM汽车租赁系统

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 汽车租赁系统基于SpringSpringMVCMybatis开发&#xff0c;系统使用shiro框架做权限安全控制&#xff0c;超级管理员登录系统后可根据自己的实际需求配角色…

uniapp的css样式图片大小截图展示

目录 截取图片前截取图片后第一种方式&#xff1a;代码第二种方式&#xff1a;代码最后 截取图片前 截取图片后 第一种方式&#xff1a;代码 <view class"swiper-box-img"><image class"swiper-box-img-img" :src"item.file_path" mod…

Windows系统历史版本简介详细版

学习目标&#xff1a; 目录 学习目标&#xff1a; 学习内容&#xff1a; 学习产出&#xff1a; Windows 11的全新用户界面设计&#xff1a;学习新的任务栏、开始菜单、窗口管理等界面元素的使用与操作。 Windows 11的新功能和特点&#xff1a;学习新的虚拟桌面、Microsoft Team…

【Latex错误:】Package fontspec: The font “SIMLI“ cannot be found. LaTex [行 37,列1]

【Latex错误&#xff1a;】Package fontspec: The font "SIMLI" cannot be found. LaTex [行 37&#xff0c;列1] 解决方案 错误详情如下图所示&#xff1a; 最近使用latex写毕业论文&#xff0c;效率是快&#xff0c;但是出些一些错误就难得搞了&#xff0c;上面的…

2023年终总结丨很苦,很酷!

文章目录 个人简介丨了解博主写在前面丨博主介绍年终总结丨博主成就年终总结丨博主想说年终总结丨学习芝士年终总结丨未来展望写在后面丨新年快乐 个人简介丨了解博主 主页地址&#xff1a;https://blog.csdn.net/m0_68111267 荣誉身份 ⭐2022年度CSDN 社区之星 Top6 ⭐2023年…

什么是SEO?

什么是SEO&#xff1f; SEO代表“搜索引擎优化”。这是通过非付费&#xff08;也称为“自然”&#xff09;搜索引擎结果来提高网站流量的质量和数量以及品牌曝光率的做法。 尽管有首字母缩略词&#xff0c;但 SEO 既关乎搜索引擎本身&#xff0c;也关乎人。这是关于了解人们在…