네트워크 멀티플레이 테스트를 위한 코드 추가
This commit is contained in:
95
Assets/Scripts/GamePortConfig.cs
Normal file
95
Assets/Scripts/GamePortConfig.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Northbound
|
||||
{
|
||||
/// <summary>
|
||||
/// Central port configuration for the project
|
||||
/// </summary>
|
||||
public class GamePortConfig : MonoBehaviour
|
||||
{
|
||||
[Header("Port Configuration")]
|
||||
[Tooltip("The main network port for the game")]
|
||||
[SerializeField] private ushort gamePort = 40445;
|
||||
|
||||
public static ushort Port => Instance != null ? Instance.gamePort : (ushort)40445;
|
||||
public static GamePortConfig Instance { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (Instance != null && Instance != this)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
|
||||
Instance = this;
|
||||
DontDestroyOnLoad(gameObject);
|
||||
|
||||
Debug.Log("<color=cyan>[GamePortConfig] Using port: " + gamePort + "</color>");
|
||||
}
|
||||
|
||||
[ContextMenu("Log Port Configuration")]
|
||||
public void LogPortConfig()
|
||||
{
|
||||
Debug.Log("=== GAME PORT CONFIGURATION ===");
|
||||
Debug.Log("Game Port: " + gamePort);
|
||||
Debug.Log("Port Type: TCP (and UDP if enabled)");
|
||||
Debug.Log("Use this port for:");
|
||||
Debug.Log(" - Router Port Forwarding");
|
||||
Debug.Log(" - Windows Firewall rules");
|
||||
Debug.Log(" - Port testing tools");
|
||||
Debug.Log(" - Teammate connections");
|
||||
Debug.Log("==============================");
|
||||
}
|
||||
|
||||
[ContextMenu("Generate Router Port Forwarding Info")]
|
||||
public void GeneratePortForwardingInfo()
|
||||
{
|
||||
Debug.Log("=== ROUTER PORT FORWARDING SETTINGS ===");
|
||||
Debug.Log("");
|
||||
Debug.Log("<color=cyan>EXTERNAL PORT:</color> " + gamePort);
|
||||
Debug.Log("<color=cyan>INTERNAL PORT:</color> " + gamePort);
|
||||
Debug.Log("<color=cyan>PROTOCOL:</color> TCP");
|
||||
Debug.Log("<color=cyan>INTERNAL IP:</color> [Your computer's local IP]");
|
||||
Debug.Log("");
|
||||
Debug.Log("Steps:");
|
||||
Debug.Log("1. Open Command Prompt, run 'ipconfig'");
|
||||
Debug.Log("2. Find 'IPv4 Address' (e.g., 192.168.1.50)");
|
||||
Debug.Log("3. Login to router (http://192.168.1.1)");
|
||||
Debug.Log("4. Find Port Forwarding section");
|
||||
Debug.Log("5. Add rule with above settings");
|
||||
Debug.Log("6. Use your IPv4 as Internal IP");
|
||||
Debug.Log("7. Save and restart router");
|
||||
Debug.Log("");
|
||||
Debug.Log("Test port at: https://www.yougetsignal.com/tools/open-ports/");
|
||||
Debug.Log("=======================================");
|
||||
}
|
||||
|
||||
[ContextMenu("Generate Firewall Rules")]
|
||||
public void GenerateFirewallRules()
|
||||
{
|
||||
Debug.Log("=== WINDOWS FIREWALL RULES ===");
|
||||
Debug.Log("");
|
||||
Debug.Log("Run PowerShell as Administrator, then:");
|
||||
Debug.Log("");
|
||||
Debug.Log("# Allow port " + gamePort);
|
||||
Debug.Log("netsh advfirewall firewall add rule name=\"Unity Port " + gamePort + "\" dir=in action=allow protocol=TCP localport=" + gamePort + " enable=yes profile=any");
|
||||
Debug.Log("");
|
||||
Debug.Log("# Allow Unity Editor");
|
||||
Debug.Log("netsh advfirewall firewall add rule name=\"Unity Editor\" dir=in action=allow program=\"%ProgramFiles%\\Unity\\Hub\\Editor\\*\\Unity.exe\" enable=yes profile=any");
|
||||
Debug.Log("");
|
||||
Debug.Log("# Allow your game build");
|
||||
Debug.Log("netsh advfirewall firewall add rule name=\"Northbound Game\" dir=in action=allow program=\"D:\\Northbound\\Build\\Northbound.exe\" enable=yes profile=any");
|
||||
Debug.Log("");
|
||||
Debug.Log("Note: Update the game path to your actual build location!");
|
||||
Debug.Log("===============================");
|
||||
}
|
||||
|
||||
[ContextMenu("Copy Port to Clipboard")]
|
||||
public void CopyPortToClipboard()
|
||||
{
|
||||
GUIUtility.systemCopyBuffer = gamePort.ToString();
|
||||
Debug.Log("Copied port " + gamePort + " to clipboard");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user