개발자용 멀티플레이 기능 추가

This commit is contained in:
2026-02-02 20:26:28 +09:00
parent b4c22edcbd
commit 9dea9daaa9
23 changed files with 1754 additions and 13 deletions

View File

@@ -0,0 +1,192 @@
# Network Connection Feature Summary
## Overview
Added comprehensive IP-based network connection features for both editor testing and standalone builds.
## Files Created
### Runtime Components
1. **NetworkConnectionHelper.cs** (3.6KB)
- MonoBehaviour component for network connection management
- Start Host/Server/Client methods
- Auto-start configuration
- Status monitoring
2. **NetworkJoinUI.cs** (7.7KB)
- In-game UI component for IP connection
- Works in both editor and standalone builds
- Toggle panel with J key
- Supports Join/Host/Disconnect
3. **QuickNetworkSetup.cs** (1.6KB)
- Quick scene setup script
- Creates NetworkConnectionHelper
- Optionally disables AutoHost
### Editor Tools
4. **NetworkConnectionWindow.cs** (9.2KB)
- Dedicated Editor window for network management
- GUI-based IP/port configuration
- Connection mode selection
- Status display and settings persistence
5. **NetworkConnectionHelperEditor.cs** (5.8KB)
- Custom Inspector for NetworkConnectionHelper
- Quick action buttons
- Real-time status display
- Network information panel
6. **NetworkUIBuilder.cs** (7.4KB)
- Automated UI creation for NetworkJoinUI
- Creates complete UI structure
- Menu integration
7. **QuickNetworkSetupEditor.cs** (2.0KB)
- Menu items for quick setup
- Tools menu integration
- Enable/Disable AutoHost functionality
### Documentation
8. **NETWORK_CONNECTION_README.md**
- Comprehensive English documentation
- Setup instructions
- Usage examples
9. **NETWORK_CONNECTION_GUIDE_KO.md**
- Korean translation of documentation
- Step-by-step guide
- Troubleshooting section
## Files Modified
1. **AutoHost.cs**
- Made auto-start configurable
- Added editor-only option
- Added enable/disable toggle
## Features Added
### 1. Editor Window (NetworkConnectionWindow)
- Open via: Window > Network > Connection Manager (Ctrl+Shift+N)
- Connection modes: Host/Client/Server
- IP and port configuration
- Start/Stop connections
- Real-time status
- Settings persistence
### 2. NetworkConnectionHelper Component
- Add to any GameObject in scene
- Custom Inspector with quick buttons
- Auto-start configuration
- Status display
- Network information panel
### 3. In-Game UI (NetworkJoinUI)
- Works in editor and standalone builds
- IP/port input fields
- Join/Host/Disconnect buttons
- Status display
- Toggle with J key
- Auto-generated via menu
### 4. Quick Setup Tools
- Tools > Network > Quick Setup for IP Connection
- Automatically disables AutoHost
- Creates NetworkConnectionHelper
## Integration
All new features integrate seamlessly with existing systems:
- **NetworkManager**: Works with Unity Netcode for GameObjects
- **NetworkConnectionHandler**: Handles player spawning and approval
- **AutoHost**: Configurable to avoid conflicts
- **Transport**: Uses Unity Transport (UTP)
## Testing Workflow
### Method 1: Editor Window
1. Window > Network > Connection Manager
2. Select Host on instance 1
3. Select Client on instance 2 with Host's IP
4. Start/Connect
### Method 2: NetworkConnectionHelper
1. Add component to scene
2. Use Inspector buttons
3. View status in real-time
### Method 3: Quick Setup
1. Tools > Network > Quick Setup for IP Connection
2. Use preferred connection method
### Method 4: In-Game UI
1. GameObject > Network > Create Network Join UI
2. Press J to open
3. Enter IP and connect
## Configuration
### Default Settings
- Default IP: 127.0.0.1
- Default Port: 7777
- Toggle Key: J (for UI)
### Options
- Auto-start: Enable/disable in AutoHost
- Editor-only: Configure per component
- Persistence: Save/load in Editor Window
## Benefits
1. **Easy Testing**: No standalone build required
2. **Team Collaboration**: Join teammates by IP
3. **Production Ready**: Works in standalone builds
4. **Flexible**: Multiple connection methods
5. **Intuitive**: GUI-based interfaces
6. **Integrated**: Works with existing systems
## Future Enhancements
Potential improvements:
- Server list browsing
- Favorites/Saved connections
- LAN discovery
- Connection history
- Advanced transport settings
- Password protection
## Usage Example
### Editor Testing
```csharp
// Instance 1 (Host)
Tools > Network > Quick Setup for IP Connection
Window > Network > Connection Manager > Start Host
// Instance 2 (Client)
Tools > Network > Quick Setup for IP Connection
Window > Network > Connection Manager > Connect to 127.0.0.1:7777
```
### Standalone Build
```csharp
// Build with NetworkJoinUI component
Press J to open connection panel
Enter IP: 192.168.1.X
Click Join
```
## Compatibility
- Unity Netcode for GameObjects 2.8.1
- Unity Transport (UTP)
- Unity 2022.x+
- Windows/Mac/Linux
## Notes
- All components are optional
- AutoHost can be disabled
- Existing AutoHost behavior preserved (when enabled)
- No breaking changes to existing code
- Works with custom scenes and setups