【蓝图】p46角色上下车功能

这里写目录标题

  • p46角色上下车功能
    • 上车(控制权切换)
    • 让角色和汽车一起移动
      • GetWorldTransform(获取场景变换)
      • break(拆分变换)
      • AttachActorToComponent(附加Actor到组件)
    • 下车

p46角色上下车功能

添加一个车的蓝图(可以添加官方的载具游戏的车),在内容浏览器-》添加-》功能包-》载具类游戏
请添加图片描述
在VehicleBP-》Sedan-》Sedan,拖拽到视口中
请添加图片描述
先给车添加一个碰撞盒子,使玩家靠近可以交互开车,打开Sedan蓝图
在Sedan蓝图类中添加新事件图表,重命名为上下车

上车(控制权切换)

添加变量VehicleRef(车辆裁判),变量类型更改为汽车的蓝图类Sedan,对象引用
请添加图片描述
创建蓝图
在玩家第三人称蓝图中创建键盘 F,拖出Vechile Ref,拖出引脚搜索‘?is valid’,从Vechile Ref急促拖出引脚搜索自定义事件“上车”
当角色靠近车,ThirdPersonCharacter蓝图的Vechile Ref会被赋值,如果赋值了按F走Is Valid ,如果没有赋值按F走Is Not Valid
请添加图片描述
创建组件开始重叠(Box)和组件结束重叠(Box),这是为了让角色在触碰到盒体后给ThirdPersonCharacter蓝图的Vechile Ref赋值
怎么使触发盒子通信ThirdPersonCharacter蓝图的Vechile Ref呢?
使用类型转换,并使用“设置Vechile Ref”,设置就需要给它一个数值,从“设置Vechile Ref”的Vechile Ref拉出引线搜索self(获得一个对自己的引用)
即在玩家和车重叠时按F就把自己赋给了ThirdPersonCharacter蓝图的Vechile Ref
如下连接蓝图
请添加图片描述
离开盒体碰撞区域时要取消给ThirdPersonCharacter蓝图的Vechile Ref的赋值,去掉self蓝图即可,什么都不给SET,它就变为空的了

创建Gate,获取玩家控制器,控制,如图连接
请添加图片描述
蓝图“控制”的对象为汽车,所以,从In Pawn拉出引线,搜索self(获得一个对自己的引用)
请添加图片描述
当角色靠近车,ThirdPersonCharacter蓝图的Vechile Ref会被赋值,之后再按F间就可以进行蓝图通讯,触发Sedan内的自定义事件上车,

如此,即可在角色靠近车使,按键盘F,进行控制权切换了
但是现在切换后人是没上车的
请添加图片描述

让角色和汽车一起移动

在组件搜索Sphere Collision(球体碰撞),在细节面板的形状更改球体半径为16,把它放在一个正确的位置上,在collision的碰撞预设改成NoCollision,添加Sphere Collision的目的是定一个位置
请添加图片描述
请添加图片描述

GetWorldTransform(获取场景变换)

在Sedan蓝图组件中拖拽Sphere到上下车图表中,拉出引脚搜索GetWorldTransform(获取场景变换)
请添加图片描述

break(拆分变换)

从GetWorldTransform(获取场景变换)的Return Value引脚拉出引线搜索break(拆分变换)
请添加图片描述
Location(位置)
Rotation(旋转)
Scale(缩放)
创建蓝图“设置Actor变换”
如图连接
请添加图片描述
但是现在蓝图“设置Actor变换”没有目标,拖拽住目标伸出引线,拉到自定义事件“上车”处,会显示一个添加引脚到节点,连接
请添加图片描述
如此会发现ThirdPersonCharacter蓝图的事件上车多了一个目标
请添加图片描述
从此新增的目标拖拽引线搜索myself(获得对此蓝图实例的引用),此操作可以使ThirdPersonCharacter蓝图类里的变量传到Sedan中
现在上车,车会旋转飞出去,因为卡了碰撞,人也有碰撞,车也有碰撞,两个碰撞相排斥
从事件上车的目标拉出引线搜索设置Actor启用碰撞,注意,不要勾选,如图连接
请添加图片描述
现在解决了碰撞相斥的问题,而且角色会瞬间到达上车位置,但是角色不会随着车进行移动

选中自定义事件上车的目标,拖出引线,选择提升为变量
如图连接
请添加图片描述

AttachActorToComponent(附加Actor到组件)

