-
Muzzle FlashGame Programming/언리얼 2023. 9. 30. 16:44
왼쪽 손에 barrel_socket을 추가해줬다.
x,y,z 방향이 총 방향과 일치하도록 적절히 회전시켰다.
/* Flahs spawnd at BarrelSocket*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* MuzzleFlash; /* Flahs spawnd at BarrelSocket*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* MuzzleFlash2;
파티클 시스템을 헤더파일에 추가했다.
static ConstructorHelpers::FObjectFinder<UParticleSystem> MuzzleFlashAsset( TEXT("/Game/Voyager/Demo/Particles/P_AssaultRifleMuzzle.P_AssaultRifleMuzzle") ); MuzzleFlash = MuzzleFlashAsset.Object; static ConstructorHelpers::FObjectFinder<UParticleSystem> MuzzleFlashAsset2( TEXT("/Game/Voyager/Demo/Particles/P_AssaultRifleMuzzle.P_AssaultRifleMuzzle2") ); MuzzleFlash2 = MuzzleFlashAsset2.Object;
MuzzleFlash를 에셋에서 읽어 온 뒤
const USkeletalMeshSocket* BarrelSocket = GetMesh()->GetSocketByName("barrel_socket"); if (BarrelSocket) { const FTransform SocketTransform = BarrelSocket->GetSocketTransform(GetMesh()); if (MuzzleFlash) { UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), MuzzleFlash, SocketTransform); } if (MuzzleFlash2) { UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), MuzzleFlash2, SocketTransform); } }
소켓을 가져와, SpawnEmitterAtLocation 함수를 사용했다.
Transform을 가져 온 뒤 위치와 회전 이런걸 계산했겠지..?
'Game Programming > 언리얼' 카테고리의 다른 글
라인 트레이스 추가 (0) 2023.10.03 Animation Montage (0) 2023.10.03 사운드 추가 (0) 2023.09.30 Fire Weapone (0) 2023.09.29 Rotator Character to Movement (0) 2023.09.29