Skip to content

Commit b65fe81

Browse files
committed
增加对UDP的支持
1 parent 2cbadc4 commit b65fe81

12 files changed

Lines changed: 191 additions & 108 deletions

File tree

Assets/Script/Core/Develop/GUIUtil.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ public static void SetGUIStyle()
2121

2222
s_fontSize = (int)(Screen.dpi * 0.13f);
2323

24-
//#if UNITY_ANDROID || UNITY_IOS
24+
#if UNITY_EDITOR
25+
s_fontSize *= 3;
26+
27+
#endif
28+
29+
2530
GUI.skin.label.fontSize = s_fontSize;
2631
//GUI.skin.button.fixedHeight = 0;
2732
GUI.skin.button.fontSize = s_fontSize;

Assets/Script/Core/Input/InputEventProxy/InputUIEventProxy.cs

Lines changed: 73 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
public class InputUIEventProxy : IInputProxyBase
88
{
99
#region 添加监听
10-
public static InputEventRegisterInfo<InputUIOnClickEvent> AddOnClickListener(Button button, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnClickEvent> callback)
10+
public static InputButtonClickRegisterInfo GetOnClickListener(Button button, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnClickEvent> callback)
1111
{
1212
InputButtonClickRegisterInfo info = HeapObjectPool<InputButtonClickRegisterInfo>.GetObject();
1313

@@ -19,14 +19,10 @@ public static InputEventRegisterInfo<InputUIOnClickEvent> AddOnClickListener(But
1919
DispatchOnClickEvent(UIName, ComponentName, parm);
2020
};
2121

22-
info.AddListener();
23-
24-
button.onClick.AddListener(info.m_OnClick);
25-
2622
return info;
2723
}
2824

29-
public static InputEventRegisterInfo<InputUILongPressEvent> AddLongPressListener(LongPressAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUILongPressEvent> callback)
25+
public static InputEventRegisterInfo<InputUILongPressEvent> GetLongPressListener(LongPressAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUILongPressEvent> callback)
3026
{
3127
InputlongPressRegisterInfo info = HeapObjectPool<InputlongPressRegisterInfo>.GetObject();
3228

@@ -38,13 +34,10 @@ public static InputEventRegisterInfo<InputUILongPressEvent> AddLongPressListener
3834
DispatchLongPressEvent(UIName, ComponentName, parm, type);
3935
};
4036

41-
info.AddListener();
42-
acceptor.OnLongPress += info.m_OnLongPress;
43-
4437
return info;
4538
}
4639

47-
public static InputEventRegisterInfo<InputUIOnScrollEvent> AddOnScrollListener(string UIName, string ComponentName, InputEventHandle<InputUIOnScrollEvent> callback)
40+
public static InputEventRegisterInfo<InputUIOnScrollEvent> GetOnScrollListener(string UIName, string ComponentName, InputEventHandle<InputUIOnScrollEvent> callback)
4841
{
4942
InputEventRegisterInfo<InputUIOnScrollEvent> info = HeapObjectPool<InputEventRegisterInfo<InputUIOnScrollEvent>>.GetObject();
5043

@@ -57,7 +50,7 @@ public static InputEventRegisterInfo<InputUIOnScrollEvent> AddOnScrollListener(s
5750
return info;
5851
}
5952

60-
public static InputEventRegisterInfo<InputUIOnDragEvent> AddOnDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnDragEvent> callback)
53+
public static InputEventRegisterInfo<InputUIOnDragEvent> GetOnDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnDragEvent> callback)
6154
{
6255
InputDragRegisterInfo info = HeapObjectPool<InputDragRegisterInfo>.GetObject();
6356

@@ -69,15 +62,10 @@ public static InputEventRegisterInfo<InputUIOnDragEvent> AddOnDragListener(DragA
6962
DispatchDragEvent(UIName, ComponentName, parm, data);
7063
};
7164

72-
info.AddListener();
73-
74-
InputManager.AddListener(
75-
InputUIOnDragEvent.GetEventKey(UIName, ComponentName, parm), callback);
76-
7765
return info;
7866
}
7967

