すべてをまとめる - デバイスIDでログイン - (Unreal Engine モジュール)
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
UIを接続してプレイヤーがデバイスIDでログインできるようにする
このチュートリアルでは、前のセクションで作成したログイン実装とログインメニューウィジェットを接続する方法を学びます。
以下のスニペットコードに示すように、LoginWidget_Starter クラスの CPP ファイルの NativeConstruct() 関数内に、AuthEssentialsSubsystem_Starter への参照をすでに用意しています。
void ULoginWidget_Starter::NativeConstruct()
{
Super::NativeConstruct();
GameInstance = Cast<UAccelByteWarsGameInstance>(GetGameInstance());
ensure(GameInstance);
AuthSubsystem = GameInstance->GetSubsystem<UAuthEssentialsSubsystem_Starter>();
ensure(AuthSubsystem);
PromptSubsystem = GameInstance->GetSubsystem<UPromptSubsystem>();
ensure(PromptSubsystem);
SetLoginState(ELoginState::Default);
OnRetryLoginDelegate.Clear();
}
ログインプロセスが完了したときにリッスンするコールバック関数を設定し、ログイン認証情報を設定して、ログインリクエストを送信します。
-
宣言はすでに行われているため、
LoginWidget_StarterCPP ファイルに直接移動し、OnLoginComplete()に移動します。この関数は、ログインプロセスが完了したときのコールバックになります。この関数は、ログイン成功時にメインメニューウィジェットを表示するか、ログイン失敗時にエラーメッセージを表示します。void ULoginWidget_Starter::OnLoginComplete(bool bWasSuccessful, const FString& ErrorMessage)
{
if (bWasSuccessful)
{
// Broadcast on-login success event.
if (UAuthEssentialsModels::OnLoginSuccessDelegate.IsBound())
{
UAuthEssentialsModels::OnLoginSuccessDelegate.Broadcast(GetOwningPlayer());
}
// When login success, open Main Menu widget.
OpenMainMenu();
}
else
{
// When login failed, show error message.
Tb_FailedMessage->SetText(FText::FromString(ErrorMessage));
SetLoginState(ELoginState::Failed);
}
} -
これで、ログインリクエストの送信を開始できます。引き続き CPP ファイルで、
OnLoginWithDeviceIdButtonClicked()に移動し、既存の実装を次のように置き換えます。void ULoginWidget_Starter::OnLoginWithDeviceIdButtonClicked()
{
SetLoginState(ELoginState::LoggingIn);
OnRetryLoginDelegate.AddUObject(this, &ThisClass::OnLoginWithDeviceIdButtonClicked);
APlayerController* PC = GetWorld()->GetFirstPlayerController();
ensure(PC);
ensure(AuthSubsystem);
AuthSubsystem->SetAuthCredentials(EAccelByteLoginType::DeviceId, TEXT(""), TEXT(""));
AuthSubsystem->Login(PC, FAuthOnLoginCompleteDelegate::CreateUObject(this, &ThisClass::OnLoginComplete));
} -
プロジェクトをコンパイルし、エラーがないことを確認します。