Skip to content

Commit 059af1c

Browse files
committed
added dropdown for different connection types
1 parent e9b7732 commit 059af1c

26 files changed

+316
-145
lines changed

Assets/Material/Dungeon/M_SpiderWeb.mat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ Material:
126126
- _DistortionStrength: 1
127127
- _DistortionStrengthScaled: 0
128128
- _DstBlend: 1
129+
- _DstBlendAlpha: 1
129130
- _EmissionEnabled: 0
130131
- _EnableExternalAlpha: 0
131132
- _FlipbookMode: 0
@@ -145,6 +146,7 @@ Material:
145146
- _SoftParticlesNearFadeDistance: 0
146147
- _SpecularHighlights: 1
147148
- _SrcBlend: 5
149+
- _SrcBlendAlpha: 1
148150
- _Surface: 1
149151
- _UVSec: 0
150152
- _UseAlpha: 0

Assets/Scenes/MainMenu.unity

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:cdaca1553f6a56d171dd72e4d8c51a3d22e5e4eaaff8def9c6ef3a7cde259a37
3-
size 73659
2+
oid sha256:5878aba484ff1f398ab9bcff20498a09751a0234d3d125cc600b8269bcd5c7f3
3+
size 111782

Assets/Scripts/ConnectionManagement/ConnectionMethod.cs

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,55 @@ class ConnectionMethodIP : ConnectionMethodBase
8686
{
8787
string m_Ipaddress;
8888
ushort m_Port;
89+
90+
private string CaCertificate =
91+
@"-----BEGIN CERTIFICATE-----
92+
MIIDpzCCAo+gAwIBAgIUeyWOu7GQSV0N3dZNwRr2Pl8HXPAwDQYJKoZIhvcNAQEL
93+
BQAwYjELMAkGA1UEBhMCQ0ExDzANBgNVBAgMBlF1ZWJlYzERMA8GA1UEBwwITW9u
94+
dHJlYWwxGzAZBgNVBAoMElVuaXR5IFRlY2hub2xvZ2llczESMBAGA1UEAwwJMTI3
95+
LjAuMC4xMCAXDTIzMDMxNzE4MDk0MloYDzMwMjIwNzE4MTgwOTQyWjBiMQswCQYD
96+
VQQGEwJDQTEPMA0GA1UECAwGUXVlYmVjMREwDwYDVQQHDAhNb250cmVhbDEbMBkG
97+
A1UECgwSVW5pdHkgVGVjaG5vbG9naWVzMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEi
98+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD8ikJud244RTt3tCoBluJxocUw
99+
QboPkWU6FHGPiqztACk5ergbd3zvd2//daM7HVGy857vDoZZ9PvPSP29AvD3eO8v
100+
KFoBWfeTzGjXw0L5YXQ3wxq1fhJ1BOI0XLRVPndhLrBLsETz0XUctZASC/EfPiQD
101+
m5gINh7HcQkwza7z7XfX9+A5ttzFHFntoLOFCL67H6iAEGntj4LX/zlZSnE+1F2L
102+
wTYrQAja4XXvJH2GLCYhBiqYbYuaigKfOQvDXCQWCNeyfD/Xh2ugzBXkMOl+ngV6
103+
Ei7qj2sNWWZh49fmTz9DDjh9Jf3gISpcOjabIpE7ZWYuDwhV8YhssK5fnfrdAgMB
104+
AAGjUzBRMB0GA1UdDgQWBBS1loTCqrnX8gnj/TPUzEwIq8lgWzAfBgNVHSMEGDAW
105+
gBS1loTCqrnX8gnj/TPUzEwIq8lgWzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
106+
DQEBCwUAA4IBAQCi+A4Fm4HTbL3rjtDM0mXeqjD+XpnxzmsYmSqUXLaDw4OkTQZG
107+
QcBwWaP8GhbhcCgNdd5wNsF8zi8B8KN2ApuefOy9VJCVzq+ZNVde8ib1BtRRogng
108+
U81Kv5Cah2la16wj7Vq1B4SAbKA7mBtagyF4kOU52W93RmYrXZw1LETK5fDCXmUA
109+
/ddDuls7dwbsdoZSGv1UouMe/u/JU5v5M2L9naXj3ajdrPe4MNDSeYc+kMp4qSmd
110+
02falAMqS4vEdqcems1cLzLNjOnbdz0kjRlC1THNsKbyAC7s3icPC7Sp6eByHI0e
111+
M4VrSMAGTfD7PRdBxHYRKRCvstrx1SINX10u
112+
-----END CERTIFICATE-----";
113+
114+
private string Certificate1 =
115+
@"-----BEGIN CERTIFICATE-----
116+
MIIDTTCCAjUCFHcd5ngQA5+I7m+bm4zGTdYPBQ0sMA0GCSqGSIb3DQEBCwUAMGIx
117+
CzAJBgNVBAYTAkNBMQ8wDQYDVQQIDAZRdWViZWMxETAPBgNVBAcMCE1vbnRyZWFs
118+
MRswGQYDVQQKDBJVbml0eSBUZWNobm9sb2dpZXMxEjAQBgNVBAMMCTEyNy4wLjAu
119+
MTAgFw0yMzAzMTcxODE0MzJaGA8zMDIyMDcxODE4MTQzMlowYjELMAkGA1UEBhMC
120+
Q0ExDzANBgNVBAgMBlF1ZWJlYzERMA8GA1UEBwwITW9udHJlYWwxGzAZBgNVBAoM
121+
ElVuaXR5IFRlY2hub2xvZ2llczESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkq
122+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqo5HsOVA9cASv5HIUg3tCLPFCdVdgtL7
123+
tdY6FXqw4b9u84Xe13yY0D84H8Pon+RYR29d0eQuzYJHG54FjWk6xzPzfHh2eLEc
124+
1xTL705+4prLbc+DjVLY2HChDN5nJibF1Hpxn1I6fCFW7iK8Fd1hgMJSYKvovExB
125+
oLdxQSFg9OAe+sqnCl4RykPur3liBcWOHfAkhJYuYaflnghtftCu2jxwlb6viPe+
126+
Ebnn8hXV/vjvkPNJOabKJx0y5LCpG5YfJQVMujsiIVNRPvYUl0DzJkj2qKRsSXT5
127+
3Wci9mH4sLuBh42HEUpHW4/xJGtCVk4GCjSsvz7KU7ONRZFHh8kGKQIDAQABMA0G
128+
CSqGSIb3DQEBCwUAA4IBAQAK6CKtw4E1pssoyP4VmRB0F5CzhrGlvCayWJ0i9iRx
129+
d3569LmdqKYvjm/lv85zrDlFfYyH/b1OIwPyifBM6OjBI7s4CLAIFAzxhHqWsx5N
130+
k9A+Xa+xtHFMpPprTokPPfkeizt52plBjP9X09a9KSq8PLMtaLsQGmcAXV6hmG71
131+
8yHGDARquUPZeAnU+3zvZHXttwn48edbZADhrqNk8yQOz4JO7XBPVNZS/VBxIWe5
132+
8AuVLZx4R6oBkKTrLlajuCMLySyqGqgi/iRbMSlh616+M0TaXChcv+zEm/pG+X4d
133+
4BPMuR+OHHfHAP0ypkhO7SB/sSNo2dXkCJrETp/R00D8
134+
-----END CERTIFICATE-----";
135+
136+
// this will be required for DTLS and WSS, removed for security purpose, saved locally
137+
private string PrivateKey1 = "";
89138

90139
public ConnectionMethodIP(string ip, ushort port, ConnectionManager connectionManager, ProfileManager profileManager, string playerName)
91140
: base(connectionManager, profileManager, playerName)
@@ -100,6 +149,9 @@ public override void SetupClientConnection()
100149
SetConnectionPayload(GetPlayerId(), m_PlayerName);
101150
var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
102151
utp.SetConnectionData(m_Ipaddress, m_Port);
152+
SetConnectionType(utp, false);
153+
Debug.Log("[Use Encryption]: " + utp.UseEncryption);
154+
Debug.Log("[Use WebSockets]: " + utp.UseWebSockets);
103155
}
104156

