ue4

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をレベルに登録

"ブループリント"->"レベルブループリントを開く"を選びます。 vatico
vatico
クラス設定の親クラスから、LevelScriptActorBaseを選びます。

実行するとボタンが表示されます vatico

prev/next







digitalize
  始めました。