当前位置: 首页 > news >正文

RPG59.玩家拾取物品三:可拾取物品的提示UI

1。以WarriorWidgetBase作为父类,创建一个子类的userwidget

2.布局为

两个值都为120

3。然后我们需要想办法,在合适的位置,用bool来控制此控件的显示与隐藏。

情况为:当玩家触发与可拾取物体的重叠时,我们将广播一个bool值用来显示可拾取提示

打开PlayerUiComponent.h

//控制显示拾取物品的提示
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStoneInteractedDelegate, bool, bShouldDisplayInputKey);//控制显示物体UPROPERTY(BlueprintCallable,BlueprintAssignable)FOnStoneInteractedDelegate OnStoneInteracted;

我们还需要获取player的uicomponent,打开WarriorPlayerGameplayAbility.h

//获取玩家UI组件UFUNCTION(BlueprintPure, Category = "XMB|Ability")UPlayerUIComponent* GetPlayerUIComponentFromActorInfo();
UPlayerUIComponent* UWarriorPlayerGameplayAbility::GetPlayerUIComponentFromActorInfo()
{return GetPlayerCharacterFromActorInfo()->GetPlayerUIComponent();
}

然后打开PlayerGA_PickUpStones,处理广播事件,这样子我们就将bool广播出去了

void UPlayerGA_PickUpStones::ActivateAbility(const FGameplayAbilitySpecHandle Handle,const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo,const FGameplayEventData* TriggerEventData)
{//显示可拾取提示GetPlayerUIComponentFromActorInfo()->OnStoneInteracted.Broadcast(true);Super::ActivateAbility(Handle, ActorInfo, ActivationInfo, TriggerEventData);
}void UPlayerGA_PickUpStones::EndAbility(const FGameplayAbilitySpecHandle Handle,const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo,bool bReplicateEndAbility, bool bWasCancelled)
{GetPlayerUIComponentFromActorInfo()->OnStoneInteracted.Broadcast(false);Super::EndAbility(Handle, ActorInfo, ActivationInfo, bReplicateEndAbility, bWasCancelled);
}

4。接下来处理监听

启动项目,打开Overlay

我们需要获取当前用来拾取物品的键位

http://www.lryc.cn/news/592907.html

相关文章:

  • 如何写python requests?
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • Linux基础IO通关秘籍:从文件描述符到重定向
  • 龙虎榜——20250718
  • Redis高频面试题:利用I/O多路复用实现高并发
  • 服务端高并发方案设计
  • Linux操作系统之线程:分页式存储管理
  • ARINC818航空总线机载视频处理系统设计
  • stm32驱动双步进电机
  • NIO网络通信基础
  • 堆的实现,堆排序,咕咕咕
  • (5)颜色的灰度,亮度,对比度,透明度,都啥意思
  • ES v.s Milvus v.s PG
  • makefile -- part 1
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 白话深度学习:一副PPT入门CNN,ResNet和Transformer
  • ESP32-IDF LVGL UI 设计工具的使用
  • vs openssl编译提示无法打开文件“libssl.lib”或“libcrypto.lib”
  • 046_局部内部类与匿名内部类
  • NQA_路由自动切换实验(H3C)
  • 小记_想写啥写啥_实现行间的Latex公式_VScode始终折叠大纲
  • [Raspberry Pi]如何將無頭虛擬顯示器服務(headless display)建置在樹莓派的Ubuntu桌面作業系統中?
  • 学校同步时钟系统让时间精准统一
  • 美客多跨境电商平台怎么开店?美客多入驻门槛有哪些?
  • OOA(面向对象分析)深度解析:业务建模的核心方法论
  • 零售快销行业中线下巡店AI是如何颠覆传统计算机视觉识别的详细解决方案
  • ABAP ANALYZE_ACT_FIELDCAT 错误
  • 控制鼠标和键盘
  • C++ 程序设计考量表
  • 7.18 Java基础 |