80-
public static InputBeginDragRegisterInfo AddOnBeginDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnBeginDragEvent> callback)
68+
public static InputBeginDragRegisterInfo GetOnBeginDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnBeginDragEvent> callback)
8169
{
8270
InputBeginDragRegisterInfo info = HeapObjectPool<InputBeginDragRegisterInfo>.GetObject();
8371

@@ -89,15 +77,10 @@ public static InputBeginDragRegisterInfo AddOnBeginDragListener(DragAcceptor acc
8977
DispatchBeginDragEvent(UIName, ComponentName, parm, data);
9078
};
9179

92-
info.AddListener();
93-
94-
InputManager.AddListener(
95-
InputUIOnBeginDragEvent.GetEventKey(UIName, ComponentName, parm), callback);
96-
9780
return info;
9881
}
9982

100-
public static InputEndDragRegisterInfo AddOnEndDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnEndDragEvent> callback)
83+
public static InputEndDragRegisterInfo GetOnEndDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle<InputUIOnEndDragEvent> callback)
10184
{
10285
InputEndDragRegisterInfo info = HeapObjectPool<InputEndDragRegisterInfo>.GetObject();
10386

@@ -109,11 +92,6 @@ public static InputEndDragRegisterInfo AddOnEndDragListener(DragAcceptor accepto
10992
DispatchEndDragEvent(UIName, ComponentName, parm, data);
11093
};
11194

112-
info.AddListener();
113-
114-
InputManager.AddListener(
115-
InputUIOnDragEvent.GetEventKey(UIName, ComponentName, parm), callback);
116-
11795
return info;
11896
}
11997

@@ -234,10 +212,23 @@ public class InputButtonClickRegisterInfo : InputEventRegisterInfo<InputUIOnClic
234212
public Button m_button;
235213
public UnityAction m_OnClick;
236214

237-
public override void RemoveListener()
215+
public override void RemoveListener(bool isSole)
216+
{
217+
base.RemoveListener(isSole);
218+
if (isSole)
219+
{
220+
m_button.onClick.RemoveListener(m_OnClick);
221+
}
222+
}
223+
224+
public override void AddListener(bool isSole)
238225
{
239-
base.RemoveListener();
240-
m_button.onClick.RemoveListener(m_OnClick);
226+
base.AddListener(isSole);
227+
228+
if(isSole)
229+
{
230+
m_button.onClick.AddListener(m_OnClick);
231+
}
241232
}
242233
}
243234

@@ -246,10 +237,22 @@ public class InputlongPressRegisterInfo : InputEventRegisterInfo<InputUILongPres
246237
public LongPressAcceptor m_acceptor;
247238
public InputUIEventLongPressCallBack m_OnLongPress;
248239

249-
public override void RemoveListener()
240+
public override void RemoveListener(bool isSole)
250241
{
251-
base.RemoveListener();
252-
m_acceptor.OnLongPress -= m_OnLongPress;
242+
base.RemoveListener(isSole);
243+
if (isSole)
244+
{
245+
m_acceptor.OnLongPress -= m_OnLongPress;
246+
}
247+
}
248+
249+
public override void AddListener(bool isSole)
250+
{
251+
base.AddListener(isSole);
252+
if (isSole)
253+
{
254+
m_acceptor.OnLongPress += m_OnLongPress;
255+
}
253256
}
254257
}
255258

@@ -258,17 +261,22 @@ public class InputDragRegisterInfo : InputEventRegisterInfo<InputUIOnDragEvent>
258261
public DragAcceptor m_acceptor;
259262
public InputUIEventDragCallBack m_OnDrag;
260263