105157
public override Task<(bool success, bool shouldTryAgain)> SetupClientReconnectionAsync()
@@ -113,6 +165,55 @@ public override void SetupHostConnection()
113165
SetConnectionPayload(GetPlayerId(), m_PlayerName); // Need to set connection payload for host as well, as host is a client too
114166
var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
115167
utp.SetConnectionData(m_Ipaddress, m_Port);
168+
SetConnectionType(utp, true);
169+
Debug.Log("[Use Encryption]: " + utp.UseEncryption);
170+
Debug.Log("[Use WebSockets]: " + utp.UseWebSockets);
171+
}
172+
173+
void SetConnectionType(UnityTransport utp, bool isServer)
174+
{
175+
switch (ConnectionTypeDropdown.connectionType)
176+
{
177+
case "udp":
178+
utp.UseEncryption = false;
179+
utp.UseWebSockets = false;
180+
break;
181+
182+
case "dtls":
183+
utp.UseEncryption = true;
184+
utp.UseWebSockets = false;
185+
186+
if (isServer)
187+
{
188+
utp.SetServerSecrets(Certificate1, PrivateKey1);
189+
}
190+
else
191+
{
192+
utp.SetClientSecrets("127.0.0.1", CaCertificate);
193+
}
194+
195+
break;
196+
197+
case "ws":
198+
utp.UseEncryption = false;
199+
utp.UseWebSockets = true;
200+
break;
201+
202+
case "wss":
203+
utp.UseEncryption = true;
204+
utp.UseWebSockets = true;
205+
206+
if (isServer)
207+
{
208+
utp.SetServerSecrets(Certificate1, PrivateKey1);
209+
}
210+
else
211+
{
212+
utp.SetClientSecrets("127.0.0.1", CaCertificate);
213+
}
214+
215+
break;
216+
}
116217
}
117218
}
118219

