본문 바로가기

분류 전체보기60

[UE4]GC에 의한 UObject 상속받은 객체 삭제 방지 클래스 안에서 UObject를 동적으로 생성하는 작업을 하다보면 가끔 플레이 도중 아무것도 안하고 있으면 0xFFFFFFFF와 같은 에러메세지와 함께 액세스 위반 에러가 뜬다. 콜 스택을 봐도 감이 안잡혀 짐작가는 바는 GC(Garbage collector)밖에 없었다. 해당되는 UObject를 AddToRoot 함수를 사용하여 GC에 의한 삭제를 방지할 수 있다. 예: MyObject->AddToRoot(); 2018. 11. 20.
[UE4]데칼 생성(스폰)(코드) 캐릭터가 공격할 때 공격 범위를 데칼로 표현해주고 싶었다. 데칼이 표면에 제대로 출력될 수 있도록 데칼의 사이즈와 Rotation 값을 잘 설정해주어야 한다. 데칼은 캐릭터에 하나 둬서 사이즈를 변경해가면서 써도 되지만 언리얼 엔진 특성상 FadeOut을 하면 사라지고 나서 Destroy되어 그냥 Spawn 시켜서 사용해보았다. 데칼생성은 UGameplayStatics의 SpawnDecalAtLocation을 이용하면 된다. 예제 123456789101112 FVector NewSize = FVector(64.0f, 80.0f, 64.0f); float BoxSize = AttackRangeBox->GetScaledBoxExtent().Y; FVector NewLocation = GetActorLocat.. 2018. 11. 13.
[UE4]코드 상에서 머티리얼 로드 1234#include "UObject/ConstructorHelpers.h" static ConstructorHelpers::FObjectFinder Material(TEXT("에디터 상에서 머티리얼 레퍼런스를 복사하면 해당 머티리얼의 경로를 가져올 수 있다"));cs 마우스 커서 데칼 로드 예제123456789101112 //Set Cursor Decal CursorToWorld = CreateDefaultSubobject("CursorToWorld"); CursorToWorld->SetupAttachment(RootComponent); { static ConstructorHelpers::FObjectFinder DecalMaterialAsset(TEXT("Material'/Game/Materials.. 2018. 11. 13.
[UE4]캐릭터의 이동 및 회전 보간(마우스 클릭, TopdownView) 탑다운에서의 마우스 클릭을 통한 이동은 WASD 와 마우스 회전 축에 따른 이동방식과는 다르게 마우스 회전값을 캐릭터 회전값에 맵핑하는 방식이 아니다. 따라서 캐릭터가 이동할 때, 이동할 방향을 구해 회전값을 보간하여 자연스럽게 캐릭터를 회전시켜주어야 한다. 아래는 구현된 예시 코드이다. 123456789101112131415void APlayerCharacterController::MoveAndRotation(float DeltaTime){ ACharacter* Character = GetCharacter(); //Smooth Move UCharacterMovementComponent* MovementComponent = Character->GetCharacterMovement(); float Spee.. 2018. 10. 25.