UE5

서버 연동 프로젝트 KU - 3. 맵 이동 로직 구현(2)

게임 개발 2024. 5. 22. 22:31

 

해당 값을 C++에서 제작해주었다.

해당 로직은 추후에 좀 더 제작 후에 인터렉션 다이어그램으로 정리해서 업로드 하겠다.

아직 로비와 메뉴로직은 완성되었지만,

메뉴 시스템의 전반적인 구성은 완성되지 않았다.

 

몇명이 참가할 것인지에 대한것을 BP에서 조절할 수 있도록 제작하였으며,

해당 매치 타입 또한 BP에서 조절 가능하도록 구현하였다.

 

제작하면서 배웠던 것

언리얼에서 서버 이동할 때 맵을 동시에 담아두지 않는 기법이 있다.

내 생각에는 이것은 최적화 기법이라고 생각한다.

예전에 DX로 던그리드를 제작할 때는 내가 맵 이동 시에 제작했던 기법과 흡사했다.

 

제작하며 어려웠던 점

서버에 대한 이해와 델리게이트 완벽히 되지 않아서 그냥 어물쩡 넘어가면서 쓴 내용이 많다.

따로 서버에 대한 기본기와 언리얼 공식 문서를 보며 복기하는 날을 가져야겠다.

 

예를 들면 델리게이트 핸들을 왜 쓰는지 정확하게 말을 못하겠다.

나중에 따로 정리하자.

 


언리얼 엔진에서 델리게이트(Delegate)와 델리게이트 핸들(Delegate Handle)은 이

벤트 시스템을 구현하고 관리하는 중요한 도구들이다.

이를 사용하는 예상 이유는 다음과 같다:

1. 이벤트 기반 프로그래밍 지원

언리얼 엔진에서는

이벤트 기반 프로그래밍을 통해 다양한 시스템과 컴포넌트가 서로 독립적으로 상호작용할 수 있다.

델리게이트는 특정 이벤트가 발생했을 때 호출될 함수를 등록하는 데 사용된다.

2. 코드의 모듈화 및 재사용성 향상

델리게이트를 사용하면 코드를 더 모듈화할 수 있으며,

재사용성이 높아진다.

이벤트를 처리하는 코드가 특정 객체나 클래스에 종속되지 않기 때문에

다양한 상황에서 같은 코드를 사용할 수 있다.

3. 유지보수 및 가독성 향상

델리게이트와 델리게이트 핸들은 이벤트 구독 및 해제를 쉽게 할 수 있게 해준다.

델리게이트 핸들을 사용하면 특정 델리게이트에 등록된 함수를 나중에 쉽게 제거할 수 있어,

코드 유지보수와 가독성을 높이는 데 도움을 준다.

 

근데 이는 추측일 뿐,

정확한 공식문서는 아니니깐, 공식문서 참고해서 다시 정리하자.

 

내가 이해한 델리게이트와 델리게이트 핸들

 

델리게이트는

다른 클래스와 이어주는 함수 포인터 매개체 역할 전역으로 쓸 수 있는 함수 포인터

 

델리게이트 핸들은

이러한 델리게이트들을 자유 자제로 사용할 수 있지만,

직접 접근하지 않고 사용하게끔 돕는 것

 

델리게에트 핸들 제작 예시 코드