177 lines
5.4 KiB
Markdown
177 lines
5.4 KiB
Markdown
# 네트워크 연결 기능 사용 가이드
|
|
|
|
에디터와 빌드 모두에서 IP 주소를 통해 서버에 접속할 수 있는 기능이 추가되었습니다.
|
|
|
|
## 새로 추가된 기능
|
|
|
|
### 1. 네트워크 연결 윈도우 (NetworkConnectionWindow)
|
|
GUI 기반의 전용 에디터 윈도우
|
|
|
|
**사용 방법:**
|
|
- 메뉴: `Window > Network > Connection Manager` 또는 단축키 `Ctrl+Shift+N` / `Cmd+Shift+N`
|
|
- 기능:
|
|
- 연결 모드 선택 (호스트/클라이언트/서버)
|
|
- 서버 IP와 포트 입력
|
|
- 연결 시작/중지
|
|
- 연결 상태 확인
|
|
- 연결 설정 저장/로드
|
|
|
|
### 2. 네트워크 연결 헬퍼 (NetworkConnectionHelper)
|
|
커스텀 인스펙터가 포함된 컴포넌트
|
|
|
|
**사용 방법:**
|
|
1. 씬의 게임오브젝트에 `NetworkConnectionHelper` 컴포넌트 추가
|
|
2. 인스펙터에서 설정:
|
|
- 서버 IP (클라이언트 모드용)
|
|
- 포트 번호
|
|
- 자동 시작 옵션
|
|
3. 인스펙터 버튼으로 제어:
|
|
- Start Host
|
|
- Start Server
|
|
- Start Client
|
|
- Disconnect
|
|
4. 실시간 연결 상태와 네트워크 정보 확인
|
|
|
|
### 3. 네트워크 조인 UI (NetworkJoinUI)
|
|
인게임 UI로 IP를 통한 접속 지원 (에디터/빌드 모두 작동)
|
|
|
|
**사용 방법:**
|
|
1. 메뉴에서 `GameObject > Network > Create Network Join UI` 선택
|
|
2. `J` 키로 UI 패널 토글
|
|
3. UI 버튼으로 접속:
|
|
- Join: 입력된 IP로 접속
|
|
- Host: 호스트로 시작
|
|
- Disconnect: 연결 종료
|
|
|
|
### 4. AutoHost 업데이트
|
|
에디터 모드에서 자동 호스트 시작 (설정 가능)
|
|
|
|
**사용 방법:**
|
|
- `AutoHost` 컴포넌트 확인
|
|
- 설정:
|
|
- `Enable Auto Host`: 자동 시작 활성화/비활성화
|
|
- `Only In Editor`: 에디터에서만 자동 시작 (빌드에서는 비활성화)
|
|
|
|
## 빠른 설정
|
|
|
|
### 방법 A: 퀵 설정 메뉴 사용 (추천)
|
|
```
|
|
Tools > Network > Quick Setup for IP Connection
|
|
```
|
|
이 옵션은:
|
|
- NetworkConnectionHelper 생성
|
|
- AutoHost 비활성화 (선택 사항)
|
|
|
|
### 방법 B: 수동 설정
|
|
1. `Tools > Network > Create Connection Helper`로 헬퍼 생성
|
|
2. `Tools > Network > Disable AutoHost`로 자동 시작 비활성화
|
|
|
|
## 멀티플레이어 테스트 방법
|
|
|
|
### 1. 로컬 테스트 (같은 컴퓨터)
|
|
1. 윈도우: `Window > Network > Connection Manager` 열기
|
|
2. **인스턴스 1:**
|
|
- 모드: Host 선택
|
|
- 포트: 7777 (기본값)
|
|
- "Start" 클릭
|
|
3. **인스턴스 2:**
|
|
- 모드: Client 선택
|
|
- IP: 127.0.0.1 또는 localhost
|
|
- 포트: 7777
|
|
- "Connect" 클릭
|
|
|
|
### 2. 네트워크 테스트 (같은 네트워크)
|
|
1. 호스트 컴퓨터에서 로컬 IP 확인 (cmd에서 `ipconfig` 실행)
|
|
2. **호스트:**
|
|
- Connection Manager에서 Host 모드로 시작
|
|
3. **클라이언트:**
|
|
- Connection Manager에서 Client 모드 선택
|
|
- IP: 호스트 컴퓨터의 로컬 IP (예: 192.168.1.100)
|
|
- 포트: 7777
|
|
- "Connect" 클릭
|
|
|
|
### 3. 인스펙터로 테스트
|
|
1. `NetworkConnectionHelper` 컴포넌트 추가
|
|
2. 인스펙터 버튼으로 호스트/클라이언트 시작
|
|
3. 상태와 연결 정보 확인
|
|
|
|
## 연결 모드 설명
|
|
|
|
### Host
|
|
- 서버와 클라이언트 모두 역할 수행
|
|
- 멀티플레이어 게임 호스팅
|
|
- 플레이어들이 당신의 IP로 접속
|
|
|
|
### Client
|
|
- 기존 서버에 접속
|
|
- 서버 IP 주소 필요
|
|
|
|
### Server
|
|
- 전용 서버 모드 (플레이어 없음)
|
|
- 전용 서버용
|
|
|
|
## 네트워크 정보 표시
|
|
|
|
모든 연결 방법에서 다음을 표시:
|
|
- 현재 모드 (호스트/클라이언트/서버)
|
|
- 연결 상태
|
|
- IP 주소와 포트
|
|
- 접속된 클라이언트 수
|
|
- 로컬 클라이언트 ID
|
|
|
|
## 팁
|
|
|
|
1. **로컬 테스트:**
|
|
- `127.0.0.1` 또는 `localhost` 사용
|
|
- 같은 네트워크에서 테스트할 때 로컬 IP 사용
|
|
|
|
2. **기본 포트:**
|
|
- 기본 포트는 `7777`
|
|
- 연결 컴포넌트 설정에서 변경 가능
|
|
|
|
3. **방화벽:**
|
|
- 네트워크 연결을 위해 포트 개방 필요
|
|
- Windows 방화벽이 연결을 차단할 수 있음
|
|
|
|
4. **여러 에디터 인스턴스:**
|
|
- Unity의 멀티플레이 툴 사용
|
|
- 또는 여러 빌드 실행
|
|
|
|
## 기존 시스템과의 호환성
|
|
|
|
새 기능들은 기존 시스템과 통합:
|
|
- 플레이어 스폰은 `NetworkConnectionHandler`가 자동 처리
|
|
- 연결 승인은 `NetworkConnectionHandler`가 담당
|
|
- 기존 멀티플레이어 시스템과 호환
|
|
- 기존 코드 수정 불필요
|
|
|
|
## 파일 목록
|
|
|
|
### 새로 생성된 파일
|
|
- `Assets/Scripts/NetworkConnectionHelper.cs` - 네트워크 헬퍼 컴포넌트
|
|
- `Assets/Scripts/NetworkJoinUI.cs` - 인게임 연결 UI
|
|
- `Assets/Scripts/QuickNetworkSetup.cs` - 빠른 설정 스크립트
|
|
- `Assets/Scripts/Editor/NetworkConnectionWindow.cs` - 연결 관리자 윈도우
|
|
- `Assets/Scripts/Editor/NetworkConnectionHelperEditor.cs` - 헬퍼 커스텀 인스펙터
|
|
- `Assets/Scripts/Editor/NetworkUIBuilder.cs` - UI 생성 도구
|
|
- `Assets/Scripts/Editor/QuickNetworkSetupEditor.cs` - 빠른 설정 에디터 도구
|
|
|
|
### 수정된 파일
|
|
- `Assets/Scripts/AutoHost.cs` - 설정 가능한 옵션 추가
|
|
|
|
## 문제 해결
|
|
|
|
### 연결 실패 시
|
|
1. IP 주소와 포트 번호 확인
|
|
2. 방화벽 설정 확인
|
|
3. 같은 네트워크에 있는지 확인
|
|
4. 호스트가 먼저 실행 중인지 확인
|
|
|
|
### 자동 시작 비활성화 방법
|
|
1. `Tools > Network > Disable AutoHost` 선택
|
|
2. 또는 `AutoHost` 컴포넌트의 `Enable Auto Host` 체크 해제
|
|
|
|
### UI가 보이지 않을 때
|
|
1. `J` 키 눌러 토글
|
|
2. 또는 인스펙터에서 `NetworkJoinUI` 활성화 확인
|