Widgetと画面遷移
ボタンの登録
レベルブループリントを作成して
そこからボタン(ATestMenu)を登録します。
レベルブループリント:ALevelScriptActorBase
レベルブループリントはALevelScriptActorクラスから派生する必要があります。
ALevelScriptActorBaseをALevelScriptActorから派生させで実装します。
//=======================================================================
/// @file ALevelScriptActorBase.h
/// @brief ALevelScriptActorBase
/// @author inuvatico
/// @date 2021/04/02
/// @version 1.0
/// @copyright 2020 inuvatico
/// Released under the MIT license.
/// see https://opensource.org/licenses/MIT
/// @par (new/Add/Change : 2020/10/17)
//=======================================================================
#pragma once
#include "CoreMinimal.h"
#include "Engine/LevelScriptActor.h"
#include "LevelScriptActorBase.generated.h"
//=============================================
/// ALevelScriptActorBase
//=============================================
UCLASS()
class ALevelScriptActorBase : public ALevelScriptActor
{
GENERATED_BODY()
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
};
ATestMenu(ボタン)の登録
ATestMenuをBeginPlay()でインスタンス化します。
EndPlay()でWidgetをクリアしています
ALevelScriptActorBase.cpp
//=======================================================================
/// @file ALevelScriptActorBase.cpp
/// @brief ALevelScriptActorBase
/// @author inuvatico
/// @date 2021/04/02
/// @version 1.0
/// @copyright 2020 inuvatico
/// Released under the MIT license.
/// see https://opensource.org/licenses/MIT
/// @par (new/Add/Change : 2020/10/17)
//=======================================================================
#include "LevelScriptActorBase.h"
#include "App/UI/TestMenu.h"
#include "App/UI/Fade/WgFade.h"
#include "GameInstance/sub/GInstSubInstanceMng.h"
//==============================================
//! BeginPlay
//==============================================
void ALevelScriptActorBase::BeginPlay() {
Super::BeginPlay();
ATestMenu::Create(this);//ボタン登録
}
//==============================================
//! EndPlay
//==============================================
void ALevelScriptActorBase::EndPlay(const EEndPlayReason::Type EndPlayReason)
{
Super::EndPlay(EndPlayReason);
UGInstSubInstanceMng::Get()->ClearWidget();
}
ALevelScriptActorBaseをレベルに登録
"ブループリント"->"レベルブループリントを開く"を選びます。
クラス設定の親クラスから、LevelScriptActorBaseを選びます。
実行するとボタンが表示されます