【UE4 塔防游戏系列】05-制作可跟踪旋转的炮塔

news2024/11/25 13:46:37

目录

效果

步骤

一、设置游戏观察视角 

二、设置PlayerController

三、制作可跟踪旋转的炮塔


效果

 

步骤

一、设置游戏观察视角 

在视口中调整好位置,能够看到敌人行走的全部路线即可。然后在此处创建CameraActor

 打开关卡蓝图,设置使用这个相机的视角

 在世界场景设置中,默认的pawn类选择None

 此时运行游戏,观察视角就是固定的观察视角。

二、设置PlayerController

打开“TaFangGamePlayerController”,勾选显示鼠标光标和启用点击事件。

三、制作可跟踪旋转的炮塔

3.1 新建一个Actor蓝图类,命名为“BP_TowerBase”

 

3.2 找到用来作为炮塔的骨架网格体如下:

在“BP_TowerBase”中添加该骨架网格体

 接下来为了让炮塔能够检测范围内的敌人,在事件图表中添加如下节点

首先创建一个定时器,定时器每隔0.5s执行一次自定义事件,然后将定时器作为变量“DetectEnemiesHandler”

 自定义事件命名为“DetectEnemies”,表示用来检测炮塔周围的敌人

 新建一个数组变量,命名为“AllEnemys”,用来储存炮塔检测到的所有敌人

 首先清空数组“AllEnemys”,检测球形范围内的所有Pawn对象

 将检测到的Pawn对象数组进行遍历,判断数组中的每一个对象的类型是否是“TotalEnemyCategory”类,如果是的话就将其加入数组“AllEnemys”

 遍历完成后通过数组“AllEnemys”的包含的元素个数判断炮塔当前是否检测到敌人

 如果炮塔检测到了敌人就从检测到的敌人数组中随机选择一个元素作为当前炮塔即将锁定攻击的敌人。将随机选择到的敌人作为变量“ChoosedEnemy”

 找到炮塔要攻击的目标后就清除这个定时器。

接下来让炮塔根据检测到的敌人进行旋转,当被选中的敌人是有效时,让炮塔进行旋转

判断当前选中的敌人是否脱离范围,如果脱离范围就重新开始检测。

 运行效果如文章开头所示。

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

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

相关文章

【Kaggle】初学者几个冷门的操作总结

文章目录 一、如何看当前的目录?二、Kaggle如何切换路径?三、与包安装或设置有关的错误四、如何把 Kaggle 上的 input 数据转到 output 中? 一、如何看当前的目录? 在 Linux 中,你可以使用 pwd 命令来查看当前所在的目…

UML与SYSML的关系

UML与SysML的联系 UML(统一建模语言)和SysML(系统建模语言)是两种与建模相关的语言,它们之间存在联系和区别。 SysML的图分类如下图所示。 联系 SysML是基于UML的,它重用了UML 2的子集,并提…

MySQL持久化数据——主从分离 Linux下创建2个MySQL的Docker容器 挂载方式启动 配置主从

目录 引出数据库的事务1.原子性2.一致性3.隔离性4.持久性 MySQL持久化数据0.在宿主机centos创建主的文件夹1.拷贝my.cnf配置文件2.挂载方式启动主mysql3.修改my.cnf文件的权限【bug】mysql: [ERROR] unknown variable server-id200. 3.修改主的my.cof文件4.创建主从账号slave5.…

Mysql索引实战

Mysql索引实战 一:概述1.1 索引如何提高查询效率: 二:结构2.1 主要索引结构2.2 详解BTree2.2.1 二叉树2.2.2 红黑树2.2.3 B-Tree2.2.4 BTree2.2.5 为什么InnoDB存储引擎选择使用Btree索引结构? 三:索引分类3.1 按照作用…

使用fast测试的错误

错误:Connection refused: connect 分析&解决 检查服务的端口号和fast生成请求时的端口号是否一致,不一致会报上面的错误 分析:设置服务配置的方法很多,可以写在配置文件里,也可以写在命令行里,当有多…

windows nodejs 版本切换

一、按健winR弹出窗口,键盘输入cmd,然后敲回车。然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径。 二、找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除。 三、从官网下载安装包 https://github.com/…

轻量级性能测试工具 wrk 应该如何使用?

项目设计之初或者是项目快要结束的时候,大佬就会问我们,这个服务性能测试的结果是什么,QPS 可以达到多少,RPS 又能达到多少?接口性能可以满足未来生产环境的实际情况吗?有没有自己测试过自己接口的吞吐量&a…

MongoDB安装配置教程(详细版)

前言:MongoDB是前端开发人员普遍使用的数据库,因为MongoDB不需要图形界面,是一个基于分布式文件存储的开源数据库系统。MongoDB 将数据存储为一个文档,数据结构由键值对(key>value)组成;MongoDB 文档类似于 JSON 对…

