void APlayerController::BeginPlay()
{
Super::BeginPlay();
// 初始化单例(确保只有一个实例)
if (!SingletonInstance.IsValid() || SingletonInstance.Get() != this)
{
SingletonInstance = this;
UE_LOG(LogTemp, Log, TEXT("PlayerController单例初始化成功+++++"));
}
// 获取当前关卡名(如 "LoginMap" 是你的登录关卡)
FString CurrentLevelName = GetWorld()->GetMapName();
CurrentLevelName = FPaths::GetBaseFilename(CurrentLevelName); // 提取纯关卡名(去掉路径)
// 只在登录关卡加载 LoginUI
bool bIsLoginLevel = (CurrentLevelName.Contains("Login")); // 替换为你的登录关卡名
if (!bIsLoginLevel)
{
UE_LOG(LogTemp, Log, TEXT("当前非登录关卡,不加载 LoginUI"));
return; // 非登录关卡,直接返回,不执行加载逻辑
}
}
UE4+C++开发-(六十四)-UI管理器第7篇-怎么防止一个 UMG界面在不必要的时候出现?-终极解决方案
最新推荐文章于 2025-09-12 18:08:49 发布