목록Game Engine (15)
Visual Studio
FVector2D WindowSize(800.0f, 600.0); /* 원하는 값 대입 */if (FSlateApplication::IsInitialized()) /* 사실 검사 안해도 됨 */{ WindowSize *= FSlateApplication::Get().GetApplicationScale();} /* 윈도우 생성 코드 */... .MinWidth(WindowSize.X) .MinHeight(WindowSize.Y) .MaxWidth(WindowSize.X) .MaxHeight(WindowSize.Y)...
TMap의 키값으로 UObject 객체를 사용할 경우 Raw Pointer나 TObjectPtr 대신 TObjectKey를 사용할 수 있다.근데 공식 문서 어디에도 TMap의 키값으로 TObjectKey를 권장한다는 내용이 없는 걸 보니 무조건 써야 하는 것은 아닌 듯 하다. TObjectKey에는 FObjectKey 타입의 ObjectKey 멤버가 있는데, FObjectKey::ObjectIndex를 먼저 비교하고 동일할 시 FObjectKey::ObjectSerialNumber를 비교한다.어차피 64비트에서는 모든 연산이 64비트로 이뤄지므로 오히려 포인터보다 비교 연산자의 성능이 떨어질 것으로 예상된다.Type Hash를 구하는 과정에서도 포인터 타입은 UE::Private::MurmurFinali..
Delegates FCoreDelegates FCoreUObjectDelegates FWorldDelegates FGameDelegates FEditorDelegates FEditorSupport FLevelEditor OnMapChanged OnLevelEditorCreated OnTapManagerChanged OnTabContentChanged OnActorSelectionChanged OnElementSelectionChanged OnComponentEdited OnTakeHighResScreenShot Engine GEngine GEditor GUnrealEd (GEditor와 동일한 객체, 선언 타입이 다름) Asset, Package IAssetTools IAssetRegistry FPack..
UnrealUnreal Object SystemUObject는 nullptr과 비교하지 않고 IsValid를 사용하여 검사한다.UObject를 상속받은 멤버 변수에 raw pointer 대신 TObjectPtr을 사용한다.TWeakObjectPtr는 UObject보다 더 정확한 IsValid 체크를 할 수 있도록 도와준다. 해당 객체가 댕글링되면 nullptr로 세팅된다.Math 관련FVector, FMatrix, FBox, FBoxSphereBounds 등의 수학 클래스들은 기본 생성자에서 명시적으로 멤버 변수를 초기화해주지 않는다. 따라서 생성자 인자로 EForceInit::ForceInit을 넣거나 직접 값을 초기화 해주는 것을 권장한다.Package 관련Package Path: 해당 패키지가 '속..
Fast Object Picking | 포프머신 포인터의 확실한 이해 | 고속성장에 필요한 C | 컴퓨터 동작원리의 이해 수백명에게 5.0 만점 리뷰를 받은 초특급 C 언어 인강! POCU 아카데미에서 C 언어를 마스터하세요! blog.popekim.com
블루프린트와는 다르게 DefaultSceneRoot가 자동으로 생성되지 않는다. CreateDefaultSubobject로 컴포넌트 생성시 RootComponent가 존재하지 않을 경우, 가장 처음 생성한 컴포넌트가 RootComponent가 된다. 추가로 CreateDefaultSubobject는 생성자에서만 호출 가능하고, NewObject, SpawnActor는 생성자에서 호출하면 안된다. 참고자료 [UE4] 오브젝트 생성 - CreateDefaultSubobject , NewObject, SpawnActor CreateDefaultSubobject , NewObject, SpawnActor 언리얼 엔진에서의 UObject는 오브젝트 프로토입을 기본으로 합니다. 각 UClass는 UObject와 연..
[UE4] Time Manager 유니티에서는 코루틴(Coroutine)을 지원한다. 언리얼에서는 코루틴을 지원하는 지는 확실하지는 않지만... 코루틴과 비슷한 역할을 하는 API를 찾아보았다. Timer Manager 이라는 것이다. 각설하고 사용 daru-daru.tistory.com 예제 코드 void AActor_TetrominoSpawner::BeginPlay() { Super::BeginPlay(); GetWorldTimerManager().SetTimer(spawnTimer, this, &AActor_TetrominoSpawner::SpawnTetromino, 3, false); } void AActor_TetrominoSpawner::SpawnTetromino() { ... Spawning..
How to spawn a blueprint actor via C++ Edit, i wrote no the wrong post- forums.unrealengine.com
The Art of Destruction in 'Rainbow Six: Siege' Introducing a game-changing technology in a AAA game comes with its own set of challenges. It's not enough to develop a new technology, you need to make it play nicely with other systems in the game. This session is about developing and... www.gdcvault.com
최근에 base64로 인코딩된 문자열로 Texture를 생성해야 할 일이 있었다. _image = new Texture2D(1, 1); string imageString = element.GetAttribute("value"); byte[] imageBytes = System.Convert.FromBase64String(imageString); _image.LoadImage(imageBytes); 그런데 이렇게 텍스쳐를 생성하여 렌더링해보면 아래 사진처럼 테두리에 찌꺼기(?)가 보인다. 마치 이미지의 좌우가 연결되어 있는 것처럼 가장 우측의 픽셀이 좌측에 나타나고, 아랫줄의 픽셀이 맨 위에 나타나는데, WrapMode를 Repeat에서 Clamp로 변경하면 해결할 수 있다. _image.wrapMode ..