Skip to content

Commit 13960e3

Browse files
committed
Moving comand line options to unity transport
1 parent 542aaa8 commit 13960e3

File tree

7 files changed

+594
-52
lines changed

7 files changed

+594
-52
lines changed

com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -976,18 +976,18 @@ public NetworkPrefabHandler PrefabHandler
976976
internal NetworkConnectionManager ConnectionManager = new NetworkConnectionManager();
977977
internal NetworkMessageManager MessageManager = null;
978978

979-
internal struct Override<T>
980-
{
981-
private T m_Value;
982-
public bool Overidden { get; private set; }
983-
internal T Value
984-
{
985-
get { return Overidden ? m_Value : default(T); }
986-
set { Overidden = true; m_Value = value; }
987-
}
988-
};
989-
990-
internal Override<ushort> PortOverride;
979+
// internal struct Override<T>
980+
// {
981+
// private T m_Value;
982+
// public bool Overidden { get; private set; }
983+
// internal T Value
984+
// {
985+
// get { return Overidden ? m_Value : default(T); }
986+
// set { Overidden = true; m_Value = value; }
987+
// }
988+
// };
989+
//
990+
// internal Override<ushort> PortOverride;
991991

992992
/// <summary>
993993
/// Determines if the NetworkManager's GameObject is parented under another GameObject and
@@ -1168,7 +1168,7 @@ internal void Initialize(bool server)
11681168
return;
11691169
}
11701170

1171-
ParseCommandLineOptions();
1171+
//ParseCommandLineOptions();
11721172

11731173
if (NetworkConfig.NetworkTransport == null)
11741174
{
@@ -1740,39 +1740,39 @@ private void OnDestroy()
17401740
#endif
17411741
}
17421742

1743-
// Command line options
1744-
private const string k_OverridePortArg = "-port";
1745-
1746-
private string GetArg(string[] commandLineArgs, string arg)
1747-
{
1748-
var argIndex = Array.IndexOf(commandLineArgs, arg);
1749-
if (argIndex >= 0 && argIndex < commandLineArgs.Length - 1)
1750-
{
1751-
return commandLineArgs[argIndex + 1];
1752-
}
1753-
1754-
return null;
1755-
}
1756-
1757-
private void ParseArg<T>(string arg, ref Override<T> value)
1758-
{
1759-
if (GetArg(Environment.GetCommandLineArgs(), arg) is string argValue)
1760-
{
1761-
value.Value = (T)Convert.ChangeType(argValue, typeof(T));
1762-
}
1763-
}
1764-
1765-
private void ParseCommandLineOptions()
1766-
{
1767-
#if UNITY_SERVER && UNITY_DEDICATED_SERVER_ARGUMENTS_PRESENT
1768-
if ( UnityEngine.DedicatedServer.Arguments.Port != null)
1769-
{
1770-
PortOverride.Value = (ushort)UnityEngine.DedicatedServer.Arguments.Port;
1771-
}
1772-
#else
1773-
ParseArg(k_OverridePortArg, ref PortOverride);
1774-
#endif
1775-
}
1743+
// // Command line options
1744+
// private const string k_OverridePortArg = "-port";
1745+
//
1746+
// private string GetArg(string[] commandLineArgs, string arg)
1747+
// {
1748+
// var argIndex = Array.IndexOf(commandLineArgs, arg);
1749+
// if (argIndex >= 0 && argIndex < commandLineArgs.Length - 1)
1750+
// {
1751+
// return commandLineArgs[argIndex + 1];
1752+
// }
1753+
//
1754+
// return null;
1755+
// }
1756+
//
1757+
// private void ParseArg<T>(string arg, ref Override<T> value)
1758+
// {
1759+
// if (GetArg(Environment.GetCommandLineArgs(), arg) is string argValue)
1760+
// {
1761+
// value.Value = (T)Convert.ChangeType(argValue, typeof(T));
1762+
// }
1763+
// }
1764+
//
1765+
// private void ParseCommandLineOptions()
1766+
// {
1767+
// #if UNITY_SERVER && UNITY_DEDICATED_SERVER_ARGUMENTS_PRESENT
1768+
// if ( UnityEngine.DedicatedServer.Arguments.Port != null)
1769+
// {
1770+
// PortOverride.Value = (ushort)UnityEngine.DedicatedServer.Arguments.Port;
1771+
// }
1772+
// #else
1773+
// ParseArg(k_OverridePortArg, ref PortOverride);
1774+
// #endif
1775+
// }
17761776

