Skip to content

Commit c4f798e

Browse files
committed
Adding custom configurations of built-in scenarios
1 parent 61f6be6 commit c4f798e

File tree

2 files changed

+80
-14
lines changed

2 files changed

+80
-14
lines changed

Assets/Prefabs/UI/NetworkSimulator.prefab

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,64 @@ MonoBehaviour:
992992
m_ScenariosButtonText: {fileID: 4687414789391785531}
993993
m_LagSpikeDuration: {fileID: 8516948734797190670}
994994
m_OpenWindowKeyCode: 9
995+
m_ConnectionsCycleScenario:
996+
m_Configurations:
997+
- m_ClassPreset:
998+
rid: 6605000945039310848
999+
m_ScriptableObjectPreset: {fileID: 0}
1000+
ChangeIntervalMilliseconds: 5000
1001+
- m_ClassPreset:
1002+
rid: 6605000945039310850
1003+
m_ScriptableObjectPreset: {fileID: 0}
1004+
ChangeIntervalMilliseconds: 5000
1005+
- m_ClassPreset:
1006+
rid: 6605000945039310851
1007+
m_ScriptableObjectPreset: {fileID: 0}
1008+
ChangeIntervalMilliseconds: 5000
1009+
m_RandomConnectionsSwapScenario:
1010+
ChangeIntervalMilliseconds: 5000
1011+
m_Configurations:
1012+
- m_ClassPreset:
1013+
rid: 6605000945039310848
1014+
m_ScriptableObjectPreset: {fileID: 0}
1015+
- m_ClassPreset:
1016+
rid: 6605000945039310850
1017+
m_ScriptableObjectPreset: {fileID: 0}
1018+
- m_ClassPreset:
1019+
rid: 6605000945039310851
1020+
m_ScriptableObjectPreset: {fileID: 0}
1021+
references:
1022+
version: 2
1023+
RefIds:
1024+
- rid: 6605000945039310848
1025+
type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
1026+
data:
1027+
<Name>k__BackingField: None
1028+
<Description>k__BackingField:
1029+
<PacketDelayMs>k__BackingField: 0
1030+
<PacketJitterMs>k__BackingField: 0
1031+
<PacketLossInterval>k__BackingField: 0
1032+
<PacketLossPercent>k__BackingField: 0
1033+
- rid: 6605000945039310850
1034+
type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
1035+
data:
1036+
<Name>k__BackingField: Home Broadband [WIFI, Cable, Console, PC]
1037+
<Description>k__BackingField: Typical of desktop and console platforms (and
1038+
generally speaking most mobile players too).
1039+
<PacketDelayMs>k__BackingField: 32
1040+
<PacketJitterMs>k__BackingField: 12
1041+
<PacketLossInterval>k__BackingField: 0
1042+
<PacketLossPercent>k__BackingField: 2
1043+
- rid: 6605000945039310851
1044+
type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
1045+
data:
1046+
<Name>k__BackingField: Mobile 5G ['20]
1047+
<Description>k__BackingField: In many places, expect this to be 'as good
1048+
as' or 'better than' home broadband.
1049+
<PacketDelayMs>k__BackingField: 1
1050+
<PacketJitterMs>k__BackingField: 10
1051+
<PacketLossInterval>k__BackingField: 0
1052+
<PacketLossPercent>k__BackingField: 2
9951053
--- !u!1 &2414270824810977563
9961054
GameObject:
9971055
m_ObjectHideFlags: 0
@@ -3026,7 +3084,7 @@ MonoBehaviour:
30263084
m_Scenario:
30273085
rid: -2
30283086
m_IsScenarioSettingsFolded: 1
3029-
AutoRunScenario: 0
3087+
AutoRunScenario: 1
30303088
references:
30313089
version: 2
30323090
RefIds:

Assets/Scripts/Gameplay/UI/NetworkSimulationUIMediator.cs

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Text.RegularExpressions;
55
using TMPro;
66
using Unity.Multiplayer.Tools.NetworkSimulator.Runtime;
7+
using Unity.Multiplayer.Tools.NetworkSimulator.Runtime.BuiltInScenarios;
78
using Unity.Netcode;
89
using UnityEngine;
910
using UnityEngine.UI;
@@ -36,6 +37,12 @@ public class NetworkSimulationUIMediator : MonoBehaviour
3637
[SerializeField]
3738
KeyCode m_OpenWindowKeyCode = KeyCode.Tilde;
3839

40+
[SerializeField]
41+
ConnectionsCycle m_ConnectionsCycleScenario;
42+
43+
[SerializeField]
44+
RandomConnectionsSwap m_RandomConnectionsSwapScenario;
45+
3946
const int k_NbTouchesToOpenWindow = 5;
4047

4148
Dictionary<string, INetworkSimulatorPreset> m_SimulatorPresets = new Dictionary<string, INetworkSimulatorPreset>();
@@ -59,25 +66,26 @@ void Awake()
5966
m_PresetsDropdown.AddOptions(optionData);
6067
m_PresetsDropdown.onValueChanged.AddListener(OnPresetChanged);
6168

62-
// initialize scenarios dropdown
63-
var scenariosTypes = AppDomain.CurrentDomain.GetAssemblies()
64-
.SelectMany(x => x.GetTypes())
65-
.Where(TypeIsValidNetworkScenario)
66-
.ToList();
67-
69+
// initialize scenario dropdown
6870
optionData = new List<TMP_Dropdown.OptionData>();
71+
72+
// Adding empty scenario
6973
optionData.Add(new TMP_Dropdown.OptionData(k_None));
70-
foreach (var scenario in scenariosTypes)
71-
{
72-
var scenarioName = scenario.Name;
73-
m_Scenarios[scenarioName] = (NetworkScenario) Activator.CreateInstance(scenario);
74-
optionData.Add(new TMP_Dropdown.OptionData(scenarioName));
75-
}
74+
75+
// Adding ConnectionsCycle scenario
76+
var scenarioName = m_ConnectionsCycleScenario.GetType().Name;
77+
m_Scenarios[scenarioName] = m_ConnectionsCycleScenario;
78+
optionData.Add(new TMP_Dropdown.OptionData(scenarioName));
79+
80+
// Adding RandomConnectionsSwap scenario
81+
scenarioName = m_RandomConnectionsSwapScenario.GetType().Name;
82+
m_Scenarios[scenarioName] = m_RandomConnectionsSwapScenario;
83+
optionData.Add(new TMP_Dropdown.OptionData(scenarioName));
7684

7785
m_ScenariosDropdown.AddOptions(optionData);
7886
m_ScenariosDropdown.onValueChanged.AddListener(OnScenarioChanged);
7987

80-
// Hide UI until
88+
// Hide UI until ready
8189
Hide();
8290
}
8391

0 commit comments

Comments
 (0)