UE4

[UE4] 이펙트 구현하기

Honey Badger 2022. 11. 11. 03:59

구현방법

1. MyBox Actor에 ParticleComponent 추가.

2. 원하는 Effect Asset을 ParticleComponent의 템플릿으로 지정한다.

3. ParticleComponent에서 제공하는 OnSystemFinished 델리게이트에 멤버 함수를 하나 연결해 이펙트 재생이 종료되면 아이템 상자가 제거되도록 하기.

4. Effect가 재생될 때는 액터의 Collision 기능 제거, 박스 스태틱메시도 액터가 제거될 때까지 안보이게 설정.

 

Effect = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("EFFECT"));
Effect->SetupAttachment(RootComponent);

//파티클 에셋 불러온 후 적용
static ConstructorHelpers::FObjectFinder<UParticleSystem> P_CHESTOPEN(TEXT("ParticleSystem'/Game/InfinityBladeGrassLands/Effects/FX_Treasure/Chest/P_TreasureChest_Open_Mesh.P_TreasureChest_Open_Mesh'"));
if (P_CHESTOPEN.Succeeded())
{
	Effect->SetTemplate(P_CHESTOPEN.Object);
	Effect->bAutoActivate = false;
}
Effect->Activate(true); //파티클 재생
Box->SetHiddenInGame(true, true);//박스 숨기기
SetActorEnableCollision(false); //더이상 아이템 획득 못하도록 콜리전 봉인
Effect->OnSystemFinished.AddDynamic(this, &AABItemBox::OnEffectFinished); //델리게이트로 함수바인딩.
void AMyItemBox::OnEffectFinished(UParticleSystemComponent* PSystem)
{
	Destroy();
}

 

'UE4' 카테고리의 다른 글

[UE4] 캐릭터 스텟 컴포넌트 만들기  (0) 2022.11.12
[UE4] CSV 데이터 불러오기  (0) 2022.11.11
[UE4] 아이템 상자 제작  (0) 2022.11.11
[UE4] 무기 액터 제작  (0) 2022.11.09
[UE4] 캐릭터 에셋에 붙어있는 무기제거  (0) 2022.11.08