목록Game Dev/Unreal C++ : Dev Log (48)
KoreanFoodie's Study
AttachedActors vs ChildActors 만약 다음과 같이 부모 액터에 부착된 액터들을 삭제하려고 하면 어떻게 해야 할까? 만약 현재 액터에 자식으로 설정된 ActorComponent 들의 경우, 다음과 같은 코드로 조회할 수 있다. TArray tempChildActors; AActor* owner = GetOwner(); // SomeChildActor->SetOwner(this); 가 어디선가 실행되었다고 가정 owner->GetAllChildActors( tempChildActors, true ); uint32 count = tempChildActors.Num(); 하지만 위와 같은 경우나, 무기를 캐릭터의 소켓에 부착 (AttachToComponent) 하는 경우..
오브젝트 생성 및 애셋 불러오기 언리얼에서 오브젝트를 생성하고 애셋을 불러올 때는 보통 CreateDefaultSubobject 로 CDO 를 만들어 준 다음, ConstructorHelpers::FObjectFinder 로 애셋을 연결시켜 준다. 이 과정을 단축시켜주는 Helper Function 을 만들어 사용해 보자. CHelpers.h #pragma once #include "CoreMinimal.h" #include "Components/SkeletalMeshComponent.h" #include "Kismet/GameplayStatics.h" #include "Particles/ParticleSystem.h" #include "NiagaraSystem.h" #include "NiagaraFun..
화면에 출력하는 로깅시스템 콘솔에 출력했던 것과 비슷하게, 이번에는 UE_LOG 가 아닌 AddOnScreenDebugMessage 함수를 활용해 화면에 값을 출력해보자. 출처는 여기! CLog.h class UE_PROJECT_NAME_API CLog { public: static void Print(int32 InValue, int32 InKey = -1, float InDuration = 10, FColor InColor = FColor::Blue); static void Print(float InValue, int32 InKey = -1, float InDuration = 10, FColor InColor = FColor::Blue); static void Print(const FString& I..
언리얼 로그 언리얼은 UE_LOG 함수를 이용하여 로그를 출력한다. 먼저, .h 파일에 카테고리를 선언하고, 그에 맞는 정의를 .cpp 파일에서 Define 해주면 된다. MyGame.h //General Log DECLARE_LOG_CATEGORY_EXTERN(LogMyGame, Log, All); //Logging during game startup DECLARE_LOG_CATEGORY_EXTERN(LogMyGameInit, Log, All); MyGame.cpp #include "MyGame.h" //General Log DEFINE_LOG_CATEGORY(LogMyGame); //Logging during game startup DEFINE_LOG_CATEGORY(LogMyGameInit); 헤더..
Level Design 컨셉 : 무한맵. 4 개중의 하나의 방향으로 이동함. 목표 지점이 정해져 있음. 목표지점에 도달하여, 성화를 봉송하면 게임이 클리어. 전투 : 새 공간에 도착하면, 문이 닫히면서 적이 랜덤으로 스폰된 적과 싸우게 됨. 목표 지점에 가까이 갈수록 적이 강력해짐. 목표 지점 방에서는 보스와 전투를 하게 만들 수도 있음. 전투 완료 : 적을 전부 무찌르면, 2개의 아이템 박스가 나옴. 이때 선택을 해야 함. 선택지는 다음과 같음. 무기변경 무기강화 무기 내구도 수리 캐릭터 HP 증가 캐릭터 이동속도 증가 캐릭터 공격속도 증가 다만 2 가지 전부 효과 카테고리는 같은데, 하나는 "100% 확률로 10% 성능 향상" 이며, 나머지 하나는 "10% 확률로 성능 50% 상승, 40%확률로 성능..
언리얼에서 멤버 변수 선언의 윗줄에 UPROPERTY 매크로를 추가하면 자동으로 하단의 변수 선언 구문이 오른쪽으로 이동한다. 이를 자동조정하기 위해서는 비주얼 스튜디오 추가 확장 도구를 비주얼 스튜디오에 설치해야 한다! 링크는 아래에 있다 : https://github.com/hackalyze/ue4-vs-extensions GitHub - hackalyze/ue4-vs-extensions: Useful UE4 Visual Studio extensions. Useful UE4 Visual Studio extensions. Contribute to hackalyze/ue4-vs-extensions development by creating an account on GitHub. github.com 일단 ..
언리얼 프로젝트 구조를 변경하고, 모듈을 추가하는 작업을 한 후, 비주얼 스튜디오에서 "솔루션 다시 빌드" 를 했는데 빌드를 실패했다. 그리고 이런 에러 메시지가 떴다! (22/6/17 추가 : 문제가 되는 dll, pdb 파일을 삭제하면 해결됨) 그리고 나온 크래시 리포터. LoginId:be4263854175519d068bceae3ec68e43 EpicAccountId:8d541bf740fd4c8aa2ddbf45e5614f37 Assertion failed: Object->HasAnyFlags( RF_BeginDestroyed ) && !Object->HasAnyFlags( RF_FinishDestroyed ) [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Co..
Pure Virtual Function 이 왜 거기서 나와? 언리얼을 공부하던 중, 플레이 중에 ESC 버튼을 누르면 라는 에러가 나오면서 종료가 되는 현상이 발생했다. 그것도 지속적으로! pure virtual 함수가 호출되었다니?? 나는 만든적도 없는데.. 하며 에러로그를 보니 내 실수가 아닌, 엔진 쪽 버그로 보였다. 자세히 읽어보면 이 부분이 문제라는 건데... Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp] [Line: 475] Pure virtual function being called 일단 구글링을 조금 해보다가, 임시 방편으로 해당 소스코드를 약간..