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 스켈레탈 메시에 이미 존재하던 소켓이다.
'UE 5 스터디 > C++' 카테고리의 다른 글
6. 액터에 데미지 입히기(FDamageEvent, TakeDamage) (0) | 2024.03.07 |
---|---|
5. 라인 트레이스(LineTraceSingleByChannel) (0) | 2024.03.06 |
3. 액터를 다른 액터에 붙이기(AttachToComponent) (0) | 2024.03.06 |
2. 런타임에 액터 스포닝(Spawning) 하기(SpawnActor) (0) | 2024.03.06 |
1. C++ 액터 클래스에 컴포넌트 추가하기(CreateDefaultSubobject, SetupAttachment) (2) | 2024.03.06 |