Socket Name(骨骼名字):当玩家如果带枪,此节点输入骨骼的名字,可以把枪贴到此骨骼上
Location Rule选择以什么为参考
Rotaion Rule选择以什么为参考
Scale Rule选择以什么为参考
保持相对:相对于父类,在此问题中相对于SphereUp,会造成角色不知道跑到哪了
保持场景:相对于世界坐标,在此问题中应使用此
对其到目标

将Sphere重命名为SphereUp,拉出SphereUp,拉出引线搜索attach to,可以看到两个附加Actor到组件,附加组件到组件,这两个目标不一样,一个是Actor,另一个是组件,选择AttachActorToComponent(附加Actor到组件)
请添加图片描述
将变量目标重命名为小白人
连接蓝图
请添加图片描述
如此把角色附加到了SphereUp上
附加到汽车上不好调整角色位置,不如先在车上定位一个点,把角色附加到此点上
AttachActorToComponent(附加Actor到组件)Location Rule、Rotaion Rule、Scale Rule选择以场景为参考,如此角色就会和车一起移动了
上车蓝图总览
请添加图片描述

下车

下车的蓝图创建思路正好和上车相反

在Sedan蓝图类内创建“键盘 F”,为什么在Sedan蓝图类创建?因为上车时已经切换了控制权,所以只会在切换了控制权的这个蓝图类里才能响应,所以“键盘 F”创建在Sedan蓝图类内

如图连接蓝图,此蓝图是为了规避bug风险
请添加图片描述
和AttachActorToComponent(附加Actor到组件)相对应的是DetachFromActor(从Actor分离),在Location Rule、Rotation Rule、Scale Rule选择保持场景
请添加图片描述
现在如果在开车的状态下,按下F键,角色会脱离汽车

放置一个下车位置
请添加图片描述
如图连接蓝图
请添加图片描述
注意不要直接连接设置Actor变换的Rotation,如果连接,下车时如果车是倾斜的,角色下车后也会是倾斜的,一定要分割结构体引脚,连接z轴
请添加图片描述
开启角色碰撞,注意,要打勾
请添加图片描述
使镜头有过渡
请添加图片描述
切换回控制权
将小白人的变量类型转换成pawn,不要忘记自定义事件上车的小白人引脚,也要改成pawn(这是之前的失误)
请添加图片描述

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

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

相关文章

记录一次stopwatchThreadLocal为空的问题及解法

