UObject 파생 클래스를 제거하는 방법
·
Unreal Engine 4/Unreal Engine 4
UObject 파생 클래스를 파괴하려면 단일 함수인 ConditionalBeginDestroy()를 호출하면 된다. C++의 delete를 사용하면 안된다. 오브젝트 인스턴스에 대하여 objectInstance->ConditionalBeginDestroy()를 호출하면된다. 이후 objectInstace에 대한 참조를 모두 NULL로 처리하고 ConditionalBeginDestroy()를 호출 후 -> objectInstance를 사용하지 않는다. if(newObject) { newObject->ConditionBeginDestroy(); newObject=nullptr; } 이 과정을 이용하면 클라이언트 코드는 오브젝트가 파괴된 것으로 간주하고 사용하지 않는다. 실제 메모리에 대해서는 가비지 컬렉션 ..
2022/03/14 강남스퀘어 캐릭터 백업본
·
Unreal Engine 4/Unreal Engine 4 개발일지
헤더 // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include #include "CC_KangnamMain.generated.h" UENUM(BlueprintType) enum EPlayer_Rotation { Stop_walk = -1, Left_walk = 270, Right_walk = 90, Forward_walk = 0, LF_walk=315, RF_walk=45, Backward_walk = 180, LB_walk=225, RB_walk=135 }; USTRUCT..
Actor 클래스와 UObject에서 파생된 클래스의 인스턴스화
·
Unreal Engine 4/Unreal Engine 4
AActor 클래스의 파생에 대한 인스턴스화 UWorld::SpawnActor를 사용 UObject에서 파생된 클래스를 인스턴스화 1. ConstructObject - ObjectType* Object = ConstructObject(UClassReference); 2. NewObject - ObjectType* Object = NewObject((UObject*)GetTransientPackage(),ObjectType::StaticClass()); -> NewObject는 호출마다 GetTransientPackage()를 전달해야 하는 첫 번째 매개변수가 있다. -> C++키워드 new 사용 절대 금지(메모리 관리가 잘 안됨)
UE4 예상 되는 클래스 타입을 지정하는 다양한 방법
·
Unreal Engine 4/Unreal Engine 4
1. TSubclassOf - TSubclassOf 멤버를 사용하면, TSubclassOf멤버를 갖는 블루프린트를 편집할 때, UE4 편집기 내의 드롭다운 메뉴를 사용해 UClass 이름을 지정할 수 있다. 2. FStringClassReference - MetaClass 태그는 MetaClass에서 파생될 것으로 예상되는 기본 C++ 클래스를 가리키며, 이를 통해 드롭다운 메뉴의 내용을 해당 C++ 클래스에서 파생된 블루프린트로만 제한. -> 프로젝트의 모든 블루프린트를 보여주려면 MetaClass를 그냥 두면 된다.
UCLASS 동작에 변화를 주는 키워드
·
Unreal Engine 4/Unreal Engine 4
1. Blueprintable : Class Viewer에서 블루프린트를 생성하고자 할 때 사용한다. -> Create Blueprint Class옵션 사용 가능 (Blueprintable을 지정하지 않으면 사용 불가능) 2. BlueprintType : 다른 블루프린트에서 변수처럼 사용가능 3. NotBlueprintType : 블루프린트 타입을 블루프린트 다이어그램에서 변수로 사용 불가, Create Blueprint Class사용불가 사용자 편집이 가능한 UPROPERTY EditAnywhere : UPROPERTY를 코드 또는 편집기를 통해 변경이 가능하다는 뜻 BlueprintReadWrite : 블루프린트가 변수를 언제든 읽고 쓸 수 있음을 의미
여러 변수를 이용한 문자열 표현
·
Unreal Engine 4/Unreal Engine 4
FString::Printf 또는 FString::Format 함수 사용 printf 함수는 전통적인 방식으로 형식 지정자를 사용하는 방식이다. 문자열 %s 정수 %d를 배치하여 사용한다. int32도 %d를 사용 FString::Format()을 사용한 문자열 출력도 가능하다 정확한 형식 지정자를 사용하는 대신 TArray에 정수와 문자열을 담아서 사용할 수 있다. FString::Format은 FstringFormatArg를 사용해 변수 타입을 추정한다. 사용 방법 TArray args; args.Add(FStringFormatArg(name)); args.Add(FStringFormatArg(mana)); FString string = FString::Format(TEXT("Name={0} Mana..