¾ð¸®¾ó¿¡¼ "~" Å°¸¦ ´·¯ ÄÜ¼Ö ¸í·ÉÀ» »ç¿ë ÇÒ¼ö ÀÖ´Ù. ÄÜ¼Ö ¸í·ÉÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀº ¿©·¯°¡Áö ÀÖÁö¸¸ ¿©±â¼´Â CeatManager¿¡ ´ëÇؼ ¾Ë¾Æº»´Ù. 1. CheatManager Ŭ·¡½º »ý¼º C++ ¸ðµç Ŭ·¡½º Ç¥½Ã üũÈÄ CheatManager¸¦ »ó¼ÓÇÑ MyCheatManager¸¦ ¸¸µç´Ù. 2. PlayerController¿¡ CheatManager µî·Ï PlayerController°¡ ¾ø´Ù¸é PlayerController »ó¼ÓÇÑ Å¬·¡½º¸¦ »ý¼º ÇÑ´Ù. CheatManager´Â PlayControllerÀÇ CheatClass¿¡ µî·ÏÇÑ´Ù. #include "MyPlayerController.h"
#include "MyCheatManager.h" AMyPlayerController::AMyPlayerController() { CheatClass = UMyCheatManager::StaticClass(); } 3. GameMode¿¡ PlayerController µî·Ï GameMode°¡ ¾ø´Ù¸é GameModeBase »ó¼ÓÇÑ Å¬·¡½º¸¦ »ý¼º ÇÑ´Ù. PlayerController GameMode PlayerControllerClass µî·ÏÇÑ´Ù #include "UmgListViewDemoGameModeBase.h"
#include "MyPlayerController.h" AUmgListViewDemoGameModeBase::AUmgListViewDemoGameModeBase() { PlayerControllerClass = AMyPlayerController::StaticClass(); } 4. Cheat ÇÔ¼ö Ãß°¡ TestMyLog ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù. UFUNCTION(exec)·Î ÄÜ¼Ö ¸í·É¾î·Î µî·ÏÇÑ´Ù. CheatManager.cpp #include "CoreMinimal.h"
#include "GameFramework/CheatManager.h" #include "MyCheatManager.generated.h" UCLASS() class UMGLISTVIEWDEMO_API UMyCheatManager : public UCheatManager { GENERATED_BODY() public: UFUNCTION(exec) void TestMyLog(); }; GameMode¸¦ »ó¼ÓÇÑ AUmgListViewDemoGameModeBaseŬ·¡½ºÀÇ TestMyLog ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. CheatManager.cpp #include "MyCheatManager.h"
#include "MyPlayerController.h" #include "Engine/World.h" #include "UmgListViewDemoGameModeBase.h" void UMyCheatManager::TestMyLog() { const APlayerController* PlayerController = GetOuterAPlayerController(); if (GetWorld()) { AUmgListViewDemoGameModeBase* GameMode = Cast<AUmgListViewDemoGameModeBase>(GetWorld()->GetAuthGameMode()); if (GameMode) GameMode->TestMyLog(); } } Äֿܼ¡¼ "TestMyLog"¸¦ ½ÇÇàÇؼ È®ÀÎ ÇÑ´Ù. ÂüÁ¶) UCheatManager https://benui.ca/unreal/cheatmanager/ https://historia.co.jp/archives/839/ UCheatManager GetOuterAPlayerController https://qiita.com/EGJ-Ken_Kuwano/items/f15d26d3203cd190380f |