蓝图实现UE4VR项目中常用到的可交互按钮的按压和回弹模拟物理效果

请添加图片描述

实现效果如图,差不多就是VR中常用到的交互按钮

一、变量

在这里插入图片描述

TrackingLocation:向量类型,记录触碰组件重叠时的位置,触碰组件一般是VrPawn里面手柄对应的Mesh或者碰撞体。
RequireButtonDistance:浮点类型,用于设置按钮达到按下状态需要的距离,同时也作为限制按钮触发行程大小的属性。

CurrentButtonDistance :计算触控组件和按钮组件的重叠距离 :
OriginalButtonLocation :初始化的时候记录按钮的原始位置(回弹位置)
TemporaryLocation :用于记录回弹前按钮的位置,用于回弹功能中通过设置相对位置变换将按钮从当前位置插值到相对位置的原点

二、函数和方法

1.BeginPlay

在这里插入图片描述

初始化时记录按钮组件相对于其父组件或拥有者的位置。它描述了该组件在父组件坐标系中的位置

2.TIck

(感觉性能方面可以优化一下做成事件响应不使用Tick)

在这里插入图片描述

①Tick中通过计算触碰组件在最开始触碰按钮时的位置和通过Tick中不断获取的位置差值来计算重叠距离,并且使用RequireButtonDistance来限制获取的按钮的行程上限

②通过OriginalButtonLocation存储的初始位置当前重叠位置不断更新相对位置来实现按钮下压

③当当前下压距离大于等于按钮行程上限后判定按钮触发,DoOnce后面是按钮触发后的逻辑

3.BeginOverlap&EndOverlap

在这里插入图片描述BeginOverlap:使按钮在同一时间内只响应一个触碰组件,当触碰组件开始和按钮重叠的时候存储引用并记录坐标,并且中断回弹事件

EndOverlap:当触碰组件结束与按钮重叠的时候将引用置空,并开始调用回弹事件

4.ResetButton

在这里插入图片描述时间轴
调用之前先判断是启用还是中断,启用的话就记录回弹事件发生时按钮的位置,将其用于回弹功能中通过设置相对位置变换将按钮从当前位置插值到相对位置的原点

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值