묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UObject 타입과 가비지 콜렉션 질문
UObject 를 상속한 멤버이기 때문에 가비지 콜렉터로 관리가 되는 건지, 아니면 TObjectPtr<> 로 인해 가비지 콜렉터로 관리되는 건지 궁금합니다. 멤버가 TObjectPtr<UObject>이 아닌 UObject* 타입으로 되있을 때도 가비지 콜렉터가 작동되서 UPROPERTY() 를 붙이지 않는 한 자동으로 지워지는 건가요??
-
미해결[LV1] 왕초보 이펙트 (VFX) 기초부터 튼튼하게! (UE5, Blender)
안녕하세요 리소스는 재공은 없을까요!?
안녕하세요 프로그래머들은 사실 포토샵이나 블랜드 쓸일이 드물어서 재공되는 리소스가 있으면 LV2까지 듣고싶은데 혹시 리소스 재공이 가능할까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Part2 umap import 에러
안녕하세요 Part2 1강에서 Step1.umap이 Editor에서 불러와지지 않아서 다른 세팅법이 있는지 궁금합니다.5.1.1 똑같이 사용중이고 다른 에셋들은 불러와졌는데 umap만 안불러와져서 질문 글 올립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
33:20 키 입력 시 이벤트를 한 번만 발생시키도록 할 때
강의에선 에디터에서 InputAction의 Triggers 에서 Pressed를 추가하셨는데 저는 개인적으로 cpp에서 BindAction 에서 바인드 할 때 ETriggerEvent::Started 로 설정해서 이벤트가 한 번만 발생하도록 하는 방법을 썼습니다. 이런 방법도 괜찮나요? 아니면 이런 방법은 렉이 걸리거나 할 때 이벤트가 발생되지 않을 가능성도 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
240830 기준 여전히 BP_ABPlayerController 블루프린트 설정이 강의와 다르게 나옵니다
좋은 강의 감사드립니다.24년 8월 30일 기준으로도 여전히 15강 강의 21분 경의 BP_ABPlayerController 블루프린트 설정이 강의와는 다릅니다. 저는 5.1 버전으로 강의를 들어왔기 때문에 깃허브 코드가 아닌 14강 첨부파일을 받았는데, 여전히 이미 완성된 블루프린트가 보이는 것 같습니다. <강의 블루프린트> <14강 인프런 첨부파일 블루프린트>
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
라이브 강의 질문
안녕하세요. 루키스님다름이 아니라, 제가 3~4월 라이브 강의, 5월 라이브 강의를 신청해서 수강한 학생입니다. 복습을 하고 싶어서 영상을 찾고 있는데, 영상을 찾을 수가 없더라구요.혹시 영상 어디서 볼 수 있는지 알 수 있을까요??
-
해결됨[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #1 (게임 프레임워크)
빌드 시 에러 문의
안녕하세요 빌드 시 아래 에러가 발생하는데 혹시 해결 방법을 알고 계실까요?Error C2338 static_assert failed: 'error STL1001: Unexpected compiler version, expected MSVC 19.40 or newer.' 구글링을 해보고 있긴 한데 혹시 해결 방법을 알고 계실까 하여 문의 드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
점프할때 공중에서 초반에 걷는 모션이 유지되는 경우가 있습니다.
31:25 4강에서 강의내용대로 따라한 후, 시작버튼을 누르고 움직이면서 점프할 때 높은 확률로 걷는 모션이 안풀린 채로 공중에서 걷다가 점프 고점에서 뒤늦게 점프모션을 시작합니다. (정상적으로 점프(스페이스버튼)을 누르자마자 바로 점프모션을 취하는 경우도 있지만 확률이 낮음. 어떤 메커니즘때문에 이런것인지 모르겠습니다) 도중에 제가 뭔갈 잘못만진 것인지 아니면 다른 문제인지 잘 모르겠습니다. 저의 코드나 애니메이션 설정값에 실수가 있었을지 몰라서 저의 코드가 아닌 5_4 버전으로 올려주신 iduegu/UnrealProgrammingPart2 -4강 깃허브 파일을 받은 후에, Infinity Blade: Warriors 를 프로젝트에 추가 한 후 코드의 변경 없이 빌드 후 시작버튼을 눌러도 똑같은 현상이 생깁니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
애니메이션 변수의 설계
애니메이션 인스턴스 클래스 설계시의 의문점이 생겨 질문드립니다!예제에서는 NativeUpdateAnimation에서 매 틱마다 속도나 bIsFalling 등의 변수를 변경해주고 있습니속도는 매 틱별로 가져오는게 가장 좋지만 IsFalling이나 IsJumping 등의 변수는 변경 시에만 바뀔 수 있도록 Delegate를 걸어주거나 또는 캐릭터에서 직접 참조하여 변경시켜주는 방법이 더 좋을 수도 있을까요? 설계에 따라 달라질 수 있겠지만 매 틱마다 바뀌지 않아도 되는 변수는 Delegate로 바꿔주특정 캐릭터 클래스에 의존성이 강한 애니메이션 클래스인 경우 캐릭터 클래스에서 직접 참조하여 애님 인스턴스의 Setter를 호출해주기이런 설계도 큰 무리가 없을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
언리얼을 다시깔았는대 9009번 오류가 뜹니다
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: The command ""C:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 Development -Project="C:\Users\User\Documents\Unreal Part1\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild" exited with code 9009.1>Done building project "ArenaBattle.vcxproj" -- FAILED. 이렇게 두개가 뜨는대 찾아보니 경로상의 문제라고 하는대 어떤 경로가 잘못됬는지 잘 모르겠어서 질문드립니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
언리얼5.4에서 빌드오류가 발생합니다.
이번에 깃허브에 올려주신 언리얼엔진5.4버전으로 빌드 후 실행할려고 하는데 계속 오류가 발생합니다. LogInit: Warning: Incompatible or missing module: ArenaBattleRunning C:/UE5/UE_5.4/Engine/Build/BatchFiles/Build.bat Development Win64 -Project="H:/Unreal Project/MyGame/UnrealProgrammingPart2-15/ArenaBattle.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDEUsing bundled DotNet SDK version: 6.0.302Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" Development Win64 -Project="H:/Unreal Project/MyGame/UnrealProgrammingPart2-15/ArenaBattle.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDELog file: C:\Users\cwi02\AppData\Local\UnrealBuildTool\Log.txtCreating makefile for ArenaBattleEditor (no existing makefile)@progress push 5%Parsing headers for ArenaBattleEditor Running Internal UnrealHeaderTool "H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\ArenaBattle.uproject" "H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Intermediate\Build\Win64\ArenaBattleEditor\Development\ArenaBattleEditor.uhtmanifest" -WarningsAsErrors -installedTotal of 76 writtenReflection code generated for ArenaBattleEditor in 2.0740478 seconds@progress popBuilding ArenaBattleEditor...Using Visual Studio 2022 14.38.33140 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).[Adaptive Build] Excluded from ArenaBattle unity file: ArenaBattle.cpp, ABAIController.cpp, BTDecorator_AttackInRange.cpp, BTService_Detect.cpp, BTTask_Attack.cpp, BTTask_FindPatrolPos.cpp, BTTask_TurnToTarget.cpp, ABAnimInstance.cpp, AnimNotify_AttackHitCheck.cpp, ABCharacterBase.cpp, ABCharacterControlData.cpp, ABCharacterNonPlayer.cpp, ABCharacterPlayer.cpp, ABComboActionData.cpp, ABCharacterStatComponent.cpp, ABGameMode.cpp, ABGameSingleton.cpp, ABStageGimmick.cpp, ABAnimationAttackInterface.cpp, ABCharacterAIInterface.cpp, ABCharacterHUDInterface.cpp, ABCharacterItemInterface.cpp, ABCharacterWidgetInterface.cpp, ABGameInterface.cpp, ABItemBox.cpp, ABItemData.cpp, ABPotionItemData.cpp, ABScrollItemData.cpp, ABWeaponItemData.cpp, ABPlayerController.cpp, ABSaveGame.cpp, ABFountain.cpp, ABCharacterStatWidget.cpp, ABHpBarWidget.cpp, ABHUDWidget.cpp, ABUserWidget.cpp, ABWidgetComponent.cppDetermining max actions to execute in parallel (6 physical cores, 6 logical cores) Executing up to 6 processes, one per physical coreUsing Parallel executor to run 43 action(s)------ Building 43 action(s) started ------[1/43] Resource Default.rc2[2/43] Compile [x64] SharedPCH.UnrealEd.Project.ValApi.Cpp20.cpp[3/43] Compile [x64] ABCharacterAIInterface.cpp[4/43] Compile [x64] ABAnimationAttackInterface.cpp[5/43] Compile [x64] ABCharacterControlData.cpp[6/43] Compile [x64] ABCharacterHUDInterface.cpp[7/43] Compile [x64] ABAnimInstance.cpp[8/43] Compile [x64] ABCharacterItemInterface.cpp[9/43] Compile [x64] ABAIController.cpp[10/43] Compile [x64] ABCharacterStatComponent.cpp[11/43] Compile [x64] ABCharacterWidgetInterface.cpp[12/43] Compile [x64] ABCharacterBase.cpp[13/43] Compile [x64] ABCharacterNonPlayer.cpp[14/43] Compile [x64] ABComboActionData.cpp[15/43] Compile [x64] ABCharacterStatWidget.cpp[16/43] Compile [x64] ABFountain.cpp[17/43] Compile [x64] ABGameInterface.cpp[18/43] Compile [x64] ABCharacterPlayer.cppC:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2027: 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다.C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): note: 컴파일되는 함수 템플릿 인스턴스화 'To Cast<IABGameInterface,AGameModeBase>(From )'에 대한 참조를 확인하세요. with [ To=IABGameInterface, From=AGameModeBase ]C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2338: static_assert failed: 'Attempting to cast between incomplete types'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): error C2139: 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다.C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): note: 컴파일되는 변수 템플릿 'const bool is_base_of_v<UObject,AGameModeBase>'에 대한 참조를 확인하세요.C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): error C2338: static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface'[19/43] Compile [x64] ABGameMode.cpp[20/43] Compile [x64] ABGameSingleton.cpp[21/43] Compile [x64] ABItemData.cpp[22/43] Compile [x64] ABPotionItemData.cpp[23/43] Compile [x64] ABHUDWidget.cpp[24/43] Compile [x64] ABSaveGame.cpp[25/43] Compile [x64] ABHpBarWidget.cpp[26/43] Compile [x64] ABItemBox.cpp[27/43] Compile [x64] ABScrollItemData.cpp[28/43] Compile [x64] ABPlayerController.cpp[29/43] Compile [x64] ABWeaponItemData.cpp[30/43] Compile [x64] ABStageGimmick.cppC:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2027: 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다.C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Source\ArenaBattle\Gimmick\ABStageGimmick.cpp(198): note: 컴파일되는 함수 템플릿 인스턴스화 'To Cast<IABGameInterface,AGameModeBase>(From )'에 대한 참조를 확인하세요. with [ To=IABGameInterface, From=AGameModeBase ]C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2338: static_assert failed: 'Attempting to cast between incomplete types'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): error C2139: 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다.C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): note: 컴파일되는 변수 템플릿 'const bool is_base_of_v<UObject,AGameModeBase>'에 대한 참조를 확인하세요.C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): error C2338: static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface'[31/43] Compile [x64] ArenaBattle.cpp[32/43] Compile [x64] AnimNotify_AttackHitCheck.cpp[33/43] Compile [x64] ABUserWidget.cpp[34/43] Compile [x64] ABWidgetComponent.cpp[35/43] Compile [x64] BTTask_Attack.cpp[36/43] Compile [x64] BTDecorator_AttackInRange.cpp[37/43] Compile [x64] BTService_Detect.cpp[38/43] Compile [x64] BTTask_TurnToTarget.cpp[39/43] Compile [x64] BTTask_FindPatrolPos.cpp[40/43] Compile [x64] Module.ArenaBattle.cppTotal time in Parallel executor: 62.75 secondsTotal execution time: 70.98 secondsLogInit: Warning: Still incompatible or missing module: ArenaBattleLogCore: Engine exit requested (reason: EngineExit() was called)LogExit: Preparing to exit.LogXGEController: Cannot use XGE Controller as Incredibuild is not installed on this machine.LogXGEController: Cleaning working directory: C:/Users/cwi02/AppData/Local/Temp/UnrealXGEWorkingDir/LogPakFile: Destroying PakPlatformFileLogExit: Exiting.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
안녕하세요. Sample프로젝트관련 질문 드립니다
영상 초반 부분 Sample을 다운 받아 Map을 불러오면 위 사진과 같이 ItemBox의 블루프린트에서 AddScore 함수 부분에 오류가 발생해 실행이 되지 않습니다. 5.4버전으로 업그레이드된 깃허브 파일과, 5.1버전의 인프런 수업자료 둘 다 확인 결과가 똑같습니다. 제가 뭔가 빠뜨린게 있는걸까요?
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
에디터에서 cpp파일이 소스폴더 안의 헤더 경로 인식을 못합니다....
엔진버전은 5.4로 하고 있습니다.다름이 아니라 예를 들어서 액터 상속 받은 cpp파일을 만든다고 했을때 폴더 경로를 R1-> Test3 이렇게 해놓았습니다. 그런데 희한하게도 라이브 코딩에서 에러가 뜨는데 E:\Projects\UnrealProjects\RookissUE5Part4\R1\Source\R1\Test3\MyActor.cpp(4): fatal error C1083: Cannot open include file: 'Test3/MyActor.h': No such file or directory [2/4] Compile [x64] R1.init.gen.cpp [3/4] Compile [x64] R1PowerActing.cpp [4/4] Compile [x64] MyActor.gen.cpp Total time in Parallel executor: 0.86 seconds Total execution time: 5.13 secondsBuild failed.확인을 해보니까 헤더파일을 계속해서 인식을 못한다고 뜨더라구여 그래가지구 cpp파일에 #include "Test3/MyActor.h"여기서 #include "MyActor.h"로 폴더 경로를 아예 빼버리고 라이브코딩 빌드를 하니까 이거는 잘 작동을 합니다. 이게 5.4 버전 부터는 cpp경로에서 헤더파일의 폴더를 인식하지 못하는건지 아니면 따로 플러그인이나 다시 에디터를 재설치하는게 맞는지 좀 애매합니다. 혹시 이러한 경우를 겪으셨는지 궁금해서 이렇게 올려봅니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
NextPatrolPos 질문드립니다
오리진에서 5미터 내의 x,y값이 패트롤에 저장하고 성공하면 true 로 바뀌고 패트롤 위치까지 이동하는 함수를 수행한다고 이해했는대 재대로 이해한게 맞을까요? 만약 맞다면 이 함수가 실패를 하는대 왜그런건가요?? NavMeshBoundsVolume 에서 조정이 잘못된건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
21:29 다른 샘플코드에도 블루프린트가 구현되있는 것 같습니다.
안녕하세요 선생님. 수업 잘 듣고 있습니다.다름이 아니라 저도 다른분 질문과 같이 블루프린트가 전부 구현되어 있어서 질문을 드립니다..! 제가 다운받은 파일은 2-1_1, 2-3, 2-4, 2-10인데 1강부터 영상보고 따라했으니 아마 2-1_1에 블루프린트가 전부 구현되어 있는 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
언리얼 엔진 버전 5.3 이상으로 진행하는 경우에 몇가지 수정해야 하는 부분이 존재하는 것 같습니다.
첫번째로, 무한 무적을 제거하는 블루프린트 게임 이펙트인 BPGE_InvincibleRemove에서 기존의 5.3 이전 버전에서는 교수님이 제작해주신 동영상대로 진행해도 문제가 없지만,제가 사용하는 버전인 5.4 버전과 같은 5.3 이후의 버전에서는 해당 과정을 적용할 수 없었습니다.따라서 검색을 통해 다음과 같이 진행하였습니다.참고링크https://www.reddit.com/r/UnrealEngine5/comments/18h7wip/how_to_remove_gameplay_tags_with_a_gameplay/?rdt=35472 위와 같이 구성하여 확인한 결과, 무적 태그가 잘 삭제되고 무적이 해제되는 것을 확인하였습니다.정확한 방법은 아닌것 같지만 동작하는데 문제가 없기에 이 설정을 유지하고 있습니다. 두번째로, 광역 스킬을 담당하는 블루프린트 게임 어빌리티인 BPGA_Skill에서기존의 5.3 이전 버전에서는 쿨다운과 코스트에 연결될 GE를 연결만 해줘도 문제없이 동작하지만,마찬가지로 5.4 버전에서는 쿨다운과 코스트가 작동하지 않음을 확인하였습니다.검색을 해본 결과, 다음과 같이 진행하였습니다.참고링크https://forums.unrealengine.com/t/adding-cooldowns-to-abilities-with-the-gameplay-ability-system-in-5-3/1612390 기존의 쿨다운과 코스트에 사용하는 GE를 연결하고 이벤트 그래프에서 위와 같이 노드를 연결한 결과정상적으로 쿨다운과 코스트가 적용되는 것을 확인하였습니다. 혹시 더 나은 설정 방법이나 개선점이 있다면 무엇이 있는지 알 수 있을까요?추가적으로 캐릭터나 애니메이션에서 사용할 수 있는 물리 요소들을 Attribute Set에서 관리하는 것이 나은지, Character에서 관리하는 것이 나은지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
진행하다가 갑작이 모듈이 사라진거같은대 어떻게 해야하나요??
해결방법이 있을까요?? 아레나베틀을 열면 뜨는 화면입니다
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
31:30 영상에서는 델리게이트의 인자들을 넣어주지 않습니다.
안녕하세요 선생님 강의 잘 보고 있습니다.다름이 아니라 영상에서는 31:30초에서 33번과 34번 라인의 델리게이트의 브로드케스트 함수가OnStatChanged.Broadcast();로 끝나고 인자들을 넣어주지 않습니다. 깃허브코드에서는 OnStatChanged.Broadcast(GetBaseStat(), GetModifierStat());OnStatChanged.Broadcast(GetBaseStat(), GetModifierStat());로 인자들을 넣어줍니다. 제가 확인하였을 때는 31:30초 이후 영상에서도 수정되는 부분이 나오지 않아 질문을 남깁니다..!
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
플레이어와 몬스터 델리게이트 관련
현재 강의에는 StatComponent로 해서 공통적으로 Npc와 플레이어의 Stat을 관리해주고있는데 경험치총량과 경험치량을 StatComponent에 추가로 만들어놓는다고 할때 Npc의 죽음에있어서 플레이어의 경험치를 올리는 기능을 구현한다면 델리게이트를 사용해 몬스터의 죽음을 알린뒤에 경험치를 올리는 로직을 처리함에 있어서 플레이어의 경험치를 올리는 함수를 호출하는 과정에 있어서 형변환을 통해 결국 의존성이 발생하는 것 같아서 질문드립니다. 의존성을 없애는 최적의 방법은 어떻게 하는게 좋을까요? 또 만약 결국 형변환을 통해서 Npc의 cpp 코드에서 플레이어의 함수를 부른다면 플레이어의 헤더를 추가해서 부르는 것이 아니라 언리얼에 제공되는 현재 빙의된 플레이어를 불러서 플레이어의 함수를 부를수 있는 방법이 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 무한맵 TArray 빌드 시 오류관련 질문
안녕하세요!사용중인 언리얼엔진 버전 5.4.3이고,28분 45초 코드 빌드할 때, 오류가 나서 분석해보니TArray<FOverlapResult> OverlapResults; 부분에서 오류가 발생하더라구요.이 부분을 다른 방법으로 할 수 있는 방법이 있는지 궁금합니다.