すべてを統合する - フレンドリスト - (Unreal Engine モジュール)
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
フレンドリストを取得するためにUIを接続する
-
FriendsWidget_Starterクラスの CPP ファイルを開き、GetFriendList()関数に移動して、現在の実装を以下のコードに置き換えます。これにより、FriendsSubsystem_Starterを使用してフレンドリストを取得し、完了時に表示します。void UFriendsWidget_Starter::GetFriendList()
{
ensure(FriendsSubsystem);
Ws_Friends->SetWidgetState(EAccelByteWarsWidgetSwitcherState::Loading);
FriendsSubsystem->GetFriendList(
GetOwningPlayer(),
FOnGetFriendListComplete::CreateWeakLambda(this, [this](bool bWasSuccessful, TArray<UFriendData*> Friends, const FString& ErrorMessage)
{
Tv_Friends->ClearListItems();
if (bWasSuccessful)
{
Tv_Friends->SetListItems(Friends);
Ws_Friends->SetWidgetState(Friends.IsEmpty() ?
EAccelByteWarsWidgetSwitcherState::Empty :
EAccelByteWarsWidgetSwitcherState::Not_Empty);
}
else
{
Ws_Friends->ErrorMessage = FText::FromString(ErrorMessage);
Ws_Friends->SetWidgetState(EAccelByteWarsWidgetSwitcherState::Error);
}
}
));
} -
NativeOnActivated()に以下のコードを追加します。これにより、GetFriendList()関数がOnCachedFriendsDataUpdatedにバインドされ、実際のリストが変更されるとすぐに表示されるリストが更新されます。void UFriendsWidget_Starter::NativeOnActivated()
{
Super::NativeOnActivated();
Btn_Back->OnClicked().AddUObject(this, &ThisClass::DeactivateWidget);
// Reset widgets.
Ws_Friends->SetWidgetState(EAccelByteWarsWidgetSwitcherState::Empty);
Tv_Friends->ClearListItems();
Tv_Friends->OnItemClicked().AddUObject(this, &ThisClass::OnFriendEntryClicked);
FriendsSubsystem->BindOnCachedFriendsDataUpdated(GetOwningPlayer(), FOnCachedFriendsDataUpdated::CreateUObject(this, &ThisClass::GetFriendList));
GetFriendList();
} -
NativeOnDeactivated()に以下のコードを追加します。これにより、ウィジェットが閉じられたときにフレンドリストの変更の監視を停止します。void UFriendsWidget_Starter::NativeOnDeactivated()
{
Btn_Back->OnClicked().Clear();
Tv_Friends->OnItemClicked().Clear();
FriendsSubsystem->UnbindOnCachedFriendsDataUpdated(GetOwningPlayer());
Super::NativeOnDeactivated();
}
リソース
- このチュートリアルセクションで使用されているファイルは、Unreal Byte Wars GitHub リポジトリで入手できます。