261-
public override void AddListener()
264+
public override void AddListener(bool isSole)
262265
{
263-
base.AddListener();
264-
m_acceptor.m_OnDrag += m_OnDrag;
266+
base.AddListener(isSole);
267+
if (isSole)
268+
{
269+
m_acceptor.m_OnDrag += m_OnDrag;
270+
}
265271
}
266272

267-
268-
public override void RemoveListener()
273+
public override void RemoveListener(bool isSole)
269274
{
270-
base.RemoveListener();
271-
m_acceptor.m_OnDrag -= m_OnDrag;
275+
base.RemoveListener(isSole);
276+
if (isSole)
277+
{
278+
m_acceptor.m_OnDrag -= m_OnDrag;
279+
}
272280
}
273281
}
274282

@@ -277,16 +285,22 @@ public class InputBeginDragRegisterInfo : InputEventRegisterInfo<InputUIOnBeginD
277285
public DragAcceptor m_acceptor;
278286
public InputUIEventDragCallBack m_OnBeginDrag;
279287

280-
public override void AddListener()
288+
public override void AddListener(bool isSole)
281289
{
282-
base.AddListener();
283-
m_acceptor.m_OnBeginDrag += m_OnBeginDrag;
290+
base.AddListener(isSole);
291+
if (isSole)
292+
{
293+
m_acceptor.m_OnBeginDrag += m_OnBeginDrag;
294+
}
284295
}
285296

286-
public override void RemoveListener()
297+
public override void RemoveListener(bool isSole)
287298
{
288-
base.RemoveListener();
289-
m_acceptor.m_OnBeginDrag -= m_OnBeginDrag;
299+
base.RemoveListener(isSole);
300+
if (isSole)
301+
{
302+
m_acceptor.m_OnBeginDrag -= m_OnBeginDrag;
303+
}
290304
}
291305
}
292306

@@ -295,15 +309,20 @@ public class InputEndDragRegisterInfo : InputEventRegisterInfo<InputUIOnEndDragE
295309
public DragAcceptor m_acceptor;
296310
public InputUIEventDragCallBack m_OnEndDrag;
297311

298-
public override void AddListener()
312+
public override void AddListener(bool isSole)
299313
{
300-
base.AddListener();
301-
m_acceptor.m_OnEndDrag += m_OnEndDrag;
314+
base.AddListener(isSole);
315+
if (isSole)
316+
{
317+
m_acceptor.m_OnEndDrag += m_OnEndDrag;
318+
}
302319
}
303-
public override void RemoveListener()
320+
public override void RemoveListener(bool isSole)
304321
{
305-
base.RemoveListener();
306-
m_acceptor.m_OnEndDrag -= m_OnEndDrag;
307-
322+
base.RemoveListener(isSole);
323+
if (isSole)
324+
{
325+
m_acceptor.m_OnEndDrag -= m_OnEndDrag;
326+
}
308327
}
309328
}

Assets/Script/Core/Input/Interface/IInputProxyBase.cs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,40 @@ public static bool IsActive
3434
#endregion
3535
}
3636

37-
public class InputEventRegisterInfo<T> : IHeapObjectInterface where T : IInputEventBase
37+
public class InputEventRegisterInfo : IHeapObjectInterface
3838
{
3939
public string eventKey;
40+
public void OnInit(){}
41+
public void OnPop(){}
42+
public void OnPush(){}
43+
public virtual void AddListener(bool isSole) {}
44+
public virtual void RemoveListener(bool isSole) {}
45+
}
46+
47+
public class InputEventRegisterInfo<T> : InputEventRegisterInfo where T : IInputEventBase
48+
{
4049
public InputEventHandle<T> callBack;
4150

4251
public InputEventRegisterInfo()
4352
{
4453
}
4554

46-
public virtual void AddListener()
55+
/// <summary>
56+
/// 添加监听和派发
57+
/// </summary>
58+
/// <param name="isRegister">这个eventKey是否已经注册过了,如果是则不在派发对象上重复派发</param>
59+
public override void AddListener(bool isSole)
4760
{
4861
InputManager.AddListener<T>(eventKey, callBack);
4962
}
5063

51-
public virtual void RemoveListener()
64+
/// <summary>
65+
/// 移除监听和派发
66+
/// </summary>
67+
/// <param name="isRegister">这是不是这个eventKey最后一个监听事件,如果是则移除派发</param>
68+
public override void RemoveListener(bool isSole)
5269
{
5370
InputManager.RemoveListener<T>(eventKey, callBack);
5471
HeapObjectPool<InputEventRegisterInfo<T>>.PutObject(this);
5572
}
56-
public void OnInit() { }
57-
58-
public void OnPop() { }
59-
60-
public void OnPush() { }
61-
}
73+
}

