Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
StageDictionary.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Engine/DataAsset.h"
8#include "StageDictionary.generated.h"
9
10class UObject;
11
12UCLASS()
13class CK_UE_API UStageDictionary : public UDataAsset
14{
15 GENERATED_BODY()
16
17public:
18 virtual void PostLoad() override;
19
20#if WITH_EDITOR
21 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
22 virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) override;
23#endif
24
25public:
26 const TMap<FPrimaryAssetId, TSoftObjectPtr<ULevelStreamingData>>& GetStoredStreamingDataByMapAssetID() const
27 {
28 return StoredStreamingDataByMapAssetID;
29 }
30
31 UFUNCTION(BlueprintPure, Category = "Stage|Dictionary")
32 ULevelStreamingData* GetLevelStreamingDataByPrimaryAssetId(const FPrimaryAssetId& TargetMap) const;
33
34 UFUNCTION(BlueprintPure, Category = "Stage|Dictionary")
35 bool TryGetPrimaryAssetIdByWorld(const UObject* WorldContextObject, FPrimaryAssetId& OutTargetMap) const;
36
37 UFUNCTION(BlueprintPure, Category = "Stage|Dictionary")
38 ULevelStreamingData* GetLevelStreamingDataByWorld(const UObject* WorldContextObject) const;
39
40 ULevelStreamingData* GetLevelStreamingDataByPrimaryAssetIdOrWorld(const FPrimaryAssetId& TargetMap, const UObject* WorldContextObject) const;
41
42private:
43 void SyncStoredStreamingData();
44 FName NormalizeWorldMapName(FString MapName) const;
45
46public:
47 // 에디터에서 수정하는 원본 데이터
48 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stage|Dictionary")
49 TMap<FPrimaryAssetId, TSoftObjectPtr<ULevelStreamingData>> SourceStreamingDataByMapAssetID;
50
51private:
52 // 런타임용 내부 데이터
53 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Stage|Dictionary", meta = (AllowPrivateAccess = "true"))
54 TMap<FPrimaryAssetId, TSoftObjectPtr<ULevelStreamingData>> StoredStreamingDataByMapAssetID;
55};
Definition LevelStreamingData.h:19
Definition StageDictionary.h:14
const TMap< FPrimaryAssetId, TSoftObjectPtr< ULevelStreamingData > > & GetStoredStreamingDataByMapAssetID() const
Definition StageDictionary.h:26