Files
Northbound/Assets/Scripts/IMMEDIATE_FIX.md

165 lines
4.9 KiB
Markdown

# Connection Issue: Immediate Action Plan
## Your Problem
Teammate sees "CONNECTED" but gets "Failed to connect to server" error.
## Root Cause (Most Likely)
Windows Firewall is blocking Unity/Build even with port forwarding done correctly.
## FIX IN 3 STEPS
### Step 1: Add Debug Components (1 minute)
Add these to your NetworkManager GameObject in BOTH Host and Client scenes:
1. **ConnectionDiagnostics** (automatic check)
2. **NetworkDebugger** (detailed logs)
3. **NetworkConnectionFixer** (auto-fixes issues)
### Step 2: Fix Firewall (2 minutes)
Run PowerShell as Administrator, paste this:
```powershell
# Allow Unity Editor
netsh advfirewall firewall add rule name="Unity Editor" dir=in action=allow program="C:\Program Files\Unity\Hub\Editor\*\Unity.exe" enable=yes profile=any
# Allow your game build (update path!)
netsh advfirewall firewall add rule name="Northbound Game" dir=in action=allow program="D:\Northbound\Build\Northbound.exe" enable=yes profile=any
# Allow port 7777
netsh advfirewall firewall add rule name="Unity Port 7777" dir=in action=allow protocol=TCP localport=7777 enable=yes profile=any
```
### Step 3: Verify Port Forwarding (1 minute)
Go to: https://www.yougetsignal.com/tools/open-ports/
- Enter your PUBLIC IP
- Enter port 7777
- Should say: "Port 7777 is open"
If "Closed", your router port forwarding is wrong.
---
## Quick Diagnostics
### In Unity Editor (Play Mode):
1. Add **ConnectionDiagnostics** to NetworkManager
2. Right-click component → "Run Diagnostics"
3. Check console for errors/warnings
### Common Diagnostics Results:
-**"System Healthy"**: Configuration is good, issue is network/firewall
- ⚠️ **"Player Prefab NOT assigned"**: Assign player prefab in NetworkManager
- ⚠️ **"Connect timeout too low"**: ConnectionDiagnostics fixes this automatically
-**"NetworkManager not found"**: Add NetworkManager to scene
### If Still Not Working:
#### Test 1: Local Connection
Host connects to 127.0.0.1 (same instance)
- ✅ Works = Good setup, issue is network
- ❌ Fails = Project setup issue
#### Test 2: LAN Connection
Host shares 192.168.x.x IP (same WiFi)
- ✅ Works = Good LAN, issue is port forwarding for internet
- ❌ Fails = Firewall blocking local connections
#### Test 3: Internet Connection
Host shares PUBLIC IP with teammate
- ✅ Works = Fixed!
- ❌ Fails = Port forwarding or remote firewall
---
## What Console Should Show
### Host (Working):
```
[ConnectionDiagnostics] System Healthy
[NetworkConnectionFixer] Network fixes applied
[NetworkDebugger] Server Started Successfully
[NetworkDebugger] Listening on: 0.0.0.0:7777
[NetworkDebugger] Client Connected: 1
[ConnectionHandler] 클라이언트 1 승인됨
[ConnectionHandler] 플레이어 1 스폰됨
```
### Client (Working):
```
[ConnectionDiagnostics] System Healthy
[NetworkConnectionFixer] Network fixes applied
[NetworkDebugger] Connection Approval Request
[NetworkDebugger] Approval Response: Approved: true
[NetworkDebugger] Client Connected: 0
```
### Client (Broken - Your Case):
```
[ConnectionDiagnostics] System Healthy
[NetworkConnectionFixer] Network fixes applied
[NetworkDebugger] Connection Approval Request
<color=red>[NetworkDebugger] TRANSPORT FAILURE!</color>
Failed to connect to server
```
---
## Tools Created for You
| File | Purpose | How to Use |
|------|---------|------------|
| **ConnectionDiagnostics.cs** | Auto-checks configuration | Add to scene, right-click "Run Diagnostics" |
| **NetworkDebugger.cs** | Shows detailed connection logs | Add to scene, watch Console during connection |
| **NetworkConnectionFixer.cs** | Fixes common timeout issues | Add to scene, right-click "Fix All Known Issues" |
| **PublicIPHelper.cs** | Gets your public IP automatically | Add to scene, see Inspector |
---
## Most Likely Issue: Firewall
Even with correct port forwarding, Windows Firewall blocks:
1. ✅ Port 7777 may be open (router allows it)
2. ❌ But Windows Firewall blocks the application using that port
**Solution:** Allow Unity and your game through firewall (Step 2)
---
## Alternative: Use Hamachi/VPN
If port forwarding is too complex:
1. Both install Hamachi: https://www.vpn.net/
2. Join same Hamachi network
3. Use Hamachi IP (25.x.x.x) instead of public IP
4. No port forwarding needed!
---
## Share This for Help
If issue persists, share screenshots/logs:
1. ✅ NetworkManager Inspector (screenshot)
2. ✅ Unity Transport settings (screenshot)
3. ✅ Console log (Host) - after connecting
4. ✅ Console log (Client) - after connection attempt
5. ✅ Port checker result (screenshot)
6. ✅ Windows Firewall rules list (screenshot)
---
## Summary
1. **Add debug components** (1 min)
2. **Fix firewall** (2 min) - MOST IMPORTANT
3. **Verify port forwarding** (1 min)
4. **Test with console logs**
If all this fails, the issue is likely:
- Port forwarding is wrong (verify with online tool)
- Different Unity/Netcode versions between you and teammate
- Antivirus/security software blocking
Good luck! 🎮