묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
콘솔창 특수문자 겹침
안녕하세요. [배열 실습] 강의위와 같이 문자가 겹쳐서 나오는데 해결 방법 알 수 있을까요?다른 분께서 올려주신 모든 글꼴 표시도 해보려고 했으나,저장만 하면 체크가 해제되어서 적용이 되지 않습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TObjectPtr과 강참조에 관한 질문입니다
8강 아이템 시스템 마지막에 강참조된 아이템들을 약참조로 바꾸는 부분을 공부하다가 질문드립니다 인터넷에서 강참조와 약참조에 대해 좀 더 자세히 공부하다보니강참조 = TStrongObjectPtr / 약참조 = TSoftObjectPtr 를 사용하며, TObjectPtr과 강참조가 관련된 정보는 없길래 TObjectPtr에 대해 궁금증이 생겼습니다 TObjectPtr에 대해 검색해본 바로는TObjectPtr은 기존에 사용하던 원시 포인터를 대체하는 포인터를 이용한 단순한 참조에 불과하며, 그러므로 댕글링 포인터 문제 또한 발생할 수 있다.보통 강참조라고 하는 것은, 객체의 소유권을 가지고 Ref Count를 올리는 역할을 수행해야 하는데, TObjectPtr은 단순히 객체를 참조하는 역할만 하므로 강참조라고 볼 수는 없다라고 나와 있던데 강의에서 TObjectPtr이 강참조라고 하셨던 것은 어떤 의미인지 궁금합니다 그리고 만약에 TObjectPtr이 강참조가 아니라면, 이는 어떠한 정도의 참조인건지요...? 중참조? 이런 단어는 없는거같던데.. TObjectPtr은 TStrongObjectPtr(강참조) 와 TSoftObjectPtr(약참조) 사이의 어딘가에 있는 애매한 정도의 참조인것인지요?? 추가질문)약참조를 공부하는데 약참조에도 또 TSoftObjectPtr과 TWeakObjectPtr의 2가지가 존재하더라구요... TSoftObjectPtr리소스의 주소는 갖고 있되, 로딩은 시켜놓지 않는 경우에 사용아직 현재 월드에 인스턴스화되지 않은 객체를 참조할 때 사용TSoftObjectPtr은 FSoftObjectPath를 감싸는 TWeakObjectPtr이다 TWeakObjectPtrRef Count를 증가시키지 않아야 하는 경우 / 소유권이 없지만 참조는 필요한 경우에 사용참조하고 있는 오브젝트가 GC에 넘어간 경우, nullptr로 바뀌며 validation 체크를 가능하게 함 이렇게 알고있는데 제가 학습한 내용이 맞는건지요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
22:00 부분에서 위젯과 NativeConstruct 관련 질문이 있습니다
먼저, 강의 흐름대로 위젯 블루프린트를 하나 만든 후 'PbHpBar' f라는 ProgressBar를 추가하였으며 그 블루프린트의 부모를 ABHpBarWidget으로 설정해 둔 상태입니다.여기서 궁금한 점은ABHpBarWidget은 부모클래스이며, 따라서 자식클래스에서 생성한 'PbHpBar' 라는 위젯의 존재를 알지 못할텐데, 어떻게 HpProgressBar 에 'PbHpBar' 라는 위젯의 존재를 찾아서 주소를 반환할 수 있는것인지 궁금합니다.(만약 부모자식 관계가 바뀌어있다면, 자식에서 부모의 PbHpBar 라는 녀석의 존재를 찾아 포인트를 반환하는게 논리적으로 뭔가 납득이 가는데, 강의의 내용은 마치 상속관계가 반대의 상황인데도 불구하고 가능한것 처럼 보여집니다.) NativeConstruct() 라는 생성자는 제가 모르는 뭔가 특별한 기능을 가진 생성자이며, 따라서 부모클래스임에도 불구하고 자식클래스인 블루프린트 클래스에 있는 위젯의 정보들까지 미리 전부 탐색할 수 있기 때문에 자식에 있는 PbHpBar까지도 찾아서 포인터를 반환할 수 있는 것인가요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
LoL 스킬 사용할 때 바닥에 공격범위가 나오는 기능을 추가로 구현하고 싶습니다.
5.1 버전의 강의를 다 듣고, 5.4 깃허브 업데이트 되어서 다시 복습하다가 제목과 같이 스킬 사용할 때 범위 시각화(배포용) 기능을 구현해보고 싶더라구요. 일단, 캐스캐이드가 Legacy 기능이다보니 나이아가라로 다른 스킬 구현은 완료했고, 스킬의 범위를 바닥에 표현하고 싶은데 GAS 프레임워크에서 스킬 범위를 표기할 때 좋은 class가 따로 구현되어 있을까요? 현재 나이아가라 데칼을 써서 해볼까 실험은 하고있는데, 정석적인 방법(?)이 있다면 먼저 그런 방법으로 해보고 싶어서 질문드려요.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
4장 UABAT_JumpAndWaitForLanding* CreateTask 에 대한 질문
선생님 안녕하세요.C++ 코드로는 UABGA_Jump::ActivateAbility(); UABAT_JumpAndWaitForLanding::CreateTask(); JumpAndWaitForLanding->ReadyForActivation(); UABAT_JumpAndWaitForLanding::Activate();와 같은 일련의 코드 흐름이 이해가 가는데, UFUNCTION(BlueprintCallable, Category = "Ability|Tasks", meta = (DisplayName = "JumpAndWaitForLanding", HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = "TRUE")) static UABAT_JumpAndWaitForLanding* CreateTask(UGameplayAbility* OwningAbility);UABAT_JumpAndWaitForLanding* CreateTask()를 Blueprintcallable로 변경하시면서 블루프린트에서 CreateTask가 호출되도록 변경하셨는데.JumpAndWaitForLanding->ReadyForActivation(); 함수를 주석 처리하셨는데도 불구하고, UABAT_JumpAndWaitForLanding::Activate() 함수가 호출되는 이유를 잘 모르겠습니다.void UGameplayAbility::ActivateAbility() { if (bHasBlueprintActivate) K2_ActivateAbility();개인적인 생각으로는 블루프린트 노드를 사용하게 되면 K2_ActivateAbility()가 호출되는걸로 봐서는 이 함수 내부에서 추가로 AbilityTask의 Activate함수를 호출해주는것 같은데, 함수 내부를 볼 수가 없습니다.혹시 어떤 원리로 UABAT_JumpAndWaitForLanding::Activate()가 호출되는지 알수있을까요? 감사합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FieldIterator 질문입니다
CharacterStatWidget 클래스에서 TFieldIterator 사용에 관한 질문입니다 TFieldIterator 말고도 다른 Iterator가 존재하고, 여기에서는 이 상황에 맞는 Iterator를 사용해야 하기에 FieldIterator를 사용한 것인지 궁금해서 검색해봤더니, 언리얼 엔진에서의 반복자는 항상 ObjectIterator과 ActorIterator 이 2가지만 언급하더라구요. ObjectIterator는 UObject를 상속받은 클래스들에 대해 순회하는 반복자ActorIterator는 Actor(레벨에 배치된 UObject)를 상속받은 클래스들에 대해 순회하는 반복자검색 결과에서는 항상 이렇게 설명하던데그럼 이와 마찬가지로 FieldIterator는 Ustruct에 등록된 프로퍼티/함수들에 대해 순회하는 반복자로 이해하면 되는 것일까요? 그리고 FieldIterator도 위의 오브젝터와 액터 반복자와 마찬가지로 FFieldIterator는 타입을 특정하지 않고 모든 구조체의 프로퍼티/함수들을 순회하는거고TFieldIterator는 타입을 지정하여 구조체 내의 프로퍼티/함수들을 순회하는 거라고 보면 되는걸까요? 아니면 FieldIterator는 FFieldIterator는 없고 오직 TFieldIterator만 있는 건가요? 그리고 위 스크린샷에서 TFieldIterator<FNumericProperty> PropIt(FABCharacterStat::StaticStruct())이 부분을 TFieldIterator로 FNumericProperty타입을 지정하여, ABCharacterStat 구조체에서 FNumericProperty타입을 지정하여 순회한다로 이해하면 되나요?그런데 ABCharacterStat 구조체에는 FNumericProperty 타입의 변수가 없는데 왜 타입을 FNumericProperty로 지정한 것인지요...?그리고 FNumericProperty가 있으면 그럼 TNumericProperty라는 것도 있는건가요? 아니면 이건 반복자가 아니기 때문에 TNumericProperty라는건 존재하지 않는건가요?복습하면 할수록 질문이 질문에 꼬리를 잇게되네요...
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
10강에서 reinterpret_cast 질문있습니다
인터넷에서 찾아보니 casting 중에서도 가장 강한 cast이며, 주로 패킷 통신할 때 자료를 포인터로 받아오는 경우에 사용하며 그 외엔 잘 사용하지 않는 형변환이다. 포인터끼리, 그리고 포인터와 수치형 간의 변환 이라고 하는데 혹시 ABCharacterStat.h에서 operator+ 구현할 때, reinterpret_cast를 사용하는게 더 좋은 이유가 있을까요? 캐스팅 종류가 많아서 너무 헷갈리네요... 만약에 굳이 reinterpret_cast를 쓰지 않아도 된다면 일반 casting으로도 대체가 가능한지요? 아 그리고 추가로, part2를 다 들으면서 계속 궁금했었던건데 왠만한 모든 변수 선언 시에는 대부분 const를 붙여서 선언하시던데 const가 값을 바꾸지 않는 상수화이지 않나요?? 제가 유니티만 하다가 언리얼로 최근에 바꿨는데 그래서 그런가 제일 적응안되는부분이 모든 변수를 포인터로 쓰는 것과 항상 변수에 const를 붙이는 부분이더라구요. 변수를 포인터로 선언하는 이유는 인터넷 검색으로 이해가 되었는데, const를 거의 항상 사용하는 이유는 아직 잘 모르겠습니다... 변수를 상수화 시키는 것이 어떤 의미가 있는걸까요?? 변수의 값은 보통 게임이 진행되면서 계속 바뀌어야 하지 않나요??
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
[Part4] 6강 MaxHealth Category 오타여부 확인이 필요합니다.
깃허브 브랜치 6의 ABCharacterAttributeSet.h의 MaxHealth부분 카테고리가 Attack으로 되어있습니다.카테고리 Health가 맞나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
애니메이션 문제
다른 애니메이션은 다 문제 없는데WarriorRunFwdWarriorWalkFwdWarriorWalkInPlace이 세가지만 이렇게 제자리에서 T포즈로 움직이지 않습니다.선생님께서 제공하신 파일도 완성예제파일로도 대체해봤는데 전혀 달라진게 없는데 왜 이럴까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
현장강의는 어디서 들을 수 있나요???
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현장강의를 들어야 수업을 따라갈 수 있을것같아요 ㅠ
-
미해결이득우의 언리얼 프로그래밍 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강 인프런 첨부파일 블루프린트>
-
미해결이득우의 언리얼 프로그래밍 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. 이렇게 두개가 뜨는대 찾아보니 경로상의 문제라고 하는대 어떤 경로가 잘못됬는지 잘 모르겠어서 질문드립니다
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
UI 강의에서 예외 발생 오류 질문 드립니다.
UI 강의 22:16에서 실행을 했을 아래와 같이 오류가 발생 하네요..{ Button* ui = new Button(); ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default); ui->SetPos({ 200, 200 }); uis.pushback(ui); }ui->SetSprite 부분을 //처리할 경우 오류가 안나는 걸로 봐서는 여기서 뭔가 잘못된 것 같은데 아무리 찾아도 안나오네요..
-
해결됨이득우의 언리얼 프로그래밍 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버전의 인프런 수업자료 둘 다 확인 결과가 똑같습니다. 제가 뭔가 빠뜨린게 있는걸까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
NextPatrolPos 질문드립니다
오리진에서 5미터 내의 x,y값이 패트롤에 저장하고 성공하면 true 로 바뀌고 패트롤 위치까지 이동하는 함수를 수행한다고 이해했는대 재대로 이해한게 맞을까요? 만약 맞다면 이 함수가 실패를 하는대 왜그런건가요?? NavMeshBoundsVolume 에서 조정이 잘못된건가요?