UE5/UE5 MultiPlayerGame

MultiPlayerGame) 7. 플러그인 생성

PJNull 2022. 6. 7.
728x90
반응형

언리얼 엔진 플러그인

 

 

언리얼 엔진의 플러그인은 특정 목적을 위해 설계된 코드 및 데이터모음이다. 각 프로젝트마다 개발자가 쉽게 사용 여부를 설정할 수 있으며 런타임 게임플레이나 에디터에 기능을 추가할수 있다. 이러한 엔진 플러그인은 엔진내의 플러그인 에디터에서 비/활성화 할 수 있다.

그렇다면 플러그인은 무엇일까?

 

 

플러그인

 

 

플러그인은 하나 이상의 모듈로 구성되어 있다. 즉 플러그인은 모듈의 집합이다.

그렇다면 모듈은 무엇인가?

 

 

모듈

 

 

모듈은 엔진의 빌딩블록(기본적인 회로)이다.엔젠 자체는 모듈을 모아둔 큰 컬렉션으로 구현되며, 각 모듈은 별개의 C++코드로 구성되어 있으며 캡슐화하는 빌드파일을 포함한다.
모듈은 단지 코드이여서 메쉬나 텍스처와 같은 에셋을 포함하지 않는다. 이를 통해 개별 작업을 캡슐화하며, 모듈이 해당 작업에 대해서만 수행할수 있도록 유지한다. 이것을 엔진이 체계적으로 관리한다.

//build.cs
PublicDependencyModuleNames.AddRange(new string[] 
{ 
    "Core", 
    "CoreUObject", 
    "Engine", 
    "InputCore", 
    "HeadMountedDisplay",
    "OnlineSubsystemSteam",
    "OnlineSubsystem" 
});

위의 코드가 게임 프로젝트가 종속되어있는 모듈과 빌드파일이다. 여기에 특정 모듈을 지정하면 개발하는 동안 이것을 통해 접근이 가능해진다.

우리가 진행하고 있는 프로젝트 역시 모듈이다. 플러그를 활성화 할때 마다 프로젝트 .uproject file에 추가된다. 플러그 자체는 다른 플러그 인에 종속될수 있다. 이들은 .uplugin file로 나타난다. 언리얼 엔진은 상호 종속적인 모듈과 플러그인을 지원한다. 하지만 어느정도 제약이 있다.

계층간의 제약

플러그인과 모듈은 계층적 레벨로 구분되며 동일한 레벨 이상의 다른 플러그인과 모듈에만 종속될 수 있다.게임 프로젝트 모듈은 엔진 모듈에 종속될수 있지만, 엔진 모듈은 게임모듈에 종속될수 없다. 대신 엔진모듈은 동일한 수준에 있는 다른 엔진 모듈에 종속될수 있다. 마찬가지로 엔진 플러그인은 다른 엔진 플러기인에 종속 될 수 있으며, 게임 플러그인을 만들때 엔진 플러그인에 종속 시킬 수 있다.

 

그렇다면 실제로 프로젝트에 적용해보자

 

 

 

1. 플러그인 생성

 

세팅->플러그인->새 플러그인->공백

 

 

 

 

2.플러그인 종속성 관계 추가

 

 

.uplugin파일의 최하단에 OnlineSubsystem과 OnlineSubsystemSteam 추가

 

 

//.uplugin


"Plugins": [
		{
			"Name": "OnlineSubsystem",
			"Enabled": true

		},
		{
			"Name": "OnlineSubsystemSteam",
			"Enabled": true

		}
	]

 

 

 

.Build.cs파일에 종속관계 추가

 

 

//.Build.cs



PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core"
            		 }
);
//이 코드에 아래의 코드 추가

PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core",
				"OnlineSubsystem",
				"OnlineSubsystemSteam",
				"UMG",
				"Slate",
				"SlateCore"
			}
);
728x90
반응형

댓글