UE5 GAS开发P31 将hud绑定在自己的角色上,UE5 GAS开发P31,将HUD绑定至自定义角色

马肤

温馨提示:这篇文章已超过386天没有更新,请注意相关的内容是否还可用!

摘要:在UE5的GAS开发中,P31阶段实现了将hud成功绑定在特定角色上的功能。这一创新举措简化了游戏界面与角色的互动,增强了游戏体验的真实感和沉浸感。通过这一技术实现,玩家能够更直观地获取角色信息,进一步提升游戏操作的便捷性和流畅性。

WidgetController中的OverlayAuraWidgetController新建及HUD初始状态修改

UE5 GAS开发P31 将hud绑定在自己的角色上,UE5 GAS开发P31,将HUD绑定至自定义角色 第1张

WidgetController内,我们新建一个OverlayAuraWidgetController以修改HUD的初始状态。

AuraHUD类定义

确保在您的项目中正确设置版权信息后,对AuraHUD类进行如下定义:

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "UI/Widget/AuraUserWidget.h"
#include "UI/WidgetController/OverlayAuraWidgetController.h"
#include "AuraHUD.generated.h"
UCLASS()
class MYGAS_API AAuraHUD : public AHUD
{
    GENERATED_BODY()
protected:
public:
    UPROPERTY()
    TObjectPtr OverlayWidget;
    UPROPERTY(EditAnywhere)
    TSubclassOf OverlayWidgetClass;
    UPROPERTY(EditAnywhere)
    TSubclassOf OverlayAuraWidgetControllerClass;
    UOverlayAuraWidgetController* GetOverlayAuraWidgetController(const FWidgetControllerParams& WCParams);
    void InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS);
private:
    TObjectPtr OverlayAuraWidgetController; // 用于存储OverlayAuraWidgetController的引用
};

AuraHUD类的实现(AuraHUD.cpp)

确保您的版权信息已填写后,实现AAuraHUD类的相关函数:

UE5 GAS开发P31 将hud绑定在自己的角色上,UE5 GAS开发P31,将HUD绑定至自定义角色 第2张

#include "UI/HUD/AuraHUD.h" // 确保包含正确的头文件路径
UOverlayAuraWidgetController* AAuraHUD::GetOverlayAuraWidgetController(const FWidgetControllerParams& WCParams) 
{ 
    if (OverlayAuraWidgetController == nullptr) 
    { 
        OverlayAuraWidgetController = NewObject<UOverlayAuraWidgetController>(this, OverlayAuraWidgetControllerClass); 
        OverlayAuraWidgetController->SetWidgetControllerParams(WCParams); 
        return OverlayAuraWidgetController; 
    } 
    return OverlayAuraWidgetController; 
} 
 
void AAuraHUD::InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS) 
{ 
    checkf(OverlayWidgetClass != nullptr, TEXT("Overlay Widget Class uninitialized , please fill out BP_AuraHUD")); 
    checkf(OverlayAuraWidgetControllerClass != nullptr, TEXT("Overlay Widget Controller Class uninitialized , please fill out OverlayAuraWidgetControllerClass")); 
    UUserWidget* Widget = CreateWidget(GetWorld(), OverlayWidgetClass); 
    OverlayWidget = Cast<UUserWidget>(Widget); // 确保类型转换正确 
    const FWidgetControllerParams WidgetControllerParams(PC, PS, ASC, AS); 
    UOverlayAuraWidgetController* WidgetController = GetOverlayAuraWidgetController(WidgetControllerParams); 
    OverlayWidget->SetWidgetController(WidgetController); 
    Widget->AddToViewport(); 
}

AuraCharacter类的修改(AuraCharacter.cpp)

在角色初始化时加载UI的初始化部分,确保正确调用并传递必要的参数给AAuraHUD::InitOverlay方法,这部分代码看起来已经相对完整,只需确保所有引用的变量都已正确初始化或获取,确保AbilitySystemComponentAttributesSet在调用InitOverlay之前已经被正确初始化或获取,同时确保传递的参数类型正确无误,如果涉及到类型转换或引用获取,请确保使用正确的API和方法,请确保在调用这些方法时正确处理可能的空指针异常,使用Cast函数时,确保目标对象不是空指针。### 蓝图中OverlayAuraWidgetController的更新在蓝图界面(WBP_AuraHUD),将新创建的OverlayAuraWidgetController添加到相应的组件或节点中,请根据您的具体需求和项目结构进行相应的调整,确保所有的连接和配置都正确无误,并且符合您的项目需求,这些修改应该涵盖了从定义到实现的各个方面,以确保代码的完整性和正确性,具体的实现细节可能因项目结构和需求的不同而有所差异,请根据您的具体情况进行调整和优化。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码