六一的部落格


关关难过关关过,前路漫漫亦灿灿。



Startup Level Name


FName

  1. NAME_None

    可以用来初始化FName对象, 表明对象文本未设置

    也是默认初始化FName时其包含的字符串

  2. 判断字符串是否为"None"

    1/** True for FName(), FName(NAME_None) and FName("None") */
    2FORCEINLINE bool IsNone() const
    3{
    4#if PLATFORM_64BITS && !WITH_CASE_PRESERVING_NAME
    5    return ToUnstableInt() == 0;
    6#else
    7    return ComparisonIndex.IsNone() && GetNumber() == NAME_NO_NUMBER_INTERNAL;
    8#endif
    9}

在游戏实例里添加关卡名称

  1. 添加属性: 关卡名称

    protected

    ShootThemUp: STUGameInstance.h
    1UPROPERTY(EditDefaultsOnly)
    2FName StartupLevelName = NAME_None;
  2. 添加接口: 返回关卡名称

    public

    ShootThemUp: STUGameInstance.h
    1FName GetStartupLevelName() const { return StartupLevelName; }

STUMenuWidget中从游戏实例获取关卡名

可以检查关卡是否存在

ShootThemUp: Menu/UI/STUMenuWidget.cpp

 1#include "STUGameInstance.h"
 2#include "Engine/World.h"
 3
 4DEFINE_LOG_CATEGORY_STATIC(LogSTUMenuWidget, All, All);
 5
 6// OnStartGame
 7
 8if (!GetWorld()) return;
 9
10const auto STUGameInstance = GetWorld()->GetGameInstance<USTUGameInstance>();
11if (!STUGameInstance) return;
12
13if (STUGameInstance->GetStartupLevelName().IsNone())
14{
15    UE_LOG(LogSTUMenuWidget, Error, TEXT("StartupLevelName is none"));
16    return;
17}
18
19UGameplayStatics::OpenLevel(GetWorld(), STUGameInstance->GetStartupLevelName());

查看

  1. 直接运行


  2. NAME_None 对应字符串

    BP_STUGameInstance


  3. 设置关卡名

    BP_STUGameInstance

    -
    Startup Level Name DefaultMap

在游戏实例里保存关卡名称


Startup Level Name


FName

  1. NAME_None

    可以用来初始化FName对象, 表明对象文本未设置

    也是默认初始化FName时其包含的字符串

  2. 判断字符串是否为"None"

    1/** True for FName(), FName(NAME_None) and FName("None") */
    2FORCEINLINE bool IsNone() const
    3{
    4#if PLATFORM_64BITS && !WITH_CASE_PRESERVING_NAME
    5    return ToUnstableInt() == 0;
    6#else
    7    return ComparisonIndex.IsNone() && GetNumber() == NAME_NO_NUMBER_INTERNAL;
    8#endif
    9}

在游戏实例里添加关卡名称

  1. 添加属性: 关卡名称

    protected

    ShootThemUp: STUGameInstance.h
    1UPROPERTY(EditDefaultsOnly)
    2FName StartupLevelName = NAME_None;
  2. 添加接口: 返回关卡名称

    public

    ShootThemUp: STUGameInstance.h
    1FName GetStartupLevelName() const { return StartupLevelName; }

STUMenuWidget中从游戏实例获取关卡名

可以检查关卡是否存在

ShootThemUp: Menu/UI/STUMenuWidget.cpp

 1#include "STUGameInstance.h"
 2#include "Engine/World.h"
 3
 4DEFINE_LOG_CATEGORY_STATIC(LogSTUMenuWidget, All, All);
 5
 6// OnStartGame
 7
 8if (!GetWorld()) return;
 9
10const auto STUGameInstance = GetWorld()->GetGameInstance<USTUGameInstance>();
11if (!STUGameInstance) return;
12
13if (STUGameInstance->GetStartupLevelName().IsNone())
14{
15    UE_LOG(LogSTUMenuWidget, Error, TEXT("StartupLevelName is none"));
16    return;
17}
18
19UGameplayStatics::OpenLevel(GetWorld(), STUGameInstance->GetStartupLevelName());

查看

  1. 直接运行


  2. NAME_None 对应字符串

    BP_STUGameInstance


  3. 设置关卡名

    BP_STUGameInstance

    -
    Startup Level Name DefaultMap