Component Slf4j public class ApiTimeMonitorInterceptor extends HandlerInterceptorAdapter {private ThreadLocal<Stopwatch> stopwatchThreadLocal new NamedThreadLocal<>("api_time_monitor");//外部使用public long getElapsedMs() {Stopwatch …

2023华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响

# 1 赛题 C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情…

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 5

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

43. 字符串相乘(leetcode刷题记录)

字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 class Solution { public:string multiply(stri…

UniPro助力金融企业数字化转型 强化项目协作与跟踪

根据一份来自Standish Group的研究报告&#xff08;"CHAOS Report"&#xff09;&#xff0c;该报告对美国各行业的项目进行了调查&#xff0c;结果显示仅有不到一半&#xff08;约44%&#xff09;的项目能够成功按时完成&#xff0c;并达到预期的业务目标。其中&…

计算两条直线夹角(C++)

计算两条直线的锐角可以使用向量的知识来实现。在C中&#xff0c;我们可以定义一个函数来计算两个向量的夹角&#xff0c;并根据夹角的余弦值来判断角度的大小。以下是一个用C编写的示例代码&#xff1a; #include <iostream> #include <cmath>using namespace st…

c++调用ffmpeg api录屏 并进行rtmp推流

代码及工程见https://download.csdn.net/download/daqinzl/88156528 开发工具&#xff1a;visual studio 2019 记得启动rtmp流媒体服务 nginx的rtmp服务见https://download.csdn.net/download/daqinzl/20478812 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 f…

数智保险 创新未来 | GBASE南大通用亮相中国保险科技应用高峰论坛

本届峰会以“数智保险 创新未来”为主题&#xff0c;GBASE南大通用携新一代创新数据库产品及金融信创解决方案精彩亮相&#xff0c;与国内八百多位保险公司高管和众多保险科技公司技术专家&#xff0c;就保险领域数字化的创新应用及生态建设、新一代技术突破及发展机遇、前沿科…

深入理解TCP三次握手:连接可靠性与安全风险

目录 导言TCP简介和工作原理的回顾TCP三次握手的目的和步骤TCP三次握手过程中可能出现的问题和安全风险为什么TCP三次握手是必要的&#xff1f;是否可以增加或减少三次握手的次数&#xff1f;TCP四次挥手与三次握手的异同点 导言 在网络通信中&#xff0c;TCP&#xff08;Tra…

centos 重启 nginx 的三种方式

重启nginx的方式都有哪些&#xff0c;ChatGPT给出了比较全面的答案 1.service nginx restart 2.systemctl restart nginx 3.cd /usr/local/nginx/sbin 停止&#xff1a;./nginx -s stop 启动: ./nginx 重新加载配置: ./nginx -s reload 注意&#xff1a;cd /usr/local/nginx/s…

Redis入门-1

简介 nosql的一种&#xff0c;不是替代传统的sql&#xff0c;而是对传统的sql进行补充增强。redis用于短时间的高访问&#xff0c;其数据是存储在内存上的。 应用场景&#xff1a; 缓存 任务队列 消息队列 分布式锁 Linux系统上安装Redis 运行redis,进入/usr/local/redis-…

Linux: openssh: sshd_config: useprivilegeseparation; sshd [priv]

下面这个链接是比较老的一个讨论,是关于配置选项:useprivilegeseparation; https://community.hpe.com/t5/operating-system-hp-ux/ssh-child-process-hanging-and-cannot-be-killed/td-p/5042853 从目前openssh的说明看,这个将要被废弃的一个配置,不建议再使用。而且从m…

uC-OS2 V2.93 STM32L476 移植:串口打印篇

前言 前几篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程&#xff0c;下载了 uC-OS2 V2.93 的源码&#xff0c;并把 uC-OS2 的源文件加入 Keil MDK5 工程&#xff0c;通过适配 Systick 系统定时器与 PendSV 实现任务调度&#xff0c;初步让 uC-OS2 …

在腾讯云服务器OpenCLoudOS系统中安装redis(有图详解)

创建安装目录&#xff1a; mkdir -p /app/soft/redis 2. 下载安装包 进入安装目录 cd /app/soft/redis/ 下载安装包 wget https://download.redis.io/releases/redis-7.0.1.tar.gz 解压&#xff1a; tar -zxvf redis-7.0.1.tar.gz 安装gcc yum install gcc-c 进入re…

LUN映射出错导致写操作不互斥的服务器数据恢复案例

服务器数据恢复环境&#xff1a; 某公司的光纤SAN存储系统&#xff0c;6块硬盘组建一组RAID6&#xff0c;划分若干LUN&#xff0c;MAP到不同的SOLARIS操作系统服务器上。 服务器故障&分析&#xff1a; 由于业务增长需要新增应用&#xff0c;工作人员增加了一台IBM服务器&am…

QT--day6(人脸识别、图像处理)

人脸识别&#xff1a; /***********************************************************************************头文件****************************************************************************************/#ifndef WIDGET_H #define WIDGET_H#include <QWidget>…

新手入门Jenkins自动化部署入门详细教程

1. 背景 在实际开发中&#xff0c;我们经常要一边开发一边测试&#xff0c;当然这里说的测试并不是程序员对自己代码的单元测试&#xff0c;而是同组程序员将代码提交后&#xff0c;由测试人员测试&#xff1b; 或者前后端分离后&#xff0c;经常会修改接口&#xff0c;然后重新…

【机器学习】西瓜书习题3.4Python编程比较 10 折交叉验证法和留一法所估计出的对率回归的错误率

3.4 选择两个 UCI 数据集&#xff0c;比较 10 折交叉验证法和留一法所估计出的对率回归的错误率. 参考代码 结合自己的理解&#xff0c;添加注释。 数据集链接&#xff0c;下载后的数据在后缀名是data的文件中&#xff0c;使用记事本打开&#xff0c;本次解题需要去掉第一行属…

云主机测试Flink磁盘满问题解决

问题描述&#xff1a; 使用云主机测试Flink时&#xff0c;根目录满了。 经排查发现运行Flink任务后根目录空间一直在减少&#xff0c;最后定位持续增加的目录是/tmp目录 解决方法&#xff1a; 修改Flink配置使用一个相对较大的磁盘目录做为Flink运行时目录 # Override the…

为什么vscode访问谷歌浏览器是显示白色????

1、我的代码没有错误: 2、访问谷歌浏览器就显示白色&#xff1f;&#xff1f;&#xff1f;是什么情况