搬了lyra的hudlayout
This commit is contained in:
81
Plugins/CommonGame/Source/Private/CommonLocalPlayer.cpp
Normal file
81
Plugins/CommonGame/Source/Private/CommonLocalPlayer.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "CommonLocalPlayer.h"
|
||||
|
||||
#include "Engine/GameInstance.h"
|
||||
#include "GameFramework/PlayerController.h"
|
||||
#include "GameUIManagerSubsystem.h"
|
||||
#include "GameUIPolicy.h"
|
||||
|
||||
#include UE_INLINE_GENERATED_CPP_BY_NAME(CommonLocalPlayer)
|
||||
|
||||
class APawn;
|
||||
class APlayerState;
|
||||
class FViewport;
|
||||
struct FSceneViewProjectionData;
|
||||
|
||||
UCommonLocalPlayer::UCommonLocalPlayer()
|
||||
: Super(FObjectInitializer::Get())
|
||||
{
|
||||
}
|
||||
|
||||
FDelegateHandle UCommonLocalPlayer::CallAndRegister_OnPlayerControllerSet(FPlayerControllerSetDelegate::FDelegate Delegate)
|
||||
{
|
||||
APlayerController* PC = GetPlayerController(GetWorld());
|
||||
|
||||
if (PC)
|
||||
{
|
||||
Delegate.Execute(this, PC);
|
||||
}
|
||||
|
||||
return OnPlayerControllerSet.Add(Delegate);
|
||||
}
|
||||
|
||||
FDelegateHandle UCommonLocalPlayer::CallAndRegister_OnPlayerStateSet(FPlayerStateSetDelegate::FDelegate Delegate)
|
||||
{
|
||||
APlayerController* PC = GetPlayerController(GetWorld());
|
||||
APlayerState* PlayerState = PC ? PC->PlayerState : nullptr;
|
||||
|
||||
if (PlayerState)
|
||||
{
|
||||
Delegate.Execute(this, PlayerState);
|
||||
}
|
||||
|
||||
return OnPlayerStateSet.Add(Delegate);
|
||||
}
|
||||
|
||||
FDelegateHandle UCommonLocalPlayer::CallAndRegister_OnPlayerPawnSet(FPlayerPawnSetDelegate::FDelegate Delegate)
|
||||
{
|
||||
APlayerController* PC = GetPlayerController(GetWorld());
|
||||
APawn* Pawn = PC ? PC->GetPawn() : nullptr;
|
||||
|
||||
if (Pawn)
|
||||
{
|
||||
Delegate.Execute(this, Pawn);
|
||||
}
|
||||
|
||||
return OnPlayerPawnSet.Add(Delegate);
|
||||
}
|
||||
|
||||
bool UCommonLocalPlayer::GetProjectionData(FViewport* Viewport, FSceneViewProjectionData& ProjectionData, int32 StereoViewIndex) const
|
||||
{
|
||||
if (!bIsPlayerViewEnabled)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return Super::GetProjectionData(Viewport, ProjectionData, StereoViewIndex);
|
||||
}
|
||||
|
||||
UPrimaryGameLayout* UCommonLocalPlayer::GetRootUILayout() const
|
||||
{
|
||||
if (UGameUIManagerSubsystem* UIManager = GetGameInstance()->GetSubsystem<UGameUIManagerSubsystem>())
|
||||
{
|
||||
if (UGameUIPolicy* Policy = UIManager->GetCurrentUIPolicy())
|
||||
{
|
||||
return Policy->GetRootLayout(this);
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
Reference in New Issue
Block a user