Flutter:自定义错误显示

为什么要自定义错误处理 以下面数组越界的错误为例&#xff1a; class _YcHomeBodyState extends State<YcHomeBody> {List<String> list [苹果, 香蕉];overrideWidget build(BuildContext context) {return Center(child: Column(children: [Text(list[0]),Tex…

小区物业管理信息系统设计与实现(论文+源码)

小区物业管理信息系统设计与实现(论文源码) 本篇 论文源码私我 以上内容只是精简版 还有很多原创类型论文 摘 要 随着互联网的发展&#xff0c;网络技术的发展变得极其重要&#xff0c;所以依靠计算机处理业务成为了一种社会普遍的现状。管理方式也自然而然的向着现代化技术方…

python_day8_timeline

带时间线的柱状图 导包 from pyecharts.charts import Bar, Timeline from pyecharts.options import * from pyecharts.globals import *创建柱状图1 bar1 Bar() bar1.add_xaxis([中国, USA, 不列颠]) bar1.add_yaxis(GDP, [30, 20, 10],label_optsLabelOpts(position&quo…

【Linux详解】——文件系统(磁盘结构、软硬链接、动静态库)

&#x1f4d6; 前言&#xff1a;本期介绍文件系统。 目录 &#x1f552; 1. 磁盘结构&#x1f558; 1.1 物理结构&#x1f558; 1.2 存储结构&#x1f558; 1.3 逻辑结构 &#x1f552; 2. 文件系统&#x1f558; 2.1 对 IO 单位的优化&#x1f558; 2.2 磁盘分区与分组&#x…

一套电子病历系统源码(EMR)

EMR电子病历系统源码 电子病历系统面向门诊医生和病房临床医生&#xff0c;实现了医生日常阅读、书写病历和医院管理病历的需求&#xff0c;它包括知识库管理、病历模版制作、医生书写病历、开各种检查检验申请单、查询各种报告单、电子病历浏览、病历质量控制等功能。 它将病…

JMeter基础 — JMeter聚合报告详解

提示&#xff1a;聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容&#xff0c;不做示例演示。 1、聚合报告介绍 在使用JMeter进行性能测试时&#xff0c;聚合报告(Aggregate Report)可以说是必用的监听器。 &#xff08;1&…

【微信小程序创作之路】- 小程序窗口整体配置(导航栏、标题)

【微信小程序创作之路】- 小程序窗口导航栏配置 第五章 微信小程序窗口导航栏配置 文章目录 【微信小程序创作之路】- 小程序窗口导航栏配置前言一、入口文件的配置二、页面配置三、全局默认窗口配置1.navigationBarTitleText&#xff1a;导航栏标题文字2.navigationBarBackgr…

基于ChatGPT上线《你说我猜》小游戏

摘要 AIGC、GPT、休闲小游戏三者可以怎么结合&#xff1f; AIGC、GPT与小游戏的结合为游戏体验带来了新的可能性。AIGC&#xff08;Artificial Intelligence Game Content&#xff09;作为一种人工智能技术&#xff0c;可以自动生成任务、剧情和角色对话等游戏元素&#xff0c…

安卓:Fragment

一、Fragment介绍 Fragment 是 Android 平台上的一种 UI 组件&#xff0c;用于构建灵活且可复用的界面模块。每个 Fragment 都有自己的生命周期&#xff0c;可以嵌入到 Activity 中&#xff0c;并在一个 Activity 内部管理其自己的布局和行为。通过使用 Fragment&#xff0c;可…

1000多道大厂Java真题汇总。刷完这一套高质量题集,这个金九银十妥妥的

又是一年金九银十&#xff01; 纵观今年的技术招聘市场&#xff0c;Java依旧是当仁不让的霸主&#xff01;即便遭受Go等新兴语言不断冲击&#xff0c;依旧岿然不动。究其原因&#xff1a; Java有着极其成熟的生态&#xff0c;这个不用我多说&#xff1b;Java在运维、可观测性…

el-table实现动态表头,自定义斑马纹等功能

需求&#xff1a;1.根据选择的日期时间&#xff0c;实现表头的动态显示功能 2.修改默认表头灰色样式&#xff0c; 3.斑马纹偶数灰色改为奇数为灰色 4.表格某一行加分割线区分 1.效果 2.动态表格实现 1.height&#xff1a;表格的高度设置&#xff0c;内容超出后会显示滚动条&a…

类和对象(二)

目录 一、类的六个默认成员函数 二、构造函数 2.1 概念 2.2 特性 三、析构函数 3.1 概念 3.2 特性 四、拷贝构造函数 4.1 概念 4.2 特性 五、赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载特性 六、const修饰成员函数 七、取地址及const取地址操作符重载 一…