Showing
10 changed files
with
143 additions
and
151 deletions
This diff is collapsed. Click to expand it.
... | @@ -21,9 +21,9 @@ GameObject: | ... | @@ -21,9 +21,9 @@ GameObject: |
21 | - component: {fileID: 224026180460817448} | 21 | - component: {fileID: 224026180460817448} |
22 | - component: {fileID: 222343435350097842} | 22 | - component: {fileID: 222343435350097842} |
23 | - component: {fileID: 114640140560748198} | 23 | - component: {fileID: 114640140560748198} |
24 | - - component: {fileID: 114312857566104806} | 24 | + - component: {fileID: 114555819942375258} |
25 | m_Layer: 5 | 25 | m_Layer: 5 |
26 | - m_Name: Comment | 26 | + m_Name: Message Text |
27 | m_TagString: Untagged | 27 | m_TagString: Untagged |
28 | m_Icon: {fileID: 0} | 28 | m_Icon: {fileID: 0} |
29 | m_NavMeshLayer: 0 | 29 | m_NavMeshLayer: 0 |
... | @@ -79,7 +79,7 @@ MonoBehaviour: | ... | @@ -79,7 +79,7 @@ MonoBehaviour: |
79 | m_VerticalOverflow: 0 | 79 | m_VerticalOverflow: 0 |
80 | m_LineSpacing: 1 | 80 | m_LineSpacing: 1 |
81 | m_Text: Sample Text | 81 | m_Text: Sample Text |
82 | ---- !u!114 &114312857566104806 | 82 | +--- !u!114 &114555819942375258 |
83 | MonoBehaviour: | 83 | MonoBehaviour: |
84 | m_ObjectHideFlags: 1 | 84 | m_ObjectHideFlags: 1 |
85 | m_PrefabParentObject: {fileID: 0} | 85 | m_PrefabParentObject: {fileID: 0} |
... | @@ -87,10 +87,10 @@ MonoBehaviour: | ... | @@ -87,10 +87,10 @@ MonoBehaviour: |
87 | m_GameObject: {fileID: 1351082387170804} | 87 | m_GameObject: {fileID: 1351082387170804} |
88 | m_Enabled: 1 | 88 | m_Enabled: 1 |
89 | m_EditorHideFlags: 0 | 89 | m_EditorHideFlags: 0 |
90 | - m_Script: {fileID: 11500000, guid: e3c2e0a12ace649978c3c197ab4726a6, type: 3} | 90 | + m_Script: {fileID: 11500000, guid: f76bbd8dd17bc35488b1ca48227bbca3, type: 3} |
91 | m_Name: | 91 | m_Name: |
92 | m_EditorClassIdentifier: | 92 | m_EditorClassIdentifier: |
93 | - commentText: {fileID: 114206746021236310} | 93 | + messageText: {fileID: 114206746021236310} |
94 | --- !u!114 &114640140560748198 | 94 | --- !u!114 &114640140560748198 |
95 | MonoBehaviour: | 95 | MonoBehaviour: |
96 | m_ObjectHideFlags: 1 | 96 | m_ObjectHideFlags: 1 |
... | @@ -147,7 +147,7 @@ RectTransform: | ... | @@ -147,7 +147,7 @@ RectTransform: |
147 | m_AnchorMin: {x: 0, y: 0} | 147 | m_AnchorMin: {x: 0, y: 0} |
148 | m_AnchorMax: {x: 0, y: 0} | 148 | m_AnchorMax: {x: 0, y: 0} |
149 | m_AnchoredPosition: {x: 0, y: 0} | 149 | m_AnchoredPosition: {x: 0, y: 0} |
150 | - m_SizeDelta: {x: 200, y: 50} | 150 | + m_SizeDelta: {x: 0, y: 50} |
151 | m_Pivot: {x: 0.5, y: 0.5} | 151 | m_Pivot: {x: 0.5, y: 0.5} |
152 | --- !u!224 &224999107880086880 | 152 | --- !u!224 &224999107880086880 |
153 | RectTransform: | 153 | RectTransform: | ... | ... |
File moved
... | @@ -3,16 +3,18 @@ using System.Collections.Generic; | ... | @@ -3,16 +3,18 @@ using System.Collections.Generic; |
3 | using UnityEngine; | 3 | using UnityEngine; |
4 | using UnityEngine.UI; | 4 | using UnityEngine.UI; |
5 | 5 | ||
6 | -public class MessageInputField : MonoBehaviour { | 6 | +public class ChatInputField : MonoBehaviour { |
7 | 7 | ||
8 | - public Chat chat; | ||
9 | public InputField inputField; | 8 | public InputField inputField; |
9 | + public ChatManager chatManager; | ||
10 | 10 | ||
11 | - void Update () { | 11 | + void Update() |
12 | + { | ||
12 | if(Input.GetKeyDown(KeyCode.Return) && !string.IsNullOrEmpty(inputField.text)) | 13 | if(Input.GetKeyDown(KeyCode.Return) && !string.IsNullOrEmpty(inputField.text)) |
13 | { | 14 | { |
14 | - chat.Send(inputField.text); | 15 | + chatManager.Send(inputField.text); |
15 | inputField.text = string.Empty; | 16 | inputField.text = string.Empty; |
16 | } | 17 | } |
17 | } | 18 | } |
19 | + | ||
18 | } | 20 | } | ... | ... |
1 | fileFormatVersion: 2 | 1 | fileFormatVersion: 2 |
2 | -guid: 7d91d3622aead48008aca0d637d4ad9b | 2 | +guid: 98c5561a51b8e0142ab376064462bf54 |
3 | -timeCreated: 1517219122 | 3 | +timeCreated: 1517460942 |
4 | -licenseType: Pro | 4 | +licenseType: Free |
5 | MonoImporter: | 5 | MonoImporter: |
6 | externalObjects: {} | 6 | externalObjects: {} |
7 | serializedVersion: 2 | 7 | serializedVersion: 2 | ... | ... |
1 | -using UnityEngine; | 1 | +using System.Collections; |
2 | -using System; | ||
3 | -using System.Collections; | ||
4 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | +using UnityEngine; | ||
5 | using System.Net; | 4 | using System.Net; |
5 | +using System; | ||
6 | 6 | ||
7 | -public class Chat : MonoBehaviour | 7 | +public class ChatManager : MonoBehaviour { |
8 | -{ | 8 | + |
9 | - public TransportTCP m_transport; | 9 | + List<GameObject> messages = new List<GameObject>(); |
10 | - | 10 | + |
11 | - public ChatText commentTextPrefab; | 11 | + public TransportTCP m_transport; // 네트워크 연결을 담당 |
12 | - | 12 | + |
13 | - public Transform commentHolder; | 13 | + public MessageText m_messageTextPrafab; // 말풍선 |
14 | - | 14 | + |
15 | - public string m_hostAddress = "127.0.0.1"; | 15 | + public Transform m_messageHolder; // 말풍선을 붙일곳 |
16 | - | 16 | + |
17 | - public int m_port = 50763; | 17 | + public string m_hostAddress = "127.0.0.1"; |
18 | - | 18 | + |
19 | - private bool m_isServer = false; | 19 | + public int m_port = 50666; |
20 | - | 20 | + |
21 | - // Use this for initialization | 21 | + private bool m_isHost; // 방장(서버) |
22 | - void Start() | 22 | + |
23 | - { | 23 | + public void UpdateHostAddress(string newAddress) |
24 | - m_transport.onStateChanged += OnEventHandling; | 24 | + { |
25 | - } | 25 | + m_hostAddress = newAddress; |
26 | - | 26 | + } |
27 | - | 27 | + |
28 | - IEnumerator UpdateChatting() | 28 | + // 매프레임마다 패킷큐를 긁어와서 새로운 메시지를 추가 |
29 | - { | 29 | + IEnumerator UpdateMessage() |
30 | - while (true) | 30 | + { |
31 | - { | 31 | + while(true) |
32 | - byte[] buffer = new byte[1400]; | 32 | + { |
33 | - | 33 | + byte[] buffer = new byte[1400]; |
34 | - int recvSize = m_transport.Receive(ref buffer, buffer.Length); | 34 | + |
35 | - if (recvSize > 0) | 35 | + int recvSize = m_transport.Receive(ref buffer,buffer.Length); |
36 | - { | 36 | + |
37 | - string message = System.Text.Encoding.UTF8.GetString(buffer); | 37 | + if(recvSize > 0) |
38 | - Debug.Log("Recv data:" + message); | 38 | + { |
39 | - | 39 | + string message = System.Text.Encoding.UTF8.GetString(buffer); |
40 | - AddComment(message); | 40 | + Debug.Log("Receive: " + message); |
41 | - } | 41 | + AddMessageText(message); |
42 | - | 42 | + } |
43 | - yield return null; | 43 | + yield return null; |
44 | - } | 44 | + } |
45 | - } | 45 | + } |
46 | - | 46 | + |
47 | - | 47 | + // 텍스트를 넘겨주면 프리팹을 찍어내서 말풍선을 추가 |
48 | - public void Send(string message) | 48 | + void AddMessageText(string message) |
49 | - { | 49 | + { |
50 | - message = "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + message; | 50 | + MessageText instance = Instantiate(m_messageTextPrafab,m_messageHolder); |
51 | - | 51 | + |
52 | - byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message); | 52 | + messages.Add(instance.gameObject); |
53 | - | 53 | + instance.SetUp(message); |
54 | - m_transport.Send(buffer, buffer.Length); | 54 | + } |
55 | - | 55 | + |
56 | - AddComment(message); | 56 | + |
57 | - } | 57 | + // 방 만들기 (서버 역할하기) |
58 | - | 58 | + public void CreateRoom() |
59 | - | 59 | + { |
60 | - void AddComment(string message) | 60 | + if(m_transport.StartServer(m_port,1)) |
61 | - { | 61 | + { |
62 | - var newComment = Instantiate(commentTextPrefab, commentHolder); | 62 | + m_isHost = true; |
63 | - newComment.SetUp(message); | 63 | + StartCoroutine("UpdateMessage"); |
64 | - } | 64 | + } |
65 | - void OnApplicationQuit() | 65 | + else |
66 | - { | 66 | + { |
67 | - if (m_transport != null) | 67 | + Debug.LogError("Create a Room Failed"); |
68 | - { | 68 | + } |
69 | - if (m_isServer) | 69 | + } |
70 | - { | 70 | + |
71 | - m_transport.StopServer(); | 71 | + // 클라이언트가 미리 만들어진 방에 가는것 |
72 | - } | 72 | + public void JoinRoom() |
73 | - else | 73 | + { |
74 | - { | 74 | + if(m_transport.Connect(m_hostAddress,m_port)) |
75 | - m_transport.Disconnect(); | 75 | + { |
76 | - } | 76 | + m_isHost = false; |
77 | - } | 77 | + StartCoroutine("UpdateMessage"); |
78 | - } | 78 | + } |
79 | - | 79 | + else |
80 | - public void OnEventHandling(NetEventState state) | 80 | + { |
81 | - { | 81 | + Debug.LogError("Join Room Failed"); |
82 | - switch (state.type) | 82 | + } |
83 | - { | 83 | + } |
84 | - case NetEventType.Connect: | 84 | + |
85 | - AddComment("접속"); | 85 | + public void Leave() |
86 | - Debug.Log("접속"); | 86 | + { |
87 | - break; | 87 | + while(messages.Count > 0) |
88 | - | 88 | + { |
89 | - case NetEventType.Disconnect: | 89 | + var instance = messages[0]; |
90 | - Debug.Log("접속 종료"); | 90 | + messages.RemoveAt(0); |
91 | - AddComment("접속 종료"); | 91 | + Destroy(instance); |
92 | - break; | 92 | + } |
93 | - } | 93 | + |
94 | - } | 94 | + if(m_isHost) |
95 | - | 95 | + { |
96 | - | 96 | + m_transport.StopServer(); |
97 | - public void CreateRoom() | 97 | + } |
98 | - { | 98 | + else |
99 | - m_transport.StartServer(m_port, 1); | 99 | + { |
100 | - m_isServer = true; | 100 | + m_transport.Disconnect(); |
101 | - StartCoroutine("UpdateChatting"); | 101 | + } |
102 | - } | 102 | + |
103 | - | 103 | + StopCoroutine("UpdateMessage"); |
104 | - public void JoinChatRoom() | 104 | + } |
105 | - { | 105 | + |
106 | - bool ret = m_transport.Connect(m_hostAddress, m_port); | 106 | + void OnApplicationQuit() |
107 | - | 107 | + { |
108 | - if (ret) | 108 | + Leave(); |
109 | - { | 109 | + } |
110 | - StartCoroutine("UpdateChatting"); | 110 | + |
111 | - } | 111 | + public void Send(string message) |
112 | - else | 112 | + { |
113 | - { | 113 | + message = "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + message; |
114 | - Debug.LogError("Failed"); | 114 | + |
115 | - } | 115 | + byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message); |
116 | - } | 116 | + |
117 | - | 117 | + m_transport.Send(buffer,buffer.Length); |
118 | - | 118 | + |
119 | - public void Leave() | 119 | + AddMessageText(message); |
120 | - { | 120 | + } |
121 | - if (m_isServer == true) | ||
122 | - { | ||
123 | - m_transport.StopServer(); | ||
124 | - } | ||
125 | - else | ||
126 | - { | ||
127 | - m_transport.Disconnect(); | ||
128 | - } | ||
129 | - | ||
130 | - StopCoroutine("UpdateChatting"); | ||
131 | - } | ||
132 | - | ||
133 | 121 | ||
134 | } | 122 | } | ... | ... |
1 | fileFormatVersion: 2 | 1 | fileFormatVersion: 2 |
2 | -guid: e3c2e0a12ace649978c3c197ab4726a6 | 2 | +guid: 8240f60e023c1a0419f8a05cf380e33a |
3 | -timeCreated: 1517221132 | 3 | +timeCreated: 1517461505 |
4 | -licenseType: Pro | 4 | +licenseType: Free |
5 | MonoImporter: | 5 | MonoImporter: |
6 | externalObjects: {} | 6 | externalObjects: {} |
7 | serializedVersion: 2 | 7 | serializedVersion: 2 | ... | ... |
... | @@ -3,12 +3,13 @@ using System.Collections.Generic; | ... | @@ -3,12 +3,13 @@ using System.Collections.Generic; |
3 | using UnityEngine; | 3 | using UnityEngine; |
4 | using UnityEngine.UI; | 4 | using UnityEngine.UI; |
5 | 5 | ||
6 | -public class ChatText : MonoBehaviour { | 6 | +public class MessageText : MonoBehaviour { |
7 | + | ||
8 | + public Text messageText; | ||
7 | 9 | ||
8 | - public Text commentText; | ||
9 | public void SetUp(string message) | 10 | public void SetUp(string message) |
10 | { | 11 | { |
11 | - commentText.text = message; | 12 | + messageText.text = message; |
12 | } | 13 | } |
13 | 14 | ||
14 | } | 15 | } | ... | ... |
1 | fileFormatVersion: 2 | 1 | fileFormatVersion: 2 |
2 | -guid: d74e03325f4c74af5986ac0df47e31a3 | 2 | +guid: f76bbd8dd17bc35488b1ca48227bbca3 |
3 | -timeCreated: 1517244266 | 3 | +timeCreated: 1517460675 |
4 | -licenseType: Pro | 4 | +licenseType: Free |
5 | MonoImporter: | 5 | MonoImporter: |
6 | externalObjects: {} | 6 | externalObjects: {} |
7 | serializedVersion: 2 | 7 | serializedVersion: 2 | ... | ... |
... | @@ -147,6 +147,7 @@ public class TransportTCP : MonoBehaviour | ... | @@ -147,6 +147,7 @@ public class TransportTCP : MonoBehaviour |
147 | state.type = NetEventType.Connect; | 147 | state.type = NetEventType.Connect; |
148 | state.result = (isConnected == true) ? NetEventResult.Success : NetEventResult.Failure; | 148 | state.result = (isConnected == true) ? NetEventResult.Success : NetEventResult.Failure; |
149 | 149 | ||
150 | + onStateChanged(state); | ||
150 | Debug.Log("Event Handler Called"); | 151 | Debug.Log("Event Handler Called"); |
151 | } | 152 | } |
152 | 153 | ... | ... |
-
Please register or login to post a comment