Assets/Script/Core/Network/INetworkInterface.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections;
33
using System;
44
using System.Collections.Generic;
5+
using System.Net.Sockets;
56

67
public class INetworkInterface
78
{
@@ -15,6 +16,8 @@ public class INetworkInterface
1516
public ConnectStatusCallBack m_ConnectStatusCallback;
1617
public MessageCallBack m_messageCallBack;
1718

19+
public ProtocolType m_protocolType;
20+
1821
public virtual void Init()
1922
{
2023

Assets/Script/Core/Network/TCPService.cs renamed to Assets/Script/Core/Network/JsonNetworkService.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using System.Collections.Generic;
99
using FrameWork;
1010

11-
public class TCPService : INetworkInterface
11+
public class JsonNetworkService : INetworkInterface
1212
{
1313
/// <summary>
1414
/// 消息结尾符
@@ -76,7 +76,14 @@ void requestConnect()
7676
{
7777
m_ConnectStatusCallback(NetworkState.Connecting);
7878

79-
m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
79+
SocketType socketType = SocketType.Stream;
80+
81+
if (m_protocolType == ProtocolType.Udp)
82+
{
83+
socketType = SocketType.Dgram;
84+
}
85+
86+
m_Socket = new Socket(AddressFamily.InterNetwork, socketType, m_protocolType);
8087
IPAddress ip = IPAddress.Parse(m_IPaddress);
8188
IPEndPoint ipe = new IPEndPoint(ip, m_port);
8289
//mSocket.

Assets/Script/Core/Network/NetworkManager.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.Collections.Generic;
55
using FrameWork;
6+
using System.Net.Sockets;
67

78
public class NetworkManager
89
{
@@ -16,13 +17,14 @@ public static bool IsConnect
1617
set { NetworkManager.s_isConnect = value; }
1718
}
1819

19-
public static void Init<T>() where T : INetworkInterface,new ()
20+
public static void Init<T>(ProtocolType protocolType = ProtocolType.Tcp) where T : INetworkInterface,new ()
2021
{
2122
//提前加载网络事件派发器,避免异步冲突
2223
InputManager.LoadDispatcher<InputNetworkConnectStatusEvent>();
2324
InputManager.LoadDispatcher<InputNetworkMessageEvent>();
2425

2526
s_network = new T();
27+
s_network.m_protocolType = protocolType;
2628
s_network.Init();
2729
s_network.m_messageCallBack = ReceviceMeaasge;
2830
s_network.m_ConnectStatusCallback = ConnectStatusChange;

Assets/Script/Core/Network/Protocol/ProtocolService.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,14 @@ void requestConnect()
141141
{
142142
m_ConnectStatusCallback(NetworkState.Connecting);
143143

144-
m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
144+
SocketType socketType = SocketType.Stream;
145+
146+
if (m_protocolType == ProtocolType.Udp)
147+
{
148+
socketType = SocketType.Dgram;
149+
}
150+
151+
m_Socket = new Socket(AddressFamily.InterNetwork, socketType, m_protocolType);
145152
IPAddress ip = IPAddress.Parse(m_IPaddress);
146153

147154
IPEndPoint ipe = new IPEndPoint(ip, m_port);

Assets/Script/Core/Network/TCPService.cs.meta

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)