안녕하세요, 1강에서 ConstructorHelpers로 find class 할 때는, 에셋 경로 위치에서 /Game 전에 있는 경로는 지우고 데이터를 읽어 왔습니다. 이번에 2강에선 find object할 때 는 따로 경로를 수정하지 않으시더라구요. 둘다 인자로 받는것도 TEXT 주소값이고, 컴파일 과정에서는 에러 안나는거보면 엔진이 초기화 되다가 일어나는 문제인데 '/Game' 앞에 있는 저 경로가 ConstructorHelpers에 find object / class를 사용 함에 있어서 어떤 영향을 주고 왜 다르게 써야 하는지 궁금합니다. 감사합니다.
헤더함수에서 public과 protected를 각각 언제 써야하는지 헷갈립니다. 예를 들어 2강에서, ABFountain.h에서는 컴포넌트들을 public으로 선언했고 ABCharacterPlayer.h에서는 컴포넌트들을 protected로 선언했는데 차이가 궁금합니다. 그리고 항상 BeginPlay는 protected로, Tick은 public으로 선언되어 있는데 이 부분도 왜 그런지 궁금합니다.
오류가 있는 것 같아 수업자료 다운 받아서 모두 똑같이 연결 했는데도 캐릭터가 움직이지 않고 공격입력만 받아져서 controller의 event begin play에 print text를 찍어봐도 아무것도 출력되지 않네요. 혹시 뭐가 잘못된 건지 짐작이 가시나요? world setting도 이미지 입니다.
강의에서 ABCollision.h 를 추가할 때에는 5.1 버전으로 프로젝트를 진행했고 Physics 폴더 생성 -> ABCollision.h 파일 생성 ArenaBattle.uproject -> Generate Visual Studio project files 를 실행 의 과정을 거친뒤 .sln 을 실행했을 때 프로젝트가 ABCollision.h 파일을 잘 인식하여 ABCollision.h 내에서 #inlcude 'CoreMinimal.h' 에 문제가 없었습니다. 5.4 버전에서 위와 같은 과정으로 헤더 파일을 추가하는데 #include 'CoreMinimal.h' 를 프로젝트가 인식하지 못하고 빨간줄이 그어져 있습니다. 다음은 제가 시도한 방법들 입니다. VS 킨 상태에서 .proj 의 generate .. 실행 VS 닫은 상태에서 .proj 의 generate .. 실행 Binaries, Intermediate, Saved 폴더를 삭제하고 Generated Visual Studio project files 실행 Unreal Editor 에서 Tools -> Reflesh .. 위의 과정들을 모두 해도 계속해서 추가 파일을 프로젝트가 인식하지 못합니다... 왜 이런 걸까요.
8강의 infinity Blade: Weapons 에셋팩을 다운받으려 마켓 플레이스에 갔는데 Fab으로 바뀌어 있었습니다. Fab에서는 검색해도 해당 에셋팩이 뜨지 않고, 에픽게임즈 런처를 열어 Fab으로 바뀌기 전 받아놓았던 Infinity Blade: Warriors을 라이브러리에서 들어가도 Page not found가 뜹니다ㅠㅠ 이런 경우에는 깃헙의 Content 폴더에 MaterialLibrary를 다운받아서 그대로 쓰면 될까요? 아니면 Fab에서 적당한 무료 weapon 에셋을 받아서 쓰면 될까요?
(5.4.3 기준) 14강까지 잘 달려오다가 15강에서 갑자기 오류가 뜹니다. 우선 14강까지 쓰던 프로젝트를 문제없이 그대로 써왔으며, 15강을 시작하기 앞서 이 프로젝트를 빌드를 통해 에디터가 켜지는것을 확인 후, 15강의 앞부분 c++코드를 따라하면서, 정확히 "7:42 까지 따라한 후, 즉 캐스팅코드 작성 이후 헤더까지 포함 시킨 후 바로 F5를 누르면 맨 아래와 같은 에러가 뜹니다.((바로 전 단계인 ABGameInterface.h 를 에디터에서 생성 후, 모두 로드를 클릭한 후에 그 즉시 f5를 눌러 문제없이 에디터가 켜지는 것을 재차 테스트하여 확인함)" 이후에 어떤 코드를 이어 써서 디버깅해도 같은 에러가 떠서 수강 진행이 막혀있는 상태입니다. 그래서 깃허브에서 올려주신 "UnrealProgrammingPart2-14" 도 받은 후 15강을 따라하면서 아까와 동일하게 매 코드작성마다 디버깅확인을 해봤더니, 이 파일 또한 정확히 7:42부분에 IABGameInterface* ABGameMode = Cast<IABGameInterface>(GetWorld()->GetAuthGameMode()); 코드를 작성 후, Interface/ABGameInterface.h 헤더를 포함시키고 그 즉시 F5를 하면 위와 동일한 상황에서 동일한 에러가 뜹니다. 근데 신기한건, 깃허브에 올려주신 "UnrealProgrammingPart2-15" 도 받아서 F5를 눌렀더니 이것은 문제 없이 에디터가 켜집니다. 어떤 차이가 있길래 이것은 켜지는걸까요...? 어떤 문제로 인해 저 시점에 아래와 같은 에러가 발생하는지 궁금합니다. 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보 오류 MSB3073 "F:\UE_5.4\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\qkrwo\Downloads\UnrealProgrammingPart2-14\UnrealProgrammingPart2-14\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 157 오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 167 오류(활성) E0020 식별자 "FTextureBuildSettings"이(가) 정의되어 있지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\Texture.h 2017 오류 C2027 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88 오류 C2338 static_assert failed: 'Attempting to cast between incomplete types' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88 오류 C2139 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits 1298 오류 C2338 static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 135
안녕하세요. 10강 다중 타겟으로 스킬 데미지 입히는 부분 학습중입니다. 그런데, 스샷처럼 CollisionQueryParams 생성할때 Source Character 를 넣어줘도 Overlaps 정보에보면 자신이 포함되있는 상태로 나옵니다. 실제로 게임 플레이시, 자신도 피해를 입는 상황이고요.. 혹시 어떤부분을 확인해봐야될지 알수있을까요? 감사합니다.
13강에서 HUD를 업데이트하면서 화면에 띄우는 작업을 하게되는데요, 좀 궁금한 사항이 생겼습니다. 기본적으로 케릭터마다 HP위젯을 가지고있는데, 만약 플레이어는 따로 HP를 가지고 있지 않게하고 HUD에 HP를 띄우는것만으로 UI를 변경하게 된다면, 플레이어쪽에서 HPBar위젯 CDO를 하지 않게 변경하고 몬스터들만 CDO를 생성하도록 변경하면 되는건가요? 그리고 이제 플레이어는 HUD를 통해서만 소유한엑터정보를 가저와서 스텟에 접근하는 방식으로 변경하면 될려나요?