17771777
#if UNITY_EDITOR
17781778
internal static INetworkManagerHelper NetworkManagerHelper;

com.unity.netcode.gameobjects/Runtime/Transports/UTP/UnityTransport.cs

Lines changed: 68 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -785,14 +785,79 @@ public void SetClientRelayData(string ipAddress, ushort port, byte[] allocationI
785785
SetRelayServerData(ipAddress, port, allocationId, key, connectionData, hostConnectionData, isSecure);
786786
}
787787

788+
internal struct Override<T>
789+
{
790+
private T m_Value;
791+
public bool Overidden { get; private set; }
792+
internal T Value
793+
{
794+
get { return Overidden ? m_Value : default(T); }
795+
set { Overidden = true; m_Value = value; }
796+
}
797+
};
798+
799+
internal Override<ushort> PortOverride;
800+
801+
// Command line options
802+
private const string k_OverridePortArg = "-port";
803+
804+
private string GetArg(string[] commandLineArgs, string arg)
805+
{
806+
var argIndex = Array.IndexOf(commandLineArgs, arg);
807+
if (argIndex >= 0 && argIndex < commandLineArgs.Length - 1)
808+
{
809+
return commandLineArgs[argIndex + 1];
810+
}
811+
812+
return null;
813+
}
814+
815+
private void ParseArg<T>(string arg, ref Override<T> value)
816+
{
817+
if (GetArg(Environment.GetCommandLineArgs(), arg) is string argValue)
818+
{
819+
value.Value = (T)Convert.ChangeType(argValue, typeof(T));
820+
}
821+
}
822+
823+
private void ParseCommandLineOptions()
824+
{
825+
#if UNITY_SERVER && UNITY_DEDICATED_SERVER_ARGUMENTS_PRESENT
826+
827+
Debug.Log("This is happening 1");
828+
if ( UnityEngine.DedicatedServer.Arguments.Port != null)
829+
{
830+
Debug.Log("This is happening 2");
831+
PortOverride.Value = (ushort)UnityEngine.DedicatedServer.Arguments.Port;
832+
}
833+
#else
834+
ParseArg(k_OverridePortArg, ref PortOverride);
835+
#endif
836+
}
837+
788838
/// <summary>
789839
/// Sets IP and Port information. This will be ignored if using the Unity Relay and you should call <see cref="SetRelayServerData"/>
790840
/// </summary>
791841
/// <param name="ipv4Address">The remote IP address (despite the name, can be an IPv6 address or a domain name)</param>
792842
/// <param name="port">The remote port</param>
793843
/// <param name="listenAddress">The local listen address</param>
794-
public void SetConnectionData(string ipv4Address, ushort port, string listenAddress = null)
844+
/// <param name="overrideCommandLineArgs">Should override port value</param>
845+
public void SetConnectionData(string ipv4Address, ushort port, string listenAddress = null, bool overrideCommandLineArgs = false)
795846
{
847+
if (overrideCommandLineArgs)
848+
{
849+
if (m_NetworkManager.LogLevel <= LogLevel.Developer)
850+
{
851+
Debug.Log($"Already has command line option set. Using connection data set to {ipv4Address}:{port}");
852+
}
853+
854+
ConnectionData.Port = port;
855+
}
856+
else
857+
{
858+
ParseCommandLineOptions();
859+
}
860+
796861
ConnectionData = new ConnectionAddressData
797862
{
798863
Address = ipv4Address,
@@ -1561,9 +1626,9 @@ public override void Initialize(NetworkManager networkManager = null)
15611626

15621627
m_NetworkManager = networkManager;
15631628

1564-
if (m_NetworkManager && m_NetworkManager.PortOverride.Overidden)
1629+
if (m_NetworkManager && PortOverride.Overidden)
15651630
{
1566-
ConnectionData.Port = m_NetworkManager.PortOverride.Value;
1631+
ConnectionData.Port = PortOverride.Value;
15671632
}
15681633

15691634
m_RealTimeProvider = m_NetworkManager ? m_NetworkManager.RealTimeProvider : new RealTimeProvider();

0 commit comments

Comments
 (0)