1. 이펙트 시스템

언리얼에서는 이펙트를 특정 위치, 혹은 어떤 컴포넌트에 부착시킬 수 있다.

이동시에도 총구에서 이펙트가 유지되도록 하기 위해서 SpawnEmitterAttached 함수를 사용한다.

 

(1) Gun.h, Gun.cpp

	UPROPERTY(EditAnywhere)
	UParticleSystem* MuzzleFlash;

SpawnEmitterAttached 함수를 이용하여 MuzzleFlash라는 속성을 총에 추가할 것이다.

추후에 이펙트를 변경하기 용이하도록 EditAnywhere로 지정한다.

 

#include "Kismet/GameplayStatics.h"
void AGun::PullTrigger()
{
	UGameplayStatics::SpawnEmitterAttached(MuzzleFlash, Mesh, TEXT("MuzzleFlashSocket"));
}

UGameplayStatics의 함수인 SpawnEmitterAttached 함수를 사용한다.

첫번째 인수는 UParticleSystem의 포인터를 받는다.

두번째 인수는 부착할 컴포넌트를 받는다.

세번째 인수는 부착할 소켓을 선택한다.

여기의 MuzzleFlashSocket은 Rifle 스켈레탈 메시에 이미 존재하던 소켓이다.