Files
UnrealEngine/Engine/Platforms/VisionOS/Source/Runtime/VisionOSRuntimeSettings/Classes/VisionOSRuntimeSettings.h
2025-05-18 13:04:45 +08:00

50 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "Logging/LogMacros.h"
#include "VisionOSRuntimeSettings.generated.h"
DECLARE_LOG_CATEGORY_EXTERN(LogVisionOSRuntimeSettings, Log, All);
/**
* Implements the settings for the VisionOS target platform.
*/
UCLASS(config=Engine, defaultconfig)
class VISIONOSRUNTIMESETTINGS_API UVisionOSRuntimeSettings : public UObject
{
public:
GENERATED_UCLASS_BODY()
// Use VisionOS .ini files in the editor
virtual const TCHAR* GetConfigOverridePlatform() const override
{
return TEXT("VisionOS");
}
#if WITH_EDITOR
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
virtual void PostInitProperties() override;
#endif // WITH_EDITOR
// When building for visionOS, default to Full Immersion mode. If disabled, switches to Window mode. Note: when enabled,
// the @main struct in UESwift.swift becomes the new main(). Plus, UIApplicationSceneManifest is auto-generation for Info.plist
UPROPERTY(config, EditAnywhere, Category = Build, Meta = (DisplayName = "Enable visionOS's Immersion Mode (Experimental)", ConfigRestartRequired = true))
bool bUseSwiftUIMain;
// If checked, the Swift/ObjC bridging headers will be created.
UPROPERTY(config, EditAnywhere, Category = Build, Meta = (DisplayName = "Create Swift/ObjC Bridging Headers", ConfigRestartRequired = true))
bool bCreateBridgingHeader;
// Specify the immersiveStyle we will launch into: 0 = .full, 1 = .mixed.
UPROPERTY(config, EditAnywhere, Category = ImmersiveSpace, Meta = (DisplayName = "ImmersiveStyle"))
int ImmersiveStyle = 0;
// Specify the upperLimbVisibility we will start with: 0 = .hidden, 1 = .visible, 2 = .automatic.
UPROPERTY(config, EditAnywhere, Category = ImmersiveSpace, Meta = (DisplayName = "UpperLimbVisibility"))
int UpperLimbVisibility = 2;
};