class reference 기반 spawn 플로우

Detail Pannel에서 [class reference]칸 만들기

  1. ADisPatcherChild를 상속하는 클래스 중 선택
    1. UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dispatcher")
         TSubclassOf<ADisPatcherChild> ChildClass;
      
  2. 선택된 class의 객체 만들기
    1. [SpawnActorDeferred<AActor> 사용]
      1. TempChild = GetWorld()->SpawnActorDeferred<AActor>(ChildClass, FTransform(TargetLoc), nullptr, nullptr, ESpawnActorCollisionHandlingMethod::AlwaysSpawn);
        TempChild->FinishSpawning(FTransform(TargetLoc));
      2. Cast는 따로 해줘야 함 ( return값은 AActor type )

 

좌표 변환

예시 : 

TargetLoc = FScaleRotationTranslationMatrix(FVector(0, 0, 0), FRotator(0, 0, 0), FVector(0, 0, 0)).TransformPosition(TargetLoc);
  • (combine)(dependent)(select)FScaleMatrix.(FVector).TransformPosition(location)(FVector)Rotation(FRotator)Vector(direction)Translation(FVector)

 

function Override

  1. 필요한 argument들을 가진 method를 만든다. ( header & source ) ( copilot🧡 )
  2. [Component or Actor] → [Target function].AddDynamic( target instance, ref 위에서만든 method )
    1. BP에선 override function인데, 가상함수가 아님.. arguments입력시의 휴먼에러 대한 무결성을 보장해주지는 않는듯?
    2. 원하는 method를 특정 event에 matching시켜주는 형태 ( parameter는 수기입.. )
      1. 필요한 argument들을 가진 method를 만든다. ( header & source ) ( copilot🧡 )
      2.  
      3. [Component or Actor] → [Target function].AddDynamic( target instance, ref 위에서만든 method )
        1. BP에선 override function인데, 가상함수가 아님.. arguments입력시의 휴먼에러 대한 무결성을 보장해주지는 않는듯?
        2. 원하는 method를 특정 event에 matching시켜주는 형태 ( parameter는 수기입.. )

 

코드에서 경로로 에셋 참조하기

SkeletalMesh3에게 "주소"가 참조하는 class를 <USkeletalMesh>의 ptr 타입을 포함한 클래스 반환 ( ptr은 .Object에 저장 )
이렇게 반환받은 SkeletalMesh3에 .Object var에 저장 ( USkeletalMEsh ptr 타입으로 )

'Unreal > UE Architecture' 카테고리의 다른 글

Unreal Interface  (0) 2024.06.16
Gameplay Ability System  (0) 2024.06.13
문자열 처리  (0) 2024.05.16
UE Macro & Reflection System  (0) 2024.05.16
Smart Pointer & Container & Serialize  (0) 2024.05.16

+ Recent posts