【蓝图】p28-p29按键+鼠标点击实现开关门

p28-p29按键+鼠标点击实现开关门

  • p28,创建门的蓝图类
      • 创建一个Actor
            • 注意(当门的中心点不在边角上时)
      • 蓝图
      • 三个旋转区别
      • 按E键开关门
      • 使鼠标点击也可以开门
        • 可能遇到的bug问题

p28,创建门的蓝图类

actor和组件的区别、门的轴心点修改

创建一个Actor

请添加图片描述
添加一个静态网格体组件
请添加图片描述
创建一个门框
请添加图片描述
同理创建一个门Door
请添加图片描述

注意(当门的中心点不在边角上时)

创建一个Scene组件
请添加图片描述
把物体变换位置
请添加图片描述
这时只需要旋转Scene就可以旋转物体了
这种方法比较麻烦(注意要在3D建模软件里设置好坐标点)
继续之前的内容
组件搜索Box Collision(盒体碰撞),(注意,盒体碰撞要和Door在同一级,如果盒体碰撞在Door的下一级,开门时盒体碰撞会随门的旋转移动)
请添加图片描述
调整盒体碰撞大小
请添加图片描述

蓝图

在组件选中Box可以在细节中找到下图
请添加图片描述
创建组件开始重叠,组件结束重叠和时间轴
从组件拖拽一个Door到时间图表,拖拽出引脚搜索SetRelativeRotation(设置相对旋转)

三个旋转区别

SetActorRotation(设置Actor旋转)
SetRelativeRotation(设置相对旋转)
SetWorldRotation(设置场景旋转)
请添加图片描述
SetActorRotation的目标是Actor,整个蓝图类旋转,目标是自己
SetRelativeRotation和SetWorldRotation旋转的是蓝图类里的单个组件
SetRelativeRotation相对旋转是无论怎么转,自己都是(0,0,0)
SetWorldRotation世界坐标永远不会被改变,不会受物体改变而改变

继续绘制蓝图
蓝图如下图连接
请添加图片描述
把门拖拽到场景即可

按E键开关门

需要对开关门事件进行控制
请添加图片描述
在事件图表搜索Gate(门)(可以理解为必须有钥匙才可以打开门)
请添加图片描述
如图连接使玩家成为打开门的一个必须要素
创建蓝图E,连接Gate蓝图的Enter(进入)节点,但是这时进入游戏没有反应,需要新节点
创建蓝图节点Enable Imput(启用输入),Disable Input(禁用输入)和Get Player Controller(获取玩家控制器)
Get Player Controller(获取玩家控制器):告诉控制器是否开启了玩家键盘的输入
如下图连接
请添加图片描述
创建新结点Flip Flop(使玩家按下E键后第一次走A,第二次走B,第三次再走A,循环往复),如下图连接蓝图
请添加图片描述

使鼠标点击也可以开门

在组件选中Door,在细节面板找到On Clicked(点击时)(当鼠标点击之后触发事件)
用蓝图On Clicked替换掉蓝图E,在世界场景设置找到Game Mode(游戏模式),Game Mode Override(游戏模式重载)选择ThirdPersonGameMode(第三人称游戏模式)
请添加图片描述
下图配置了玩家的控制器,点击玩家控制器类的加号,创建新蓝图
请添加图片描述
勾选细节面板中的Mouse Interface(鼠标接口)中的Enable Touch Events(启用触控事件)、Enable Click Events(启用点击事件)、Show Mouse Cursor(显示鼠标光标)
打开Door_BP事件图表搜索Set Show Mouse Cursor(设置显示鼠标光标)(搜索不到可以关闭情景关联再搜索),把NewPlayerController中的显示鼠标光标关掉
如图连接蓝图请添加图片描述
此连接使靠近门出现鼠标,远离门鼠标光标消失

可能遇到的bug问题

第一次进入盒体碰撞没有开门,退出第二次进入才开门
问题分析:在组件中盒体碰撞在门的上一级,开关门时门会移动,会和盒体互相干扰(小bug),门和盒体被视为单独存在,两个蓝图事件会同时执行
解决办法1:让门和盒体在同一级
解决办法2:如下图连接蓝图请添加图片描述

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

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

相关文章

【Ajax】笔记-取消请求

在进行AJAX(Asynchronous JavaScript and XML) 请求时,有时候我们需要取消正在进行的请求。取消请求可以帮助我们提高用户体验,病减少不必要的网络流量和服务器负载。 取消请求的方法 在AJAX请求中,我们可以使用以下方法来取消正在进行的请求…

golang 日志库logrus和lumberjack 日志切割库实践