Assets/Scripts/Gameplay/GameState/ClientMainMenuState.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ public class ClientMainMenuState : GameStateBehaviour
3737
UIProfileSelector m_UIProfileSelector;
3838
[SerializeField]
3939
UITooltipDetector m_UGSSetupTooltipDetector;
40+
41+
[SerializeField]
42+
GameObject m_DropDown;
4043

4144
[Inject]
4245
AuthenticationServiceFacade m_AuthServiceFacade;
@@ -143,12 +146,14 @@ public void OnStartClicked()
143146
{
144147
m_SessionUIMediator.ToggleJoinSessionUI();
145148
m_SessionUIMediator.Show();
149+
m_DropDown.SetActive(true);
146150
}
147151

148152
public void OnDirectIPClicked()
149153
{
150154
m_SessionUIMediator.Hide();
151155
m_IPUIMediator.Show();
156+
m_DropDown.SetActive(true);
152157
}
153158

154159
public void OnChangeProfileClicked()
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using TMPro;
2+
using UnityEngine;
3+
4+
namespace Unity.BossRoom.Utils
5+
{
6+
public class ConnectionTypeDropdown : MonoBehaviour
7+
{
8+
enum ConnectionType
9+
{
10+
UDP,
11+
DTLS,
12+
WS,
13+
WSS,
14+
}
15+
16+
[SerializeReference]
17+
TMP_Dropdown m_Dropdown;
18+
19+
public static string connectionType { get; set; } = "udp";
20+
21+
void Start()
22+
{
23+
Initialize();
24+
25+
m_Dropdown.onValueChanged.AddListener(delegate {
26+
DropdownValueChanged(m_Dropdown.value);
27+
});
28+
}
29+
30+
void Initialize()
31+
{
32+
switch (connectionType)
33+
{
34+
case "udp":
35+
m_Dropdown.value = (int)ConnectionType.UDP;
36+
break;
37+
case "dtls":
38+
m_Dropdown.value = (int)ConnectionType.DTLS;
39+
break;
40+
case "ws":
41+
m_Dropdown.value = (int)ConnectionType.WS;
42+
break;
43+
case "wss":
44+
m_Dropdown.value = (int)ConnectionType.WSS;
45+
break;
46+
}
47+
}
48+
49+
void DropdownValueChanged(int value)
50+
{
51+
switch (value)
52+
{
53+
case (int)ConnectionType.UDP:
54+
connectionType = "udp";
55+
break;
56+
case (int)ConnectionType.DTLS:
57+
connectionType = "dtls";
58+
break;
59+
case (int)ConnectionType.WS:
60+
connectionType = "ws";
61+
break;
62+
case (int)ConnectionType.WSS:
63+
connectionType = "wss";
64+
break;
65+
}
66+
}
67+
}
68+
}

Assets/Scripts/Utils/ConnectionTypeDropdown.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:a14e787d75e40f95ac253c8ff8f4024f220abe97989868c59132ca6946c77e43
3-
size 4358
2+
oid sha256:0465fc0b8370e21cc99cf7c98635c0ed22571dbecc70334ede4d43fa82e4a90c
3+
size 4626
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:61fd1498ae417613b1e4fc43d90f62a1a8eacb61953ed8defc91082077be5148
3-
size 4361
2+
oid sha256:00ad248330fce628e819727a91fbdb932ee1b82c936a914fdceb16bd22889bc2
3+
size 4629
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:95bc4e0a16a45168277872febc3470a47559b5388c278832a3df1e3573839f34
3-
size 4359
2+
oid sha256:9b9edc13269edd820d29dd9d5f1000d6410f27176c2b7aed04189bca312cdc50
3+
size 4627
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:b2208c1fefb455a174645cb2d6f7f6cb6bc074cdec65f73f0d5c27bb83bd58a2
3-
size 4350
2+
oid sha256:427dea9f6aebb3b9a7dcd4ea4d5ef96b90482ca81db4b0da28d7a772b34b95e7
3+
size 4618

0 commit comments

Comments
 (0)