UE4 C++调用手柄震动

近期封装输入相关逻辑,简单归纳下。

 

蓝图实现

内容界面右键Miscellaneous->Force Feedback Effect,创建力反馈对象并填写相关参数:

然后在蓝图中用Spawn Force Feedback at Location调用这个力反馈配置文件,

或是创建Force Feedback组件,根据角色是否进入手柄震动区域来进行力反馈响应。

 

C++实现

C++部分的手柄力反馈,包括PS手柄的亮灯颜色等,都可以在PlayerController中直接设置。

复制代码
//#include "GameFramework/ForceFeedbackEffect.h"
//#include "Kismet/GameplayStatics.h"

APlayerController* PC = UGameplayStatics::GetPlayerController(this, 0);
if (PC) {
    FString Path = "/Game/ThirdPersonCPP/NewForceFeedbackEffect.NewForceFeedbackEffect";
    UForceFeedbackEffect* Obj = LoadObject<UForceFeedbackEffect>(nullptr, *Path);
    PC->ClientPlayForceFeedback(Obj);
}
复制代码

获取到玩家控制器然后传入力反馈配置文件路径即可。

 

顺带看了下PlayerController内部的调用逻辑,其内部好像走的是InputInterface:

IInputInterface* InputInterface = FSlateApplication::Get().GetInputInterface();

通过FSlateApplication拿到对应平台的InputInterface,若想直接使用该接口配置震动,需加入Slate模块的依赖。

 

posted @   HONT  阅读(489)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2018-04-16 Unity中使用射线查询MeshCollider背面的方法
点击右上角即可分享
微信分享提示
回到顶部