본문 바로가기

게임프로그래밍/실습1

[언리얼 실습] 44. 나이아가라 컴포넌트 모듈 추가하기


목차

  1. 모듈 추가하기
  2. 나이아가라 컴포넌트 추가하기

1. 나이아가라 컴포넌트 모듈 추가하기

 

저번에 파티클을 추가할때는 Cascade 파티클을 추가하였다. 이번에는 나이아가라로 만들어진 파티클을 추가해보려고 한다. 

 

아이템이 드랍되면 그곳에 효과를 주고 싶다. 모든 아이템에 공통되는 클래스에 이걸 추가하면 좋을 것이다.

 

현재 무기 클래스와 보물 클래스가 아이템 클래스에서 상속 받고 있다. 그렇기 때문에 아이템 클래스에서 나이아가라 시스템 컴포넌트를 추가하도록 하자.

 

 

언리얼문서에 따르면 C++에서 나이아가라 컴포넌트를 추가하기 위해서 모듈이 필요한 것을 볼 수 있다.

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "GeometryCollectionEngine", "Niagara" });

 

빌드.cs 파일에서 Niagara 모듈을 추가하자.

 

 

모듈을 추가했지만 여전히 오류가 나는 것을 볼 수 있다. 이를 고쳐보자.

 

오류가 나는 구문을 지우고 비주얼 스튜디오를 끈다.

 

 

프로젝트가 저장되어 있는 폴더로 들어가 위에 선택된 폴더들을 지운다.

 

 

언리얼 프로젝트 파일을 우클릭 하고 제네레이트 비주얼 스튜디오 프로젝트 파일을 클릭한다. 그 다음 완료되면 프로젝트 파일을 더블 클릭하자.

 

 

리빌드 하고 싶냐고 묻는 창이 뜨면 Yes를 눌러준다. 리빌드가 끝나면 다시 비주얼 스튜디오로 돌아가자.

 

이제 오류가 뜨지 않는 것을 볼 수 있다.


2. 나이아가라 컴포넌트 추가하기

 

이제 본격적으로 나아이가라 컴포넌트를 추가하자. 아이템 클래스의 헤더파일로 들어간다. cpp 파일에서 헤더파일로 바로 가는 단축키는 Ctrl + k + o 이다. (반대도 마찬가지)

 

protected:

UPROPERTY(EditAnywhere)
class UNiagaraComponent* EmbersEffect;

 

이제 생성자에서 이걸 할당하자.

 

// 생성자

EmbersEffect = CreateDefaultSubobject<UNiagaraComponent>(TEXT("Embers"));
EmbersEffect->SetupAttachment(GetRootComponent());

 

이제 파티클을 추가했다. 아이템을 장착하면 이 파티클을 제거할 수 있어야 한다.

 

아이템 장착은 현재 무기만 가능하니 무기 클래스로 가보자.

 

무기.cpp 에서도 나이아가라 컴포넌트 헤더파일을 가져오자.

#include "NiagaraComponent.h"

 

함수를 살펴보면 무기를 장착하는 Equip() 함수가 존재한다.

 

여기서 나이아가라 컴포넌트를 비활성화 하자.

 

void AWeapons::Equip(USceneComponent* InParent, FName InSocketName)
{
	// 생략
	if (EmbersEffect)
	{
		EmbersEffect->Deactivate();
	}
}

 

Deactivate() 함수를 호출해주기만 하면 된다.

 

이제 컴파일 하고 에디터로 돌아가 나아이가라 파티클을 할당해주고 확인해보자.