Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UILayerSettings.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/DeveloperSettings.h"
7#include "GameplayTagContainer.h"
8#include "UILayerSettings.generated.h"
9
10
11USTRUCT(BlueprintType)
13{
14 GENERATED_BODY()
15
16 // 레이어 우선순위. 높을수록 상위 레이어로 취급.
17 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Layer")
18 int32 Priority = 0;
19
20 // 해당 레이어가 활성화될 때 마우스 커서를 표시할지 여부
21 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Input")
22 bool bShowMouseCursor = false;
23
24 // 마우스 잠금 모드 (bShowMouseCursor = true 일 때만 적용)
25 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Input", meta = (EditCondition = "bShowMouseCursor"))
26 EMouseLockMode MouseLockMode = EMouseLockMode::DoNotLock;
27
28 // 해당 레이어가 활성화될 때 플레이어 이동 입력을 차단할지 여부
29 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Input")
30 bool bBlockPlayerMovement = false;
31
32 // 해당 레이어가 활성화될 때 플레이어 키 입력을 차단할지 여부
33 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Input")
34 bool bBlockPlayerInput = false;
35
36 // 해당 레이어가 활성화될 때 적용할 전역 시간 배율
37 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Time", meta = (ClampMin = "0.0", UIMin = "0.0"))
38 float TimeScale = 1.0f;
39};
40
41
42UCLASS(Config=Game, defaultconfig, meta=(DisplayName="UI Layer Settings"))
43class CK_UE_API UUILayerSettings : public UDeveloperSettings
44{
45 GENERATED_BODY()
46
47public:
48 static const UUILayerSettings* Get()
49 {
50 return GetDefault<UUILayerSettings>();
51 }
52
53public:
54 virtual FName GetCategoryName() const override
55 {
56 return TEXT("CK_UE");
57 }
58
59 int32 GetLayerPriority(const FGameplayTag& LayerTag) const
60 {
61 const FUILayerConfig* Config = LayerConfigs.Find(LayerTag);
62 return Config ? Config->Priority : 0;
63 }
64
65public:
66 // 레이어 스택이 완전히 비었을 때 적용할 기본 입력 설정.
67 UPROPERTY(EditAnywhere, Config, Category = "Layer")
68 FUILayerConfig DefaultConfig;
69
70 // 레이어 태그별 설정. 등록되지 않은 레이어는 기본값(Priority 0) 적용.
71 UPROPERTY(EditAnywhere, Config, Category = "Layer", meta = (Categories = "UI.Layer"))
72 TMap<FGameplayTag, FUILayerConfig> LayerConfigs;
73};
Definition UILayerSettings.h:44
int32 GetLayerPriority(const FGameplayTag &LayerTag) const
Definition UILayerSettings.h:59
static const UUILayerSettings * Get()
Definition UILayerSettings.h:48
virtual FName GetCategoryName() const override
Definition UILayerSettings.h:54
Definition UILayerSettings.h:13
int32 Priority
Definition UILayerSettings.h:18