package mainimport (log "github.com/Sirupsen/logrus""gopkg.in/natefinch/lumberjack.v2" )func main() {logger : &lumberjack.Logger{// 日志输出文件路径Filename: "/var/log/myapp/foo.log",// 日志文件最大 size, 单位是 MBMaxSiz…

数字 IC 设计职位经典笔/面试题(二)

共100道经典笔试、面试题目(文末可全领) FPGA 中可以综合实现为 RAM/ROM/CAM 的三种资源及其注意事项? 三种资源:BLOCK RAM,触发器(FF),查找表(LUT)&#xf…

ROS:pluginlib

目录 一、前言二、概念三、作用四实际用例4.1需求4.2流程4.3准备4.4创建基类4.5创建插件4.6注册插件4.7构建插件库4.8使插件可用于ROS工具链4.8.1配置xml4.8.2导出插件 4.9使用插件4.10执行 一、前言 pluginlib直译是插件库,所谓插件字面意思就是可插拔的组件&…

河北幸福消费金融基于 Apache Doris 构建实时数仓,查询提速 400 倍!

本文导读: 随着河北幸福消费金融的客户数量和放贷金额持续上升,如何依托大数据、数据分析等技术来提供更好决策支持、提高工作效率和用户体验,成为了当前亟需解决的问题。基于此,公司决定搭建数据中台,从基于 TDH 的离…

Windows 如何锁定文件

一、背景 如果应用程序有操作本地文件的功能(如:读、写、复制、移动、删除等等),那么在测试或调试该应用程序时,肯定需要测试文件被其他应用程序锁定时,你的应用程序是如何处理的。 那么如何在本地模拟文件…

Ceph(分布式文件系统)

Ceph(分布式文件系统) 1、存储基础 单机存储设备 ●DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储 ●NAS&#xf…

基于springboot的地铁轨道交通运营系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【网站搭建】3 更换博客主题—butterfly

可以到官网选择想要更换的主题Themes | Hexo 我选用的是butterflyzhangzeli/hexo-theme-butterfly: A Hexo Theme: Butterfly (github.com) 在Hexo根目录打开终端执行拉去操作 下载配套文件 npm install hexo-renderer-pug hexo-renderer-stylus 打开_config.yml文件&#xf…

TCP实现FTP功能

目录 server client makefile 运行顺序 FTP(File Transfer Protocol)是一种用于在计算机网络上传输文件的标准协议。 它允许用户通过网络将文件从一个计算机(称为FTP服务器)传输到另一个计算机(称为FTP客户端&…

配置右键点击文件夹通过IDEA打开项目

0、 前言 你是不是每次打开idea项目时,都需要走一遍这样的流程: 1、先启动idea 2、然后手动选择项目路径 3、打开项目 于是在打开项目的路上就耗费了大量的时间。 这篇文章会教你通过配置,让项目可以直接通过右键打开,大大提升项…

XR应用云流化,多方面提升 XR 扩展现实体验!

无论是使用户能够协作设计电动赛车,还是帮助观众通过数字世界与自然互动,越来越多的企业利用XR扩展现实为用户提供沉浸式逼真的虚拟环境。 下一代沉浸式技术的应用越来越广泛,图形和人工智能的最新突破正在扩展XR的功能。这四种技术正在XR生态…

uniapp中refs获取打印是空对象{}的解决办法

场景复现 版本如下: "dcloudio/uni-app": "2.0.2-3080720230703001", "vue": "> 2.6.14 < 2.7", 开发中发现只要是view这些原始标签的ref都无法在任何地方获取到refs.xxx, 而组件标签如<myStep></myStep> 这种加ref…

【java】【基础1】数据类型运算符

目录 一、数据类型&#xff08;4大类8种&#xff09; 1.1类型转换 1、自动类型转换 2、表达式的自动类转换 3、强制类型转换 二、运算符 2.1基本算术运算符 2.2自增自减运算符 2.3赋值运算 2.4关系运算符 2.5逻辑运算符 2.6三元运算符 2.7运算符的优先级 三、API文档&am…

学习记录——SAM、SPM

Segment Anything Model&#xff08;SAM&#xff09; 能分割一切的模型 2023 SAM是一个提示型模型&#xff0c;其在1100万张图像上训练了超过10亿个掩码&#xff0c;实现了强大的零样本泛化。许多研究人员认为「这是 CV 的 GPT-3 时刻&#xff0c;因为 SAM 已经学会了物体是什…

F#奇妙游(14):F#实现WPF的绑定

WPF中的绑定 绑定在UI开发中是一个非常重要的概念&#xff0c;它可以让我们的UI界面和数据模型之间建立起联系&#xff0c;当数据模型发生变化时&#xff0c;UI界面也会随之变化&#xff0c;反之亦然。这样的好处是显而易见的&#xff0c;我们不需要手动去更新UI界面&#xff…

Unity 任意数据在Scene窗口Debug

任意数据在Scene窗口Debug &#x1f354;效果&#x1f96a;食用方法 &#x1f354;效果 如下所示可以很方便的把需要Debug的数据绘制到Scene中&#xff08;普通的Editor脚本只能够对MonoBehaviour进行Debug&#xff09; &#x1f96a;食用方法 &#x1f4a1;. 新建脚本继承Z…

目标检测算法:FPN思想解读

目标检测算法&#xff1a;FPN思想解读 说明 ​ FPN算法一种方法/思想&#xff0c;在许多的模型架构中都经常采用&#xff0c;也是提高模型精度的重要方法。 免责申明 ​ 有误写/错写/错误观点/错误解读&#xff0c;或者大家有其它见解&#xff0c;都可以在评论区指出&#xff0…

chatGPT指令大全可免费使用网站列表chatGPT4试用方案

指令列表 写作助理 &#x1f449; 最常使用的 prompt&#xff0c;用于优化文本的语法、清晰度和简洁度&#xff0c;提高可读性。作为一名中文写作改进助理&#xff0c;你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性&#xff0c;同时分解长句&#xff0c;减少…

手写代码系列

(1)手写clearfix .clearfix:after{content:; display:table;clear:both;} (2) 手写圣杯模型 (3)手写深拷贝 递归 const obj3={age:20,name:xxx,address:{} }, arr:[a,b,c] function deeepClone(obj={}){} (4)手写画图解释原型链(class的原型和本质)