UE5

UE Setting Niagara User Parameters in C++

우대비 2023. 4. 17. 11:34
반응형
#include "NiagaraComponent.h"
#include "NiagaraFunctionLibrary.h"
#include "NiagaraDataInterfaceArrayFunctionLibrary.h"

 

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WeaponVars)
UNiagaraSystem* TracerNS;

NiagaraSystem 선언 후 블루 프린트에서 NiagaraSystem 선택

 

UNiagaraComponent* tempTracer =  
    UNiagaraFunctionLibrary::SpawnSystemAttached(
        TracerNS, weaponMeshComp, TEXT("Muzzle"), 
        FVector(0, 0, 0), FRotator(0, 0, 0), 
        EAttachLocation::KeepWorldPosition, true);

NiagaraComponent 생성

 

NiagaraSystem의 User parameter 세팅

tempTracer->SetNiagaraVariableBool(FString("User.Trigger"), true);

bool Parameter

 

TArray<FVector> TraceImpactPosArr;
TraceImpactPosArr.Add(pHitResult.bBlockingHit ? pHitResult.ImpactPoint : pHitResult.TraceEnd);

// Array Vector는 Niagara Data Interface 함수를 사용함
UNiagaraDataInterfaceArrayFunctionLibrary::
	SetNiagaraArrayVector(tempTracer, TEXT("User.ImpactPositions"), TraceImpactPosArr);

Array Parameter

 

tempTracer->SetNiagaraVariablePosition(
	FString("User.MuzzlePostion"), weaponMeshComp->GetSocketLocation("Muzzle"));

Position Parameter

반응형
LIST