Put it all together - Wallet Essentials - (Unreal Engine module)
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
プレイヤーのウォレット情報を表示するためにUIを接続する
-
WalletBalanceWidget_StarterCPPファイルを開き、NativeOnActivated()関数に移動して、既存の実装を以下のコードに置き換えます。この更新されたコードは、前のページで実装したWalletEssentialsSubsystem_StarterのレスポンスデリゲートにShowBalance()関数をバインドします。この設定により、WalletBalanceWidget_Starterウィジェットが再アクティブ化されるたびにウォレット情報が更新されます。void UWalletBalanceWidget_Starter::NativeOnActivated()
{
Super::NativeOnActivated();
WalletSubsystem = GetGameInstance()->GetSubsystem<UWalletEssentialsSubsystem_Starter>();
ensure(WalletSubsystem);
WalletSubsystem->OnQueryOrGetWalletInfoCompleteDelegates.AddUObject(this, &ThisClass::ShowBalance);
// Update balance.
W_Root->ClearChildren();
CurrencyBalanceEntryMap.Empty();
UpdateBalance(ECurrencyType::COIN);
UpdateBalance(ECurrencyType::GEM);
} -
NativeOnDeactivated()関数に移動して、既存の実装を以下のコードに置き換えます。このコードはWalletEssentialsSubsystem_Starterのレスポンスデリゲートへのバインディングをクリアし、ウィジェットが非アクティブ化されたときに更新がトリガーされないようにします。void UWalletBalanceWidget_Starter::NativeOnDeactivated()
{
Super::NativeOnDeactivated();
WalletSubsystem->OnQueryOrGetWalletInfoCompleteDelegates.RemoveAll(this);
} -
UpdateBalance()関数に移動して、既存の実装を以下のコードに置き換えます。このコードは、前のページで実装したWalletEssentialsSubsystem_StarterのQueryOrGetWalletInfoByCurrencyCode()関数を呼び出します。void UWalletBalanceWidget_Starter::UpdateBalance(const ECurrencyType CurrencyType)
{
const FString CurrencyCode = FPreConfigCurrency::GetCodeFromType(CurrencyType);
UWalletBalanceWidgetEntry* Entry = CreateWidget<UWalletBalanceWidgetEntry>(this, CurrencyBalanceClass);
ensure(Entry);
Entry->Setup(FText::FromString("..."), CurrencyType);
W_Root->AddChild(Entry);
CurrencyBalanceEntryMap.Add(CurrencyCode, Entry);
// Always retrieve from backend to make sure data is updated.
WalletSubsystem->QueryOrGetWalletInfoByCurrencyCode(GetOwningPlayer(), CurrencyCode, true);
}
リソース
- このチュートリアルセクションで使用されているファイルは、Byte Wars GitHubリポジトリで入手できます。