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

news2024/10/5 14:12:21

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.coloradmin.cn/o/773557.html

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

相关文章

HttpRunner自动化之初始化和清理操作--hook机制

hook机制 Httprunner 框架中的 hook 机制相当于unittest框架中的 setup , teardown 函数,用来进行测试用例执行之前的环境初始化以及测试用例执行完毕之后的环境清理操作。 httprunner 中的 hooks 机制可以用在测试用例层级也可以用在测试步骤层级,其关键…

Uncaught TypeError: Cannot read properties of null (reading ‘name‘) 和NoSuchMethodException

问题1:Uncaught TypeError: Cannot read properties of null (reading name) 分析:这是由于还没登录,data.name 还没获取到值,所以为null 方法1:可以不管,它不会影响其他功能,当你登录后&#x…

2023年9月江苏/北京/深圳DAMA-CDGA/CDGP认证考试报名

据DAMA中国官方网站消息,2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启,相关事宜通知如下: 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA) 数据治理专家(CertifiedDataGovernanc…

书接上文——DETR评估可视化

在上一篇文章中,详细记录了如何使用官方开源的DETR项目开发训练自己的数据集,有详细的教程,感兴趣可以看下:《DETR (DEtection TRansformer)基于自建数据集开发构建目标检测模型超详细教程》 在文末我还附上了自己简单的绘图实践…

深入理解Spring事务传播机制-原理与实例说明

事务传播机制 简化记忆版本 REQUIRED:有事务加入,没有事务创建,Spring默认MANDATORY:必须在事务中被调用,没有抛异常SUPPORTS:有事务加入,没有以非事务运行NOT_SUPPORTED:不需要事务,有事务则挂起,避免回…

java学习003

Java数组 Java 语言中提供的数组是用来存储固定大小的同类型元素,这一点和PHP语言的可变数组长度不同。 声明变量数组 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar; // 首选的方法 或 …

C/C++ 高效判断素数原理和代码实现

素数判断 素数是质数,指一个数的因数只有1和本身,1不是质数 所以需要在i [2 , x-1] 内判断x%i 是否是0,如果存在整除的,就不是质数 在数据量大时,我们采用更高效的方式,求[2,sqrt(x)]即可 对于一个数x,如…

华为产品测评官-开发者之声 - 华为云CodeArts真实体验感想

华为产品测评官-开发者之声 - 华为云CodeArts真实体验感想 我先是在6月17日参加了华为在深圳举办的开发者大会,后面看到群里发的"2023华为产品测评官-开发者之声"活动,简单看了一下体验活动的具体事情,感觉…

亚马逊卖家如何自己快速处理恶意差评

亚马逊卖家朋友自己遇到被恶意差评不要慌,可以通过大量买家号进行自己处理,方法如下: 1、点击差评下的report abuse按钮 如果是买家恶意差评,评价与实际不符合,商家可以在评价下找到report abuse,点击按钮…

手把手带你实现ChatGLM2-6B的P-Tuning微调

参考文献:chatglm2ptuning 注意问题1:AttributeError: ‘Seq2SeqTrainer’ object has no attribute is_deepspeed_enabl torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 可能是版本太高,可以参考chatglm2的环境

使用Linux Deploy搭建服务器(三)Linux Deploy安装宝塔面板

宝塔面板是一个免费的服务器管理平台,可以在你的服务器上安装它,然后你就能很方便的管理你的服务器,以及搭建各种服务平台,在此基础上我们可以使用内网穿透,搭建出自己的Linux服务器。可以这样一个相对便宜的方式,进行Linux、网站搭建、web服务部署等一系列操作的学习。 …

实测结果公开:用户见证 StarRocks 存算分离优异性能!

StarRocks 在 3.0 版本正式引入了存算分离架构,从 shared-nothing 走向 shared-data,实现了架构上的重大升级。这一升级受到许多用户的高度期待,因为它不仅是企业降本增效的关键,也是 StarRocks 迈向云原生的必经之路。因此&#…

多模态系列论文--VLMO 详细解析

论文地址:VLMO: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts 论文代码:VLMO VLMO 1 研究动机2 本文贡献1:MOME模型2.1 模型结构2.2 损失函数2.3 结构优点2.4 结构缺点 3 本文贡献2:分阶段的训练策略4…

在DELL/HP server的UEFI mode下指定ISO安装Ubuntu

1.重启系统 在蓝色界面出现提示后选择F2进入 然后保存设置即可 下面是惠普server的iol5界面 输入f9进入system utilities 选择ISO 选择reset

从零开始设计RISC-V处理器——五级流水线之数据通路的设计

系列文章目录 (一)从零开始设计RISC-V处理器——指令系统 (二)从零开始设计RISC-V处理器——单周期处理器的设计 (三)从零开始设计RISC-V处理器——单周期处理器的仿真 (四)从零开始…

五十、Spring

1.Spring概述 1.1 Spring是什么 Spring是分层的 Java SE/EE应用 full-stack(全栈式) 轻量级开源框架。 提供了表现层 SpringMVC和持久层 Spring JDBC Template以及 业务层 事务管理等众多的企业级应用 技术,还能整合开源世界众多著名的第三方框架和类库&#xf…

javascript中使用class和prototype的区别

javascript中使用class和prototype的区别 本文将介绍在 JavaScript 何时使用class以及何时使用prototype。 prototype 首先先介绍一下prototype的概念,在Javascript中,所有的对象都从原型中继承属性和方法。 function Car(brand, vinNumber) {this.b…

实现 Rollup 插件alias 并使用vitest提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件,因为插件使用了ty…

【大模型】ChatGLM2-6B 快速使用

教程 Bilibili:清华开源ChatGLM2-6B安装使用 手把手教程,轻松掌握 代码:https://github.com/THUDM/ChatGLM2-6B 模型:https://huggingface.co/THUDM/chatglm2-6b、https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p%2Fc…

【Java从入门到大牛】面向对象进阶下篇

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Java从入门到大牛 🌠 首发时间:2023年7月19日 🦋 欢迎关注🖱点赞👍收藏🌟留言&#x1f43…