- 개요
https://github.com/RevenantX/LiteNetLib
GitHub - RevenantX/LiteNetLib: Lite reliable UDP library for Mono and .NET
Lite reliable UDP library for Mono and .NET. Contribute to RevenantX/LiteNetLib development by creating an account on GitHub.
github.com
LiteNetLib 라이브러리는 유니티나 .Net에서 신뢰할 수 있는 UDP 프로토콜을 제공해주는 라이브러리이다
해당 라이브러리를 사용하여 데디케이티드 서버 방식으로 동작하는 간단한 모바일 게임을 제작한다


사용방법은 간단한데, 다운받은 압축파일의 LiteNetLib 폴더를 유니티 프로젝트의 Plugins 폴더에 넣어주면 된다
위와 같이 수행한 이후에 LiteNetLib의 기능을 사용할 수 있다
- 클래스의 구성
1) Util 클래스
Util 클래스는 유용한 기능을 모아놓은 유틸리티 클래스로 사용한다
구성은 다음과 같다

GetOrAddComponent 제네릭 함수는 컴포넌트로 사용할 수 있는 제네릭 인자를 받아
해당 제네릭 인자를 함수 인자로 받은 GameObject로부터 반환하거나 추가하여 반환한다

FindChild 제네릭 함수는 Object로 사용할 수 있는 제네릭 인자를 받아
함수 인자로 받은 GameObject의 자식에서 컴포넌트로 사용된 해당 제네릭 인자를 찾아 반환한다
이때 불리언 인자가 false인 경우, 직계 자식만 탐색하여 반환하고
true인 경우, 모든 하위 자식들을 탐색하여 반환한다

FindChild 함수는 내부에서 FindChild 제네릭 함수를 호출하고 Transform을 넘겨 하위 오브젝트를 반환한다
2) UI_Base 클래스
UI_Base 클래스는 모든 UI들의 조상 클래스로 사용하며 공통적으로 필요한 기능을 소유한다
구성은 다음과 같다

_objects 멤버변수는 딕셔너리로 Type을 Key로, Object들의 리스트를 Value로 갖는다
따라서 UI를 구성하는 하위 UI들과 하위 UI들의 오브젝트를 연결하는 용도로 사용한다

Bind 제네릭 함수는 Object로 사용할 수 있는 제네릭 인자를 받아 동작한다
함수 인자로 받은 열거형의 멤버들의 이름들을 문자열로 가져온다
가져온 문자열을 순회하면서 FindChild 함수를 호출하여 탐색하고 결과를 objects 배열에 담는다
objects 배열을 제네릭 타입과 함께 _objects 딕셔너리에 매핑해 저장한다

Get 제네릭 함수는 Object로 사용할 수 있는 제네릭 인자를 받아 동작한다
_objects 딕셔너리로부터 제네릭 인자와 연결된 Value를 가져오고
가져온 Value로부터 함수 인자로 받은 인덱스에 해당하는 값을 가져온다

GetObject 함수는 위의 Get 제네릭 함수를 GameObject로 사용할 수 있도록 설정한 함수이다
3) UI_Login 클래스
UI_Login 클래스는 로그인 UI에서 사용하는 클래스이다

열거형 GameObjects_Btn을 추가한다
2개의 멤버변수는 실제 UI를 구성하는 버튼을 의미한다

Start 함수에서는 GameObjects_Btn의 멤버들을 GameObject로 바인드하고,
바인드된 GameObject로부터 Button 컴포넌트를 가져와 onClick 이벤트에 콜백함수를 연결한다

연결하는 콜백함수들은 위와 같이 간단한 로그를 찍도록 구성한다
- 최종 실행 결과
'유니티 엔진 - 게임 프로젝트 > 데디케이트 기반 모바일 게임' 카테고리의 다른 글
| 서버 - 최종) 서버의 패킷 처리 구조 설계 (0) | 2025.11.18 |
|---|---|
| 서버 - 1) 서버 구조 설계 (0) | 2025.11.18 |
| 로그인 처리 - 최종) 로그인을 통한 클라이언트 -> 서버로의 패킷 전송 (0) | 2025.11.17 |
| 로그인 처리 - 1) 로그인 UI 구성 (0) | 2025.11.11 |
| 프로젝트 세팅 - 2) LiteNetLib를 활용한 클라이언트 + 서버 구현 (0) | 2025.11.04 |