I_Jemin

Network Chatting Prject

Showing 37 changed files with 3692 additions and 133 deletions
...@@ -18,6 +18,17 @@ ...@@ -18,6 +18,17 @@
18 # Visual Studio 2015 cache directory 18 # Visual Studio 2015 cache directory
19 /Basic Network Library/.vs/ 19 /Basic Network Library/.vs/
20 20
21 +/Network Chatting/[Ll]ibrary/
22 +/Network Chatting/[Tt]emp/
23 +/Network Chatting/[Oo]bj/
24 +/Network Chatting/[Bb]uild/
25 +/Network Chatting/[Bb]uilds/
26 +/Network Chatting/Assets/AssetStoreTools*
27 +
28 +# Visual Studio 2015 cache directory
29 +/Network Chatting/.vs/
30 +
31 +
21 # Autogenerated VS/MD/Consulo solution and project files 32 # Autogenerated VS/MD/Consulo solution and project files
22 ExportedObj/ 33 ExportedObj/
23 .consulo/ 34 .consulo/
......
1 -
2 -// TCP로 통신할 때는 정의를 유효하게 하여 주십시오.
3 -#define USE_TRANSPORT_TCP
4 -
5 -using UnityEngine;
6 -using System.Collections;
7 -using System.Net;
8 -
9 -
10 -public class LibrarySample : MonoBehaviour {
11 -
12 - // 통신 모듈.
13 - public GameObject transportTcpPrefab;
14 - public GameObject transportUdpPrefab;
15 -
16 - // 통신용 변수.
17 -#if USE_TRANSPORT_TCP
18 - TransportTCP m_transport = null;
19 -#else
20 - TransportUDP m_transport = null;
21 -#endif
22 -
23 - // 접속할 IP 주소.
24 - private string m_strings = "";
25 -
26 - // 접속할 포트 번호.
27 - private const int m_port = 50765;
28 -
29 - private const int m_mtu = 1400;
30 -
31 - private bool isSelected = false;
32 -
33 -
34 - // Use this for initialization
35 - void Start ()
36 - {
37 - // Transport 클래스의 컴포넌트를 가져온다.
38 -#if USE_TRANSPORT_TCP
39 - GameObject obj = GameObject.Instantiate(transportTcpPrefab) as GameObject;
40 - m_transport = obj.GetComponent<TransportTCP>();
41 -#else
42 - GameObject obj = GameObject.Instantiate(transportUdpPrefab) as GameObject;
43 - m_transport = obj.GetComponent<TransportUDP>();
44 -#endif
45 -
46 - IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
47 - System.Net.IPAddress hostAddress = hostEntry.AddressList[0];
48 - Debug.Log(hostEntry.HostName);
49 - m_strings = hostAddress.ToString();
50 - }
51 -
52 - // Update is called once per frame
53 - void Update ()
54 - {
55 - if (m_transport != null && m_transport.isConnected == true) {
56 - byte[] buffer = new byte[m_mtu];
57 - int recvSize = m_transport.Receive(ref buffer, buffer.Length);
58 - if (recvSize > 0) {
59 - string message = System.Text.Encoding.UTF8.GetString(buffer);
60 - Debug.Log(message);
61 - }
62 - }
63 - }
64 -
65 - void OnGUI()
66 - {
67 - if (isSelected == false) {
68 - OnGUISelectHost();
69 - }
70 - else {
71 - if (m_transport.isServer == true) {
72 - OnGUIServer();
73 - }
74 - else {
75 - OnGUIClient();
76 - }
77 - }
78 - }
79 -
80 - void OnGUISelectHost()
81 - {
82 -#if USE_TRANSPORT_TCP
83 - if (GUI.Button (new Rect (20,40, 150,20), "Launch server.")) {
84 -#else
85 - if (GUI.Button (new Rect (20,40, 150,20), "Launch Listener.")) {
86 -#endif
87 - m_transport.StartServer(m_port, 1);
88 - isSelected = true;
89 - }
90 -
91 - // 클라이언트를 선택했을 때 접속할 서버 주소를 입력합니다.
92 - m_strings = GUI.TextField(new Rect(20, 100, 200, 20), m_strings);
93 -#if USE_TRANSPORT_TCP
94 - if (GUI.Button (new Rect (20,70,150,20), "Connect to server")) {
95 -#else
96 - if (GUI.Button (new Rect (20,70,150,20), "Connect to terminal")) {
97 -#endif
98 - m_transport.Connect(m_strings, m_port);
99 - isSelected = true;
100 - m_strings = "";
101 - }
102 - }
103 -
104 - void OnGUIServer()
105 - {
106 -#if USE_TRANSPORT_TCP
107 - if (GUI.Button (new Rect (20,60, 150,20), "Stop server")) {
108 -#else
109 - if (GUI.Button (new Rect (20,60, 150,20), "Stop Listener")) {
110 -#endif
111 - m_transport.StopServer();
112 - isSelected = false;
113 - m_strings = "";
114 - }
115 - }
116 -
117 -
118 - void OnGUIClient()
119 - {
120 - // 클라이언트를 선택했을 때 접속할 서버의 주소를 입력합니다.
121 - if (GUI.Button (new Rect (20,70,150,20), "Send message")) {
122 - byte[] buffer = System.Text.Encoding.UTF8.GetBytes("Hellow, this is client.");
123 - m_transport.Send(buffer, buffer.Length);
124 - }
125 -
126 - if (GUI.Button (new Rect (20,100, 150,20), "Disconnect")) {
127 - m_transport.Disconnect();
128 - isSelected = false;
129 - m_strings = "";
130 - }
131 - }
132 -
133 -}
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "files.exclude":
3 + {
4 + "**/.DS_Store":true,
5 + "**/.git":true,
6 + "**/.gitignore":true,
7 + "**/.gitmodules":true,
8 + "**/*.booproj":true,
9 + "**/*.pidb":true,
10 + "**/*.suo":true,
11 + "**/*.user":true,
12 + "**/*.userprefs":true,
13 + "**/*.unityproj":true,
14 + "**/*.dll":true,
15 + "**/*.exe":true,
16 + "**/*.pdf":true,
17 + "**/*.mid":true,
18 + "**/*.midi":true,
19 + "**/*.wav":true,
20 + "**/*.gif":true,
21 + "**/*.ico":true,
22 + "**/*.jpg":true,
23 + "**/*.jpeg":true,
24 + "**/*.png":true,
25 + "**/*.psd":true,
26 + "**/*.tga":true,
27 + "**/*.tif":true,
28 + "**/*.tiff":true,
29 + "**/*.3ds":true,
30 + "**/*.3DS":true,
31 + "**/*.fbx":true,
32 + "**/*.FBX":true,
33 + "**/*.lxo":true,
34 + "**/*.LXO":true,
35 + "**/*.ma":true,
36 + "**/*.MA":true,
37 + "**/*.obj":true,
38 + "**/*.OBJ":true,
39 + "**/*.asset":true,
40 + "**/*.cubemap":true,
41 + "**/*.flare":true,
42 + "**/*.mat":true,
43 + "**/*.meta":true,
44 + "**/*.prefab":true,
45 + "**/*.unity":true,
46 + "build/":true,
47 + "Build/":true,
48 + "Library/":true,
49 + "library/":true,
50 + "obj/":true,
51 + "Obj/":true,
52 + "ProjectSettings/":true,
53 + "temp/":true,
54 + "Temp/":true
55 + }
56 +}
...\ No newline at end of file ...\ No newline at end of file
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!1001 &100100000
4 +Prefab:
5 + m_ObjectHideFlags: 1
6 + serializedVersion: 2
7 + m_Modification:
8 + m_TransformParent: {fileID: 0}
9 + m_Modifications: []
10 + m_RemovedComponents: []
11 + m_ParentPrefab: {fileID: 0}
12 + m_RootGameObject: {fileID: 1351082387170804}
13 + m_IsPrefabParent: 1
14 +--- !u!1 &1351082387170804
15 +GameObject:
16 + m_ObjectHideFlags: 0
17 + m_PrefabParentObject: {fileID: 0}
18 + m_PrefabInternal: {fileID: 100100000}
19 + serializedVersion: 5
20 + m_Component:
21 + - component: {fileID: 224026180460817448}
22 + - component: {fileID: 222343435350097842}
23 + - component: {fileID: 114640140560748198}
24 + - component: {fileID: 114312857566104806}
25 + m_Layer: 5
26 + m_Name: Comment
27 + m_TagString: Untagged
28 + m_Icon: {fileID: 0}
29 + m_NavMeshLayer: 0
30 + m_StaticEditorFlags: 0
31 + m_IsActive: 1
32 +--- !u!1 &1889659296805252
33 +GameObject:
34 + m_ObjectHideFlags: 0
35 + m_PrefabParentObject: {fileID: 0}
36 + m_PrefabInternal: {fileID: 100100000}
37 + serializedVersion: 5
38 + m_Component:
39 + - component: {fileID: 224999107880086880}
40 + - component: {fileID: 222081966344987208}
41 + - component: {fileID: 114206746021236310}
42 + m_Layer: 5
43 + m_Name: Text
44 + m_TagString: Untagged
45 + m_Icon: {fileID: 0}
46 + m_NavMeshLayer: 0
47 + m_StaticEditorFlags: 0
48 + m_IsActive: 1
49 +--- !u!114 &114206746021236310
50 +MonoBehaviour:
51 + m_ObjectHideFlags: 1
52 + m_PrefabParentObject: {fileID: 0}
53 + m_PrefabInternal: {fileID: 100100000}
54 + m_GameObject: {fileID: 1889659296805252}
55 + m_Enabled: 1
56 + m_EditorHideFlags: 0
57 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
58 + m_Name:
59 + m_EditorClassIdentifier:
60 + m_Material: {fileID: 0}
61 + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
62 + m_RaycastTarget: 1
63 + m_OnCullStateChanged:
64 + m_PersistentCalls:
65 + m_Calls: []
66 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
67 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
68 + m_FontData:
69 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
70 + m_FontSize: 14
71 + m_FontStyle: 0
72 + m_BestFit: 0
73 + m_MinSize: 10
74 + m_MaxSize: 40
75 + m_Alignment: 0
76 + m_AlignByGeometry: 0
77 + m_RichText: 1
78 + m_HorizontalOverflow: 0
79 + m_VerticalOverflow: 0
80 + m_LineSpacing: 1
81 + m_Text: Sample Text
82 +--- !u!114 &114312857566104806
83 +MonoBehaviour:
84 + m_ObjectHideFlags: 1
85 + m_PrefabParentObject: {fileID: 0}
86 + m_PrefabInternal: {fileID: 100100000}
87 + m_GameObject: {fileID: 1351082387170804}
88 + m_Enabled: 1
89 + m_EditorHideFlags: 0
90 + m_Script: {fileID: 11500000, guid: e3c2e0a12ace649978c3c197ab4726a6, type: 3}
91 + m_Name:
92 + m_EditorClassIdentifier:
93 + commentText: {fileID: 114206746021236310}
94 +--- !u!114 &114640140560748198
95 +MonoBehaviour:
96 + m_ObjectHideFlags: 1
97 + m_PrefabParentObject: {fileID: 0}
98 + m_PrefabInternal: {fileID: 100100000}
99 + m_GameObject: {fileID: 1351082387170804}
100 + m_Enabled: 1
101 + m_EditorHideFlags: 0
102 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
103 + m_Name:
104 + m_EditorClassIdentifier:
105 + m_Material: {fileID: 0}
106 + m_Color: {r: 1, g: 1, b: 1, a: 1}
107 + m_RaycastTarget: 1
108 + m_OnCullStateChanged:
109 + m_PersistentCalls:
110 + m_Calls: []
111 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
112 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
113 + m_Sprite: {fileID: 0}
114 + m_Type: 0
115 + m_PreserveAspect: 0
116 + m_FillCenter: 1
117 + m_FillMethod: 4
118 + m_FillAmount: 1
119 + m_FillClockwise: 1
120 + m_FillOrigin: 0
121 +--- !u!222 &222081966344987208
122 +CanvasRenderer:
123 + m_ObjectHideFlags: 1
124 + m_PrefabParentObject: {fileID: 0}
125 + m_PrefabInternal: {fileID: 100100000}
126 + m_GameObject: {fileID: 1889659296805252}
127 +--- !u!222 &222343435350097842
128 +CanvasRenderer:
129 + m_ObjectHideFlags: 1
130 + m_PrefabParentObject: {fileID: 0}
131 + m_PrefabInternal: {fileID: 100100000}
132 + m_GameObject: {fileID: 1351082387170804}
133 +--- !u!224 &224026180460817448
134 +RectTransform:
135 + m_ObjectHideFlags: 1
136 + m_PrefabParentObject: {fileID: 0}
137 + m_PrefabInternal: {fileID: 100100000}
138 + m_GameObject: {fileID: 1351082387170804}
139 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
140 + m_LocalPosition: {x: 0, y: 0, z: 0}
141 + m_LocalScale: {x: 1, y: 1, z: 1}
142 + m_Children:
143 + - {fileID: 224999107880086880}
144 + m_Father: {fileID: 0}
145 + m_RootOrder: 0
146 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
147 + m_AnchorMin: {x: 0, y: 0}
148 + m_AnchorMax: {x: 0, y: 0}
149 + m_AnchoredPosition: {x: 0, y: 0}
150 + m_SizeDelta: {x: 200, y: 50}
151 + m_Pivot: {x: 0.5, y: 0.5}
152 +--- !u!224 &224999107880086880
153 +RectTransform:
154 + m_ObjectHideFlags: 1
155 + m_PrefabParentObject: {fileID: 0}
156 + m_PrefabInternal: {fileID: 100100000}
157 + m_GameObject: {fileID: 1889659296805252}
158 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
159 + m_LocalPosition: {x: 0, y: 0, z: 0}
160 + m_LocalScale: {x: 1, y: 1, z: 1}
161 + m_Children: []
162 + m_Father: {fileID: 224026180460817448}
163 + m_RootOrder: 0
164 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
165 + m_AnchorMin: {x: 0, y: 0}
166 + m_AnchorMax: {x: 1, y: 1}
167 + m_AnchoredPosition: {x: 0, y: 0}
168 + m_SizeDelta: {x: 0, y: 0}
169 + m_Pivot: {x: 0.5, y: 0.5}
1 +fileFormatVersion: 2
2 +guid: b4721aef43e524b91936d391647d3ae1
3 +timeCreated: 1517239050
4 +licenseType: Pro
5 +NativeFormatImporter:
6 + externalObjects: {}
7 + mainObjectFileID: 100100000
8 + userData:
9 + assetBundleName:
10 + assetBundleVariant:
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!29 &1
4 +OcclusionCullingSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 2
7 + m_OcclusionBakeSettings:
8 + smallestOccluder: 5
9 + smallestHole: 0.25
10 + backfaceThreshold: 100
11 + m_SceneGUID: 00000000000000000000000000000000
12 + m_OcclusionCullingData: {fileID: 0}
13 +--- !u!104 &2
14 +RenderSettings:
15 + m_ObjectHideFlags: 0
16 + serializedVersion: 8
17 + m_Fog: 0
18 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 + m_FogMode: 3
20 + m_FogDensity: 0.01
21 + m_LinearFogStart: 0
22 + m_LinearFogEnd: 300
23 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 + m_AmbientIntensity: 1
27 + m_AmbientMode: 0
28 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 + m_HaloStrength: 0.5
31 + m_FlareStrength: 1
32 + m_FlareFadeSpeed: 3
33 + m_HaloTexture: {fileID: 0}
34 + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 + m_DefaultReflectionMode: 0
36 + m_DefaultReflectionResolution: 128
37 + m_ReflectionBounces: 1
38 + m_ReflectionIntensity: 1
39 + m_CustomReflection: {fileID: 0}
40 + m_Sun: {fileID: 0}
41 + m_IndirectSpecularColor: {r: 0.4465934, g: 0.49642956, b: 0.57482487, a: 1}
42 +--- !u!157 &3
43 +LightmapSettings:
44 + m_ObjectHideFlags: 0
45 + serializedVersion: 11
46 + m_GIWorkflowMode: 0
47 + m_GISettings:
48 + serializedVersion: 2
49 + m_BounceScale: 1
50 + m_IndirectOutputScale: 1
51 + m_AlbedoBoost: 1
52 + m_TemporalCoherenceThreshold: 1
53 + m_EnvironmentLightingMode: 0
54 + m_EnableBakedLightmaps: 1
55 + m_EnableRealtimeLightmaps: 1
56 + m_LightmapEditorSettings:
57 + serializedVersion: 9
58 + m_Resolution: 2
59 + m_BakeResolution: 40
60 + m_TextureWidth: 1024
61 + m_TextureHeight: 1024
62 + m_AO: 0
63 + m_AOMaxDistance: 1
64 + m_CompAOExponent: 1
65 + m_CompAOExponentDirect: 0
66 + m_Padding: 2
67 + m_LightmapParameters: {fileID: 0}
68 + m_LightmapsBakeMode: 1
69 + m_TextureCompression: 1
70 + m_FinalGather: 0
71 + m_FinalGatherFiltering: 1
72 + m_FinalGatherRayCount: 256
73 + m_ReflectionCompression: 2
74 + m_MixedBakeMode: 2
75 + m_BakeBackend: 0
76 + m_PVRSampling: 1
77 + m_PVRDirectSampleCount: 32
78 + m_PVRSampleCount: 500
79 + m_PVRBounces: 2
80 + m_PVRFilterTypeDirect: 0
81 + m_PVRFilterTypeIndirect: 0
82 + m_PVRFilterTypeAO: 0
83 + m_PVRFilteringMode: 1
84 + m_PVRCulling: 1
85 + m_PVRFilteringGaussRadiusDirect: 1
86 + m_PVRFilteringGaussRadiusIndirect: 5
87 + m_PVRFilteringGaussRadiusAO: 2
88 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5
89 + m_PVRFilteringAtrousPositionSigmaIndirect: 2
90 + m_PVRFilteringAtrousPositionSigmaAO: 1
91 + m_ShowResolutionOverlay: 1
92 + m_LightingDataAsset: {fileID: 0}
93 + m_UseShadowmask: 1
94 +--- !u!196 &4
95 +NavMeshSettings:
96 + serializedVersion: 2
97 + m_ObjectHideFlags: 0
98 + m_BuildSettings:
99 + serializedVersion: 2
100 + agentTypeID: 0
101 + agentRadius: 0.5
102 + agentHeight: 2
103 + agentSlope: 45
104 + agentClimb: 0.4
105 + ledgeDropHeight: 0
106 + maxJumpAcrossDistance: 0
107 + minRegionArea: 2
108 + manualCellSize: 0
109 + cellSize: 0.16666667
110 + manualTileSize: 0
111 + tileSize: 256
112 + accuratePlacement: 0
113 + debug:
114 + m_Flags: 0
115 + m_NavMeshData: {fileID: 0}
116 +--- !u!1 &201183162
117 +GameObject:
118 + m_ObjectHideFlags: 0
119 + m_PrefabParentObject: {fileID: 0}
120 + m_PrefabInternal: {fileID: 0}
121 + serializedVersion: 5
122 + m_Component:
123 + - component: {fileID: 201183164}
124 + - component: {fileID: 201183163}
125 + m_Layer: 0
126 + m_Name: Directional Light
127 + m_TagString: Untagged
128 + m_Icon: {fileID: 0}
129 + m_NavMeshLayer: 0
130 + m_StaticEditorFlags: 0
131 + m_IsActive: 1
132 +--- !u!108 &201183163
133 +Light:
134 + m_ObjectHideFlags: 0
135 + m_PrefabParentObject: {fileID: 0}
136 + m_PrefabInternal: {fileID: 0}
137 + m_GameObject: {fileID: 201183162}
138 + m_Enabled: 1
139 + serializedVersion: 8
140 + m_Type: 1
141 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
142 + m_Intensity: 1
143 + m_Range: 10
144 + m_SpotAngle: 30
145 + m_CookieSize: 10
146 + m_Shadows:
147 + m_Type: 2
148 + m_Resolution: -1
149 + m_CustomResolution: -1
150 + m_Strength: 1
151 + m_Bias: 0.05
152 + m_NormalBias: 0.4
153 + m_NearPlane: 0.2
154 + m_Cookie: {fileID: 0}
155 + m_DrawHalo: 0
156 + m_Flare: {fileID: 0}
157 + m_RenderMode: 0
158 + m_CullingMask:
159 + serializedVersion: 2
160 + m_Bits: 4294967295
161 + m_Lightmapping: 4
162 + m_AreaSize: {x: 1, y: 1}
163 + m_BounceIntensity: 1
164 + m_ColorTemperature: 6570
165 + m_UseColorTemperature: 0
166 + m_ShadowRadius: 0
167 + m_ShadowAngle: 0
168 +--- !u!4 &201183164
169 +Transform:
170 + m_ObjectHideFlags: 0
171 + m_PrefabParentObject: {fileID: 0}
172 + m_PrefabInternal: {fileID: 0}
173 + m_GameObject: {fileID: 201183162}
174 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
175 + m_LocalPosition: {x: 0, y: 3, z: 0}
176 + m_LocalScale: {x: 1, y: 1, z: 1}
177 + m_Children: []
178 + m_Father: {fileID: 0}
179 + m_RootOrder: 1
180 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
181 +--- !u!1 &351038151
182 +GameObject:
183 + m_ObjectHideFlags: 0
184 + m_PrefabParentObject: {fileID: 0}
185 + m_PrefabInternal: {fileID: 0}
186 + serializedVersion: 5
187 + m_Component:
188 + - component: {fileID: 351038155}
189 + - component: {fileID: 351038154}
190 + - component: {fileID: 351038153}
191 + - component: {fileID: 351038152}
192 + m_Layer: 5
193 + m_Name: Canvas
194 + m_TagString: Untagged
195 + m_Icon: {fileID: 0}
196 + m_NavMeshLayer: 0
197 + m_StaticEditorFlags: 0
198 + m_IsActive: 1
199 +--- !u!114 &351038152
200 +MonoBehaviour:
201 + m_ObjectHideFlags: 0
202 + m_PrefabParentObject: {fileID: 0}
203 + m_PrefabInternal: {fileID: 0}
204 + m_GameObject: {fileID: 351038151}
205 + m_Enabled: 1
206 + m_EditorHideFlags: 0
207 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
208 + m_Name:
209 + m_EditorClassIdentifier:
210 + m_IgnoreReversedGraphics: 1
211 + m_BlockingObjects: 0
212 + m_BlockingMask:
213 + serializedVersion: 2
214 + m_Bits: 4294967295
215 +--- !u!114 &351038153
216 +MonoBehaviour:
217 + m_ObjectHideFlags: 0
218 + m_PrefabParentObject: {fileID: 0}
219 + m_PrefabInternal: {fileID: 0}
220 + m_GameObject: {fileID: 351038151}
221 + m_Enabled: 1
222 + m_EditorHideFlags: 0
223 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
224 + m_Name:
225 + m_EditorClassIdentifier:
226 + m_UiScaleMode: 0
227 + m_ReferencePixelsPerUnit: 100
228 + m_ScaleFactor: 1
229 + m_ReferenceResolution: {x: 800, y: 600}
230 + m_ScreenMatchMode: 0
231 + m_MatchWidthOrHeight: 0
232 + m_PhysicalUnit: 3
233 + m_FallbackScreenDPI: 96
234 + m_DefaultSpriteDPI: 96
235 + m_DynamicPixelsPerUnit: 1
236 +--- !u!223 &351038154
237 +Canvas:
238 + m_ObjectHideFlags: 0
239 + m_PrefabParentObject: {fileID: 0}
240 + m_PrefabInternal: {fileID: 0}
241 + m_GameObject: {fileID: 351038151}
242 + m_Enabled: 1
243 + serializedVersion: 3
244 + m_RenderMode: 0
245 + m_Camera: {fileID: 0}
246 + m_PlaneDistance: 100
247 + m_PixelPerfect: 0
248 + m_ReceivesEvents: 1
249 + m_OverrideSorting: 0
250 + m_OverridePixelPerfect: 0
251 + m_SortingBucketNormalizedSize: 0
252 + m_AdditionalShaderChannelsFlag: 0
253 + m_SortingLayerID: 0
254 + m_SortingOrder: 0
255 + m_TargetDisplay: 0
256 +--- !u!224 &351038155
257 +RectTransform:
258 + m_ObjectHideFlags: 0
259 + m_PrefabParentObject: {fileID: 0}
260 + m_PrefabInternal: {fileID: 0}
261 + m_GameObject: {fileID: 351038151}
262 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
263 + m_LocalPosition: {x: 0, y: 0, z: 0}
264 + m_LocalScale: {x: 0, y: 0, z: 0}
265 + m_Children:
266 + - {fileID: 1443135693}
267 + - {fileID: 1763030733}
268 + - {fileID: 650336558}
269 + m_Father: {fileID: 0}
270 + m_RootOrder: 2
271 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
272 + m_AnchorMin: {x: 0, y: 0}
273 + m_AnchorMax: {x: 0, y: 0}
274 + m_AnchoredPosition: {x: 0, y: 0}
275 + m_SizeDelta: {x: 0, y: 0}
276 + m_Pivot: {x: 0, y: 0}
277 +--- !u!1 &650336557
278 +GameObject:
279 + m_ObjectHideFlags: 0
280 + m_PrefabParentObject: {fileID: 0}
281 + m_PrefabInternal: {fileID: 0}
282 + serializedVersion: 5
283 + m_Component:
284 + - component: {fileID: 650336558}
285 + - component: {fileID: 650336561}
286 + - component: {fileID: 650336560}
287 + - component: {fileID: 650336559}
288 + m_Layer: 5
289 + m_Name: Join Room
290 + m_TagString: Untagged
291 + m_Icon: {fileID: 0}
292 + m_NavMeshLayer: 0
293 + m_StaticEditorFlags: 0
294 + m_IsActive: 1
295 +--- !u!224 &650336558
296 +RectTransform:
297 + m_ObjectHideFlags: 0
298 + m_PrefabParentObject: {fileID: 0}
299 + m_PrefabInternal: {fileID: 0}
300 + m_GameObject: {fileID: 650336557}
301 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
302 + m_LocalPosition: {x: 0, y: 0, z: 0}
303 + m_LocalScale: {x: 1, y: 1, z: 1}
304 + m_Children:
305 + - {fileID: 1464550524}
306 + m_Father: {fileID: 351038155}
307 + m_RootOrder: 2
308 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
309 + m_AnchorMin: {x: 0.5, y: 0.5}
310 + m_AnchorMax: {x: 0.5, y: 0.5}
311 + m_AnchoredPosition: {x: 181, y: -121}
312 + m_SizeDelta: {x: 160, y: 30}
313 + m_Pivot: {x: 0.5, y: 0.5}
314 +--- !u!114 &650336559
315 +MonoBehaviour:
316 + m_ObjectHideFlags: 0
317 + m_PrefabParentObject: {fileID: 0}
318 + m_PrefabInternal: {fileID: 0}
319 + m_GameObject: {fileID: 650336557}
320 + m_Enabled: 1
321 + m_EditorHideFlags: 0
322 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
323 + m_Name:
324 + m_EditorClassIdentifier:
325 + m_Navigation:
326 + m_Mode: 3
327 + m_SelectOnUp: {fileID: 0}
328 + m_SelectOnDown: {fileID: 0}
329 + m_SelectOnLeft: {fileID: 0}
330 + m_SelectOnRight: {fileID: 0}
331 + m_Transition: 1
332 + m_Colors:
333 + m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
334 + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
335 + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
336 + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
337 + m_ColorMultiplier: 1
338 + m_FadeDuration: 0.1
339 + m_SpriteState:
340 + m_HighlightedSprite: {fileID: 0}
341 + m_PressedSprite: {fileID: 0}
342 + m_DisabledSprite: {fileID: 0}
343 + m_AnimationTriggers:
344 + m_NormalTrigger: Normal
345 + m_HighlightedTrigger: Highlighted
346 + m_PressedTrigger: Pressed
347 + m_DisabledTrigger: Disabled
348 + m_Interactable: 1
349 + m_TargetGraphic: {fileID: 650336560}
350 + m_OnClick:
351 + m_PersistentCalls:
352 + m_Calls:
353 + - m_Target: {fileID: 2036355376}
354 + m_MethodName: JoinChatRoom
355 + m_Mode: 1
356 + m_Arguments:
357 + m_ObjectArgument: {fileID: 0}
358 + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
359 + m_IntArgument: 0
360 + m_FloatArgument: 0
361 + m_StringArgument:
362 + m_BoolArgument: 0
363 + m_CallState: 2
364 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
365 + Culture=neutral, PublicKeyToken=null
366 +--- !u!114 &650336560
367 +MonoBehaviour:
368 + m_ObjectHideFlags: 0
369 + m_PrefabParentObject: {fileID: 0}
370 + m_PrefabInternal: {fileID: 0}
371 + m_GameObject: {fileID: 650336557}
372 + m_Enabled: 1
373 + m_EditorHideFlags: 0
374 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
375 + m_Name:
376 + m_EditorClassIdentifier:
377 + m_Material: {fileID: 0}
378 + m_Color: {r: 1, g: 1, b: 1, a: 1}
379 + m_RaycastTarget: 1
380 + m_OnCullStateChanged:
381 + m_PersistentCalls:
382 + m_Calls: []
383 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
384 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
385 + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
386 + m_Type: 1
387 + m_PreserveAspect: 0
388 + m_FillCenter: 1
389 + m_FillMethod: 4
390 + m_FillAmount: 1
391 + m_FillClockwise: 1
392 + m_FillOrigin: 0
393 +--- !u!222 &650336561
394 +CanvasRenderer:
395 + m_ObjectHideFlags: 0
396 + m_PrefabParentObject: {fileID: 0}
397 + m_PrefabInternal: {fileID: 0}
398 + m_GameObject: {fileID: 650336557}
399 +--- !u!1 &1297907495
400 +GameObject:
401 + m_ObjectHideFlags: 0
402 + m_PrefabParentObject: {fileID: 0}
403 + m_PrefabInternal: {fileID: 0}
404 + serializedVersion: 5
405 + m_Component:
406 + - component: {fileID: 1297907498}
407 + - component: {fileID: 1297907497}
408 + - component: {fileID: 1297907496}
409 + m_Layer: 0
410 + m_Name: EventSystem
411 + m_TagString: Untagged
412 + m_Icon: {fileID: 0}
413 + m_NavMeshLayer: 0
414 + m_StaticEditorFlags: 0
415 + m_IsActive: 1
416 +--- !u!114 &1297907496
417 +MonoBehaviour:
418 + m_ObjectHideFlags: 0
419 + m_PrefabParentObject: {fileID: 0}
420 + m_PrefabInternal: {fileID: 0}
421 + m_GameObject: {fileID: 1297907495}
422 + m_Enabled: 1
423 + m_EditorHideFlags: 0
424 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
425 + m_Name:
426 + m_EditorClassIdentifier:
427 + m_HorizontalAxis: Horizontal
428 + m_VerticalAxis: Vertical
429 + m_SubmitButton: Submit
430 + m_CancelButton: Cancel
431 + m_InputActionsPerSecond: 10
432 + m_RepeatDelay: 0.5
433 + m_ForceModuleActive: 0
434 +--- !u!114 &1297907497
435 +MonoBehaviour:
436 + m_ObjectHideFlags: 0
437 + m_PrefabParentObject: {fileID: 0}
438 + m_PrefabInternal: {fileID: 0}
439 + m_GameObject: {fileID: 1297907495}
440 + m_Enabled: 1
441 + m_EditorHideFlags: 0
442 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
443 + m_Name:
444 + m_EditorClassIdentifier:
445 + m_FirstSelected: {fileID: 0}
446 + m_sendNavigationEvents: 1
447 + m_DragThreshold: 5
448 +--- !u!4 &1297907498
449 +Transform:
450 + m_ObjectHideFlags: 0
451 + m_PrefabParentObject: {fileID: 0}
452 + m_PrefabInternal: {fileID: 0}
453 + m_GameObject: {fileID: 1297907495}
454 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
455 + m_LocalPosition: {x: 0, y: 0, z: 0}
456 + m_LocalScale: {x: 1, y: 1, z: 1}
457 + m_Children: []
458 + m_Father: {fileID: 0}
459 + m_RootOrder: 3
460 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
461 +--- !u!1 &1350433203
462 +GameObject:
463 + m_ObjectHideFlags: 0
464 + m_PrefabParentObject: {fileID: 0}
465 + m_PrefabInternal: {fileID: 0}
466 + serializedVersion: 5
467 + m_Component:
468 + - component: {fileID: 1350433204}
469 + - component: {fileID: 1350433206}
470 + - component: {fileID: 1350433205}
471 + m_Layer: 5
472 + m_Name: Text
473 + m_TagString: Untagged
474 + m_Icon: {fileID: 0}
475 + m_NavMeshLayer: 0
476 + m_StaticEditorFlags: 0
477 + m_IsActive: 1
478 +--- !u!224 &1350433204
479 +RectTransform:
480 + m_ObjectHideFlags: 0
481 + m_PrefabParentObject: {fileID: 0}
482 + m_PrefabInternal: {fileID: 0}
483 + m_GameObject: {fileID: 1350433203}
484 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
485 + m_LocalPosition: {x: 0, y: 0, z: 0}
486 + m_LocalScale: {x: 1, y: 1, z: 1}
487 + m_Children: []
488 + m_Father: {fileID: 1763030733}
489 + m_RootOrder: 0
490 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
491 + m_AnchorMin: {x: 0, y: 0}
492 + m_AnchorMax: {x: 1, y: 1}
493 + m_AnchoredPosition: {x: 0, y: 0}
494 + m_SizeDelta: {x: 0, y: 0}
495 + m_Pivot: {x: 0.5, y: 0.5}
496 +--- !u!114 &1350433205
497 +MonoBehaviour:
498 + m_ObjectHideFlags: 0
499 + m_PrefabParentObject: {fileID: 0}
500 + m_PrefabInternal: {fileID: 0}
501 + m_GameObject: {fileID: 1350433203}
502 + m_Enabled: 1
503 + m_EditorHideFlags: 0
504 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
505 + m_Name:
506 + m_EditorClassIdentifier:
507 + m_Material: {fileID: 0}
508 + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
509 + m_RaycastTarget: 1
510 + m_OnCullStateChanged:
511 + m_PersistentCalls:
512 + m_Calls: []
513 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
514 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
515 + m_FontData:
516 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
517 + m_FontSize: 14
518 + m_FontStyle: 0
519 + m_BestFit: 0
520 + m_MinSize: 10
521 + m_MaxSize: 40
522 + m_Alignment: 4
523 + m_AlignByGeometry: 0
524 + m_RichText: 1
525 + m_HorizontalOverflow: 0
526 + m_VerticalOverflow: 0
527 + m_LineSpacing: 1
528 + m_Text: Button
529 +--- !u!222 &1350433206
530 +CanvasRenderer:
531 + m_ObjectHideFlags: 0
532 + m_PrefabParentObject: {fileID: 0}
533 + m_PrefabInternal: {fileID: 0}
534 + m_GameObject: {fileID: 1350433203}
535 +--- !u!1 &1443135692
536 +GameObject:
537 + m_ObjectHideFlags: 0
538 + m_PrefabParentObject: {fileID: 0}
539 + m_PrefabInternal: {fileID: 0}
540 + serializedVersion: 5
541 + m_Component:
542 + - component: {fileID: 1443135693}
543 + - component: {fileID: 1443135696}
544 + - component: {fileID: 1443135695}
545 + - component: {fileID: 1443135694}
546 + m_Layer: 5
547 + m_Name: Panel
548 + m_TagString: Untagged
549 + m_Icon: {fileID: 0}
550 + m_NavMeshLayer: 0
551 + m_StaticEditorFlags: 0
552 + m_IsActive: 1
553 +--- !u!224 &1443135693
554 +RectTransform:
555 + m_ObjectHideFlags: 0
556 + m_PrefabParentObject: {fileID: 0}
557 + m_PrefabInternal: {fileID: 0}
558 + m_GameObject: {fileID: 1443135692}
559 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
560 + m_LocalPosition: {x: 0, y: 0, z: 0}
561 + m_LocalScale: {x: 1, y: 1, z: 1}
562 + m_Children: []
563 + m_Father: {fileID: 351038155}
564 + m_RootOrder: 0
565 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
566 + m_AnchorMin: {x: 0, y: 0}
567 + m_AnchorMax: {x: 1, y: 1}
568 + m_AnchoredPosition: {x: 0, y: 55.577103}
569 + m_SizeDelta: {x: 0, y: -111.2}
570 + m_Pivot: {x: 0.5, y: 0.5}
571 +--- !u!114 &1443135694
572 +MonoBehaviour:
573 + m_ObjectHideFlags: 0
574 + m_PrefabParentObject: {fileID: 0}
575 + m_PrefabInternal: {fileID: 0}
576 + m_GameObject: {fileID: 1443135692}
577 + m_Enabled: 1
578 + m_EditorHideFlags: 0
579 + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
580 + m_Name:
581 + m_EditorClassIdentifier:
582 + m_Padding:
583 + m_Left: 0
584 + m_Right: 0
585 + m_Top: 0
586 + m_Bottom: 0
587 + m_ChildAlignment: 0
588 + m_Spacing: 0
589 + m_ChildForceExpandWidth: 0
590 + m_ChildForceExpandHeight: 0
591 + m_ChildControlWidth: 0
592 + m_ChildControlHeight: 0
593 +--- !u!114 &1443135695
594 +MonoBehaviour:
595 + m_ObjectHideFlags: 0
596 + m_PrefabParentObject: {fileID: 0}
597 + m_PrefabInternal: {fileID: 0}
598 + m_GameObject: {fileID: 1443135692}
599 + m_Enabled: 1
600 + m_EditorHideFlags: 0
601 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
602 + m_Name:
603 + m_EditorClassIdentifier:
604 + m_Material: {fileID: 0}
605 + m_Color: {r: 1, g: 1, b: 1, a: 0.392}
606 + m_RaycastTarget: 1
607 + m_OnCullStateChanged:
608 + m_PersistentCalls:
609 + m_Calls: []
610 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
611 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
612 + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
613 + m_Type: 1
614 + m_PreserveAspect: 0
615 + m_FillCenter: 1
616 + m_FillMethod: 4
617 + m_FillAmount: 1
618 + m_FillClockwise: 1
619 + m_FillOrigin: 0
620 +--- !u!222 &1443135696
621 +CanvasRenderer:
622 + m_ObjectHideFlags: 0
623 + m_PrefabParentObject: {fileID: 0}
624 + m_PrefabInternal: {fileID: 0}
625 + m_GameObject: {fileID: 1443135692}
626 +--- !u!1 &1464550523
627 +GameObject:
628 + m_ObjectHideFlags: 0
629 + m_PrefabParentObject: {fileID: 0}
630 + m_PrefabInternal: {fileID: 0}
631 + serializedVersion: 5
632 + m_Component:
633 + - component: {fileID: 1464550524}
634 + - component: {fileID: 1464550526}
635 + - component: {fileID: 1464550525}
636 + m_Layer: 5
637 + m_Name: Text
638 + m_TagString: Untagged
639 + m_Icon: {fileID: 0}
640 + m_NavMeshLayer: 0
641 + m_StaticEditorFlags: 0
642 + m_IsActive: 1
643 +--- !u!224 &1464550524
644 +RectTransform:
645 + m_ObjectHideFlags: 0
646 + m_PrefabParentObject: {fileID: 0}
647 + m_PrefabInternal: {fileID: 0}
648 + m_GameObject: {fileID: 1464550523}
649 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
650 + m_LocalPosition: {x: 0, y: 0, z: 0}
651 + m_LocalScale: {x: 1, y: 1, z: 1}
652 + m_Children: []
653 + m_Father: {fileID: 650336558}
654 + m_RootOrder: 0
655 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
656 + m_AnchorMin: {x: 0, y: 0}
657 + m_AnchorMax: {x: 1, y: 1}
658 + m_AnchoredPosition: {x: 0, y: 0}
659 + m_SizeDelta: {x: 0, y: 0}
660 + m_Pivot: {x: 0.5, y: 0.5}
661 +--- !u!114 &1464550525
662 +MonoBehaviour:
663 + m_ObjectHideFlags: 0
664 + m_PrefabParentObject: {fileID: 0}
665 + m_PrefabInternal: {fileID: 0}
666 + m_GameObject: {fileID: 1464550523}
667 + m_Enabled: 1
668 + m_EditorHideFlags: 0
669 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
670 + m_Name:
671 + m_EditorClassIdentifier:
672 + m_Material: {fileID: 0}
673 + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
674 + m_RaycastTarget: 1
675 + m_OnCullStateChanged:
676 + m_PersistentCalls:
677 + m_Calls: []
678 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
679 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
680 + m_FontData:
681 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
682 + m_FontSize: 14
683 + m_FontStyle: 0
684 + m_BestFit: 0
685 + m_MinSize: 10
686 + m_MaxSize: 40
687 + m_Alignment: 4
688 + m_AlignByGeometry: 0
689 + m_RichText: 1
690 + m_HorizontalOverflow: 0
691 + m_VerticalOverflow: 0
692 + m_LineSpacing: 1
693 + m_Text: Button
694 +--- !u!222 &1464550526
695 +CanvasRenderer:
696 + m_ObjectHideFlags: 0
697 + m_PrefabParentObject: {fileID: 0}
698 + m_PrefabInternal: {fileID: 0}
699 + m_GameObject: {fileID: 1464550523}
700 +--- !u!1 &1622086368
701 +GameObject:
702 + m_ObjectHideFlags: 0
703 + m_PrefabParentObject: {fileID: 0}
704 + m_PrefabInternal: {fileID: 0}
705 + serializedVersion: 5
706 + m_Component:
707 + - component: {fileID: 1622086372}
708 + - component: {fileID: 1622086371}
709 + - component: {fileID: 1622086370}
710 + - component: {fileID: 1622086369}
711 + m_Layer: 0
712 + m_Name: Main Camera
713 + m_TagString: MainCamera
714 + m_Icon: {fileID: 0}
715 + m_NavMeshLayer: 0
716 + m_StaticEditorFlags: 0
717 + m_IsActive: 1
718 +--- !u!81 &1622086369
719 +AudioListener:
720 + m_ObjectHideFlags: 0
721 + m_PrefabParentObject: {fileID: 0}
722 + m_PrefabInternal: {fileID: 0}
723 + m_GameObject: {fileID: 1622086368}
724 + m_Enabled: 1
725 +--- !u!124 &1622086370
726 +Behaviour:
727 + m_ObjectHideFlags: 0
728 + m_PrefabParentObject: {fileID: 0}
729 + m_PrefabInternal: {fileID: 0}
730 + m_GameObject: {fileID: 1622086368}
731 + m_Enabled: 1
732 +--- !u!20 &1622086371
733 +Camera:
734 + m_ObjectHideFlags: 0
735 + m_PrefabParentObject: {fileID: 0}
736 + m_PrefabInternal: {fileID: 0}
737 + m_GameObject: {fileID: 1622086368}
738 + m_Enabled: 1
739 + serializedVersion: 2
740 + m_ClearFlags: 1
741 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
742 + m_NormalizedViewPortRect:
743 + serializedVersion: 2
744 + x: 0
745 + y: 0
746 + width: 1
747 + height: 1
748 + near clip plane: 0.3
749 + far clip plane: 1000
750 + field of view: 60
751 + orthographic: 0
752 + orthographic size: 5
753 + m_Depth: -1
754 + m_CullingMask:
755 + serializedVersion: 2
756 + m_Bits: 4294967295
757 + m_RenderingPath: -1
758 + m_TargetTexture: {fileID: 0}
759 + m_TargetDisplay: 0
760 + m_TargetEye: 3
761 + m_HDR: 1
762 + m_AllowMSAA: 1
763 + m_AllowDynamicResolution: 0
764 + m_ForceIntoRT: 0
765 + m_OcclusionCulling: 1
766 + m_StereoConvergence: 10
767 + m_StereoSeparation: 0.022
768 +--- !u!4 &1622086372
769 +Transform:
770 + m_ObjectHideFlags: 0
771 + m_PrefabParentObject: {fileID: 0}
772 + m_PrefabInternal: {fileID: 0}
773 + m_GameObject: {fileID: 1622086368}
774 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
775 + m_LocalPosition: {x: 0, y: 1, z: -10}
776 + m_LocalScale: {x: 1, y: 1, z: 1}
777 + m_Children: []
778 + m_Father: {fileID: 0}
779 + m_RootOrder: 0
780 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
781 +--- !u!1 &1763030732
782 +GameObject:
783 + m_ObjectHideFlags: 0
784 + m_PrefabParentObject: {fileID: 0}
785 + m_PrefabInternal: {fileID: 0}
786 + serializedVersion: 5
787 + m_Component:
788 + - component: {fileID: 1763030733}
789 + - component: {fileID: 1763030736}
790 + - component: {fileID: 1763030735}
791 + - component: {fileID: 1763030734}
792 + m_Layer: 5
793 + m_Name: Create Room
794 + m_TagString: Untagged
795 + m_Icon: {fileID: 0}
796 + m_NavMeshLayer: 0
797 + m_StaticEditorFlags: 0
798 + m_IsActive: 1
799 +--- !u!224 &1763030733
800 +RectTransform:
801 + m_ObjectHideFlags: 0
802 + m_PrefabParentObject: {fileID: 0}
803 + m_PrefabInternal: {fileID: 0}
804 + m_GameObject: {fileID: 1763030732}
805 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
806 + m_LocalPosition: {x: 0, y: 0, z: 0}
807 + m_LocalScale: {x: 1, y: 1, z: 1}
808 + m_Children:
809 + - {fileID: 1350433204}
810 + m_Father: {fileID: 351038155}
811 + m_RootOrder: 1
812 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
813 + m_AnchorMin: {x: 0.5, y: 0.5}
814 + m_AnchorMax: {x: 0.5, y: 0.5}
815 + m_AnchoredPosition: {x: -176, y: -121}
816 + m_SizeDelta: {x: 160, y: 30}
817 + m_Pivot: {x: 0.5, y: 0.5}
818 +--- !u!114 &1763030734
819 +MonoBehaviour:
820 + m_ObjectHideFlags: 0
821 + m_PrefabParentObject: {fileID: 0}
822 + m_PrefabInternal: {fileID: 0}
823 + m_GameObject: {fileID: 1763030732}
824 + m_Enabled: 1
825 + m_EditorHideFlags: 0
826 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
827 + m_Name:
828 + m_EditorClassIdentifier:
829 + m_Navigation:
830 + m_Mode: 3
831 + m_SelectOnUp: {fileID: 0}
832 + m_SelectOnDown: {fileID: 0}
833 + m_SelectOnLeft: {fileID: 0}
834 + m_SelectOnRight: {fileID: 0}
835 + m_Transition: 1
836 + m_Colors:
837 + m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
838 + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
839 + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
840 + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
841 + m_ColorMultiplier: 1
842 + m_FadeDuration: 0.1
843 + m_SpriteState:
844 + m_HighlightedSprite: {fileID: 0}
845 + m_PressedSprite: {fileID: 0}
846 + m_DisabledSprite: {fileID: 0}
847 + m_AnimationTriggers:
848 + m_NormalTrigger: Normal
849 + m_HighlightedTrigger: Highlighted
850 + m_PressedTrigger: Pressed
851 + m_DisabledTrigger: Disabled
852 + m_Interactable: 1
853 + m_TargetGraphic: {fileID: 1763030735}
854 + m_OnClick:
855 + m_PersistentCalls:
856 + m_Calls:
857 + - m_Target: {fileID: 2036355376}
858 + m_MethodName: CreateRoom
859 + m_Mode: 1
860 + m_Arguments:
861 + m_ObjectArgument: {fileID: 0}
862 + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
863 + m_IntArgument: 0
864 + m_FloatArgument: 0
865 + m_StringArgument:
866 + m_BoolArgument: 0
867 + m_CallState: 2
868 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
869 + Culture=neutral, PublicKeyToken=null
870 +--- !u!114 &1763030735
871 +MonoBehaviour:
872 + m_ObjectHideFlags: 0
873 + m_PrefabParentObject: {fileID: 0}
874 + m_PrefabInternal: {fileID: 0}
875 + m_GameObject: {fileID: 1763030732}
876 + m_Enabled: 1
877 + m_EditorHideFlags: 0
878 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
879 + m_Name:
880 + m_EditorClassIdentifier:
881 + m_Material: {fileID: 0}
882 + m_Color: {r: 1, g: 1, b: 1, a: 1}
883 + m_RaycastTarget: 1
884 + m_OnCullStateChanged:
885 + m_PersistentCalls:
886 + m_Calls: []
887 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
888 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
889 + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
890 + m_Type: 1
891 + m_PreserveAspect: 0
892 + m_FillCenter: 1
893 + m_FillMethod: 4
894 + m_FillAmount: 1
895 + m_FillClockwise: 1
896 + m_FillOrigin: 0
897 +--- !u!222 &1763030736
898 +CanvasRenderer:
899 + m_ObjectHideFlags: 0
900 + m_PrefabParentObject: {fileID: 0}
901 + m_PrefabInternal: {fileID: 0}
902 + m_GameObject: {fileID: 1763030732}
903 +--- !u!1 &2036355374
904 +GameObject:
905 + m_ObjectHideFlags: 0
906 + m_PrefabParentObject: {fileID: 0}
907 + m_PrefabInternal: {fileID: 0}
908 + serializedVersion: 5
909 + m_Component:
910 + - component: {fileID: 2036355377}
911 + - component: {fileID: 2036355376}
912 + - component: {fileID: 2036355375}
913 + m_Layer: 0
914 + m_Name: GameObject
915 + m_TagString: Untagged
916 + m_Icon: {fileID: 0}
917 + m_NavMeshLayer: 0
918 + m_StaticEditorFlags: 0
919 + m_IsActive: 1
920 +--- !u!114 &2036355375
921 +MonoBehaviour:
922 + m_ObjectHideFlags: 0
923 + m_PrefabParentObject: {fileID: 0}
924 + m_PrefabInternal: {fileID: 0}
925 + m_GameObject: {fileID: 2036355374}
926 + m_Enabled: 1
927 + m_EditorHideFlags: 0
928 + m_Script: {fileID: 11500000, guid: cd5fc2b6c1dde473792533471913965f, type: 3}
929 + m_Name:
930 + m_EditorClassIdentifier:
931 +--- !u!114 &2036355376
932 +MonoBehaviour:
933 + m_ObjectHideFlags: 0
934 + m_PrefabParentObject: {fileID: 0}
935 + m_PrefabInternal: {fileID: 0}
936 + m_GameObject: {fileID: 2036355374}
937 + m_Enabled: 1
938 + m_EditorHideFlags: 0
939 + m_Script: {fileID: 11500000, guid: 7d91d3622aead48008aca0d637d4ad9b, type: 3}
940 + m_Name:
941 + m_EditorClassIdentifier:
942 + m_transport: {fileID: 2036355375}
943 + commentTextPrefab: {fileID: 114312857566104806, guid: b4721aef43e524b91936d391647d3ae1,
944 + type: 2}
945 + commentHolder: {fileID: 1443135693}
946 +--- !u!4 &2036355377
947 +Transform:
948 + m_ObjectHideFlags: 0
949 + m_PrefabParentObject: {fileID: 0}
950 + m_PrefabInternal: {fileID: 0}
951 + m_GameObject: {fileID: 2036355374}
952 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
953 + m_LocalPosition: {x: 329.52545, y: 277.66443, z: 17.47392}
954 + m_LocalScale: {x: 1, y: 1, z: 1}
955 + m_Children: []
956 + m_Father: {fileID: 0}
957 + m_RootOrder: 4
958 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1 +fileFormatVersion: 2
2 +guid: 0964de8e148954ac9b3ff232fe86b110
3 +timeCreated: 1517148581
4 +licenseType: Pro
5 +DefaultImporter:
6 + externalObjects: {}
7 + userData:
8 + assetBundleName:
9 + assetBundleVariant:
1 +fileFormatVersion: 2
2 +guid: c9304ab32d5a14ac0bb8f406e2082281
3 +folderAsset: yes
4 +timeCreated: 1517148587
5 +licenseType: Pro
6 +DefaultImporter:
7 + externalObjects: {}
8 + userData:
9 + assetBundleName:
10 + assetBundleVariant:
1 +using UnityEngine;
2 +using System;
3 +using System.Collections;
4 +using System.Collections.Generic;
5 +using System.Net;
6 +
7 +public class Chat : MonoBehaviour
8 +{
9 + public TransportTCP m_transport;
10 +
11 + public ChatText commentTextPrefab;
12 +
13 + public Transform commentHolder;
14 +
15 + public string m_hostAddress {get; set;}
16 +
17 + private const int m_port = 50765;
18 +
19 + private bool m_isServer = false;
20 +
21 +
22 + // Use this for initialization
23 + void Start()
24 + {
25 + IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
26 +
27 + System.Net.IPAddress hostAddress = hostEntry.AddressList[0];
28 +
29 + Debug.Log(hostEntry.HostName);
30 +
31 + m_hostAddress = hostAddress.ToString ();
32 + m_transport.onStateChanged += OnEventHandling;
33 +
34 + }
35 +
36 +
37 + IEnumerator UpdateChatting()
38 + {
39 + while(true)
40 + {
41 + byte[] buffer = new byte[1400];
42 +
43 + int recvSize = m_transport.Receive(ref buffer, buffer.Length);
44 + if (recvSize > 0) {
45 + string message = System.Text.Encoding.UTF8.GetString(buffer);
46 + Debug.Log("Recv data:" + message );
47 +
48 + AddComment(message);
49 + }
50 +
51 + yield return null;
52 + }
53 + }
54 +
55 +
56 + void Send(string message)
57 + {
58 + message = "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + message;
59 +
60 + byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message);
61 +
62 + m_transport.Send(buffer, buffer.Length);
63 +
64 + AddComment(message);
65 + }
66 +
67 +
68 + void AddComment(string message)
69 + {
70 + var newComment = Instantiate(commentTextPrefab,commentHolder);
71 + newComment.SetUp(message);
72 + }
73 + void OnApplicationQuit() {
74 + if (m_transport != null) {
75 + if(m_isServer)
76 + {
77 + m_transport.StopServer();
78 + }
79 + else
80 + {
81 + m_transport.Disconnect();
82 + }
83 + }
84 + }
85 +
86 + public void OnEventHandling(NetEventState state)
87 + {
88 + switch (state.type) {
89 + case NetEventType.Connect:
90 + AddComment("접속");
91 + break;
92 +
93 + case NetEventType.Disconnect:
94 + AddComment("접속 종료");
95 + break;
96 + }
97 + }
98 +
99 +
100 + public void CreateRoom()
101 + {
102 + m_transport.StartServer(m_port, 1);
103 + m_isServer = true;
104 + }
105 +
106 + public void JoinChatRoom()
107 + {
108 + bool ret = m_transport.Connect(m_hostAddress, m_port);
109 +
110 + if (ret) {
111 + StartCoroutine("UpdateChatting");
112 + }
113 + else {
114 + Debug.LogError("Failed");
115 + }
116 + }
117 +
118 +
119 + public void Leave()
120 + {
121 + if (m_isServer == true) {
122 + m_transport.StopServer();
123 + }
124 + else {
125 + m_transport.Disconnect();
126 + }
127 +
128 + StopCoroutine("UpdateChatting");
129 + }
130 +
131 +
132 +}
1 +fileFormatVersion: 2
2 +guid: 7d91d3622aead48008aca0d637d4ad9b
3 +timeCreated: 1517219122
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +using System.Collections;
2 +using System.Collections.Generic;
3 +using UnityEngine;
4 +using UnityEngine.UI;
5 +
6 +public class ChatText : MonoBehaviour {
7 +
8 + public Text commentText;
9 + public void SetUp(string message)
10 + {
11 + commentText.text = message;
12 + }
13 +
14 +}
1 +fileFormatVersion: 2
2 +guid: e3c2e0a12ace649978c3c197ab4726a6
3 +timeCreated: 1517221132
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +// 이벤트 종류
2 +public enum NetEventType
3 +{
4 + Connect = 0, // 연결 이벤트
5 + Disconnect, // 끊기 이벤트
6 + SendError, // 송신 오류
7 + ReceiveError, // 수신 오류
8 +}
9 +
10 +// 이벤트 결과
11 +public enum NetEventResult
12 +{
13 + Failure = -1, // 실패
14 + Success = 0, // 성공
15 +}
16 +
17 +// 이벤트 상태 통지용 타입
18 +public class NetEventState
19 +{
20 + public NetEventType type; // 이벤트 타입
21 + public NetEventResult result; // 이벤트 결과
22 +}
...\ No newline at end of file ...\ No newline at end of file
1 +fileFormatVersion: 2
2 +guid: 7a68fdeeae9b0445992ea9d05f42454e
3 +timeCreated: 1517151676
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +using System;
2 +using System.Collections;
3 +using System.Collections.Generic;
4 +using System.IO;
5 +using System.Runtime.InteropServices; // https://msdn.microsoft.com/ko-kr/library/system.runtime.interopservices(v=vs.110).aspx
6 +
7 +// 이 타입의 목적: 물흐르듯이 패킷을 쌓고 꺼내올수 있는 큐
8 +public class PacketQueue
9 +{
10 + // 대응되는 패킷이 정확히 스트림에서 어디 인덱스에 존재하는지 지정
11 + struct PacketInfo
12 + {
13 + public int offset; // 이 데이터가 기록되기 시작한 지점
14 + public int size; // 이 데이터의 사이즈
15 + }
16 +
17 + // MemoryStream 은 데이터를 연속적으로 쌓고 빼낼수 있는 스트림 버퍼
18 + // MemoryStream 은 디스크나 네트워크 연결이 아니라 메모리 상에 데이터를 저장하는 스트림 버퍼
19 + // 데이터의 끊김이 없으므로 패킷으로는 다룰수 없다
20 + private MemoryStream m_streamBuffer;
21 +
22 +
23 + private List<PacketInfo> m_waitingPackets; // 아직 디큐하지 못하고 쌓인 패킷들
24 +
25 + private int m_cursor = 0; // 버퍼가 채워져 커서가 밀려난 지점, 데이터를 채울때 여기서 부터 채우면 됨
26 +
27 + private Object lockObj = new Object(); // 데드락 방지용 단순 참고자
28 +
29 + // 초기화
30 + public PacketQueue()
31 + {
32 + m_streamBuffer = new MemoryStream();
33 + m_waitingPackets = new List<PacketInfo>();
34 + }
35 +
36 + // 큐에 바이트 데이터 추가
37 + public int Enqueue(byte[] data, int size)
38 + {
39 + PacketInfo info = new PacketInfo();
40 +
41 + info.offset = m_cursor; // 스트림내에서 이 데이터를 찾으려면 어디서 부터 읽으면 되는지 기록
42 + info.size = size;
43 +
44 + lock(lockObj) // 데드락 방지
45 + {
46 + // 패킷 저장 정보를 보존
47 + m_waitingPackets.Add(info);
48 +
49 + // 패킷 데이터를 추가
50 +
51 + m_streamBuffer.Position = m_cursor; // 스트림의 위치를 마지막으로 갱신한 커서 위치로.
52 + m_streamBuffer.Write(data,0,size); // 현재 위치에서 사이즈만큼 버퍼를 쌓기
53 + m_streamBuffer.Flush(); // 적용
54 +
55 + m_cursor += size; // 커서를 방금 추가한 패킷 만큼 오른쪽으로 이동
56 + }
57 +
58 + return size; // 추가된 데이터의 사이즈를 리턴
59 + }
60 +
61 + // 버퍼를 맡기면 채워서 넘겨줌
62 + public int Dequeue(ref byte[] buffer, int size)
63 + {
64 + // 패킷 리스트에 남아있는게 없다면 종료
65 + if(m_waitingPackets.Count <= 0)
66 + {
67 + return -1;
68 + }
69 +
70 + int recvSize = 0;
71 +
72 + // 데드락 방지
73 + lock(lockObj) {
74 + // 가장 마지막에 추가된 패킷부터 가져온다
75 + PacketInfo info = m_waitingPackets[0];
76 +
77 + // 저장된 패킷 이상의 사이즈를 긁어올순 없음
78 + int dataSize = Math.Min(size, info.size);
79 +
80 + // 읽기 시작할 위치
81 + m_streamBuffer.Position = info.offset;
82 + // 현재 커서 위치에서 dataSize 만큼 오른쪽만큼 이동한 지점까지를 영역으로
83 + // 데이터를 긁어와 입력으로 들어온 buffer 를 채움
84 + recvSize = m_streamBuffer.Read(buffer, 0, dataSize);
85 +
86 + // 패킷을 꺼냈으므로 꺼낸 패킷에 대한 패킷 기록을 리스트에서 삭제
87 + if(recvSize > 0)
88 + {
89 + m_waitingPackets.RemoveAt(0);
90 + }
91 +
92 + // 모든 큐 데이터를 꺼냈을때는 스트림을 다시 제로포인트로 클리어해서 메모리를 절약
93 + if(m_waitingPackets.Count == 0)
94 + {
95 + Clear();
96 + m_cursor = 0;
97 + }
98 +
99 + }
100 + return recvSize;
101 +
102 + }
103 +
104 + // 스트림버퍼의 커서를 초기화. 큐와 메모리 클리어
105 + public void Clear()
106 + {
107 + // 스트림 버퍼의 남은 데이터를 긁어서
108 + byte[] buffer = m_streamBuffer.GetBuffer();
109 + // 해당 데이터를 정렬함
110 + Array.Clear(buffer,0,buffer.Length);
111 +
112 + // 스트림 버퍼의 커서와 길이를 제로로 되돌리기
113 + m_streamBuffer.Position = 0;
114 + m_streamBuffer.SetLength(0);
115 + }
116 +
117 +}
...\ No newline at end of file ...\ No newline at end of file
1 +fileFormatVersion: 2
2 +guid: 6f23052345bf649c485f9d14c8d027ae
3 +timeCreated: 1517148877
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +using System.Collections;
2 +using System.Collections.Generic;
3 +using UnityEngine;
4 +using System.Net;
5 +using System.Net.Sockets;
6 +using System.Threading;
7 +
8 +public class TransportTCP : MonoBehaviour
9 +{
10 +
11 + // 소켓 액세스 포인트들
12 +
13 + // 리스닝 소켓
14 + private Socket m_listner = null;
15 +
16 + // 클라이언트의 접속을 받을 소켓
17 + private Socket m_socket = null;
18 +
19 + private PacketQueue m_sendQueue; // 송신 버퍼
20 +
21 + private PacketQueue m_recvQueue; // 수신 버퍼
22 +
23 + public bool isServer { get; private set;} // 서버 플래그
24 +
25 + public bool isConnected {get; private set;} // 접속 플래그
26 +
27 +
28 + // 이벤트 관련
29 +
30 + // 이벤트 통지 델리게이트 타입 정의
31 + public delegate void EventHandler(NetEventState state);
32 + // 이벤트 핸들러
33 + public event EventHandler onStateChanged;
34 +
35 +
36 + // 스레드 관련 멤버 변수
37 +
38 + // 스레드 실행 프래그
39 + protected bool m_threadLoop = false;
40 + protected Thread m_thread = null;
41 + private static int s_mtu = 1400; // 한번에 읽을 데이터
42 +
43 +
44 + // 초기화 페이즈: 큐 생성
45 + void Awake()
46 + {
47 + m_sendQueue = new PacketQueue();
48 + m_recvQueue = new PacketQueue();
49 + }
50 +
51 + // 서버로서 가동 (대기) 시작
52 + public bool StartServer(int port, int connectionNum)
53 + {
54 +
55 + Debug.Log("Initiate Server!");
56 +
57 + try
58 + {
59 + m_listner = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
60 +
61 + // 대응 대역폭 지정
62 + m_listner.Bind(new IPEndPoint(IPAddress.Any, port));
63 +
64 + m_listner.Listen(connectionNum);
65 + }
66 + catch
67 + {
68 + Debug.Log("Server Failed!");
69 +
70 + return false;
71 + }
72 +
73 + isServer = true;
74 +
75 + bool success = LaunchThread();
76 +
77 + return success;
78 + }
79 +
80 + // 서버로서 대기 종료
81 + public void StopServer()
82 + {
83 + // 쓰레드 종료
84 + m_threadLoop = false;
85 +
86 + if (m_thread != null)
87 + {
88 + m_thread.Join(); // https://msdn.microsoft.com/ko-kr/library/95hbf2ta(v=vs.110).aspx
89 + m_thread = null;
90 + }
91 +
92 + // 접속 종료
93 + Disconnect();
94 +
95 + if(m_listner != null)
96 + {
97 + m_listner.Close();
98 + m_listner = null;
99 + }
100 +
101 + isServer = false;
102 +
103 + Debug.Log("Server Stopped");
104 + }
105 +
106 +
107 + // 접속
108 + public bool Connect(string address, int port)
109 + {
110 + Debug.Log("TransportTCP Connect Called");
111 +
112 + // 이미 리스너 소켓이 선점되어 있다면
113 + if (m_listner != null) {
114 + return false;
115 + }
116 +
117 + bool ret = false;
118 +
119 + try {
120 + m_socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
121 +
122 + m_socket.NoDelay = true; // 소켓 지연시간 없음
123 + m_socket.SendBufferSize = 0;
124 + m_socket.Connect(address,port); // 소켓 연결 시작
125 +
126 + // 커넥션 스레드 시작
127 + ret = LaunchThread();
128 + } catch {
129 + // 실패했다면 소켓 파괴
130 + m_socket = null;
131 + }
132 +
133 + if(ret == true)
134 + {
135 + isConnected = true;
136 + Debug.Log("Connection Success");
137 + }
138 + else
139 + {
140 + isConnected = false;
141 + Debug.Log("Connection Fail");
142 + }
143 +
144 + // 리스너가 존재한다면 통지
145 + if(onStateChanged != null) {
146 + NetEventState state = new NetEventState();
147 + state.type = NetEventType.Connect;
148 + state.result = (isConnected == true) ? NetEventResult.Success : NetEventResult.Failure;
149 +
150 + Debug.Log("Event Handler Called");
151 + }
152 +
153 + return isConnected;
154 + }
155 +
156 + // 접속 종료
157 + public void Disconnect()
158 + {
159 + isConnected = false;
160 +
161 + if (m_socket != null)
162 + {
163 + m_socket.Shutdown(SocketShutdown.Both); // 쌍방향 소켓 연결 내리기
164 + m_socket.Close(); // 소켓 종료
165 + m_socket = null; // 소켓 파괴
166 + }
167 +
168 + // 리스터가 존재한다면 접속 종료를 공지
169 + if (onStateChanged != null)
170 + {
171 + // 새로운 네트워크 상태 정보 생성후
172 + NetEventState state = new NetEventState();
173 + state.type = NetEventType.Disconnect;
174 + state.result = NetEventResult.Success;
175 +
176 + // 이벤트로 공지
177 + onStateChanged(state);
178 + }
179 + }
180 +
181 + // 송신 처리
182 + // 큐에 데이터를 넣어놓으면 알아서 쓰레드가 빼가서 보내놓을거라능 ㅇㅅㅇ
183 + public int Send(byte[] data, int size)
184 + {
185 + // 세이프티 체크
186 + if(m_sendQueue == null)
187 + {
188 + return 0;
189 + }
190 +
191 + return m_sendQueue.Enqueue(data,size);
192 + }
193 +
194 +
195 + // 수신 처리
196 + // 큐에 데이터를 넣어놓으면 알아서 쓰레드가 빼가서 보내놓을거라능 ㅇㅅㅇ
197 + public int Receive(ref byte[] data, int size)
198 + {
199 + // 세이프티 체크
200 + if(m_recvQueue == null)
201 + {
202 + return 0;
203 + }
204 +
205 + return m_recvQueue.Dequeue(ref data,size);
206 + }
207 +
208 + // 스레드 실행 함수.
209 + // 목적: 돌려 놓으면 알아서 Send Queue 에 쌓아놓은 데이터는 보내주고
210 + // 온 데이터는 Recv Queue 에 쌓아놓아줌
211 + bool LaunchThread()
212 + {
213 + try {
214 + // Dispatch용 스레드 시작.
215 + m_threadLoop = true;
216 + m_thread = new Thread(new ThreadStart(Dispatch));
217 + m_thread.Start();
218 + }
219 + catch {
220 + Debug.Log("Cannot launch thread.");
221 + return false;
222 + }
223 +
224 + return true;
225 + }
226 +
227 +
228 + // 스레드를 통해 송수신을 처리해주는 실제 패킷큐 처리부
229 + public void Dispatch()
230 + {
231 + Debug.Log("Distpach thread started.");
232 +
233 + // 스레드 루프가 계속 돌아가는 동안
234 + while(m_threadLoop)
235 + {
236 + //클라이언트의 접속을 기다림
237 +
238 + AcceptClient();
239 +
240 +
241 + if(m_socket != null && isConnected == true)
242 + {
243 + // 송신
244 + DispatchSend();
245 +
246 + // 수신
247 + DispatchReceive();
248 + }
249 +
250 + // 실행 간격 5밀리 세컨드
251 + Thread.Sleep(5);
252 + }
253 +
254 + Debug.Log("Dispatch thread ended");
255 + }
256 +
257 + void AcceptClient()
258 + {
259 + // 리스너가 클라이언트를 감지하고 준비됬다면
260 + if(m_listner != null && m_listner.Poll(0, SelectMode.SelectRead))
261 + {
262 + // 클라이언트로부터 통신 소켓 지정
263 + m_socket = m_listner.Accept();
264 +
265 + isConnected = true;
266 + Debug.Log("Connected from client");
267 + }
268 +
269 + }
270 +
271 + void DispatchSend()
272 + {
273 + try{
274 + // 데이터를 보낼 준비가 되있다면
275 + if(m_socket.Poll(0,SelectMode.SelectWrite))
276 + {
277 + // 바이트 배열 생성
278 + byte[] buffer = new byte[s_mtu];
279 +
280 + // 전송 대기큐로부터 데이터를 빼내어 가져옴
281 + int sendSize = m_sendQueue.Dequeue(ref buffer, buffer.Length);
282 +
283 + // 보낼 데이터가 있는 동안 계속 송신-데이터 빼오기 반복
284 + while(sendSize > 0) {
285 + m_socket.Send(buffer, sendSize, SocketFlags.None);
286 + sendSize = m_sendQueue.Dequeue(ref buffer, buffer.Length);
287 + }
288 + }
289 + } catch {
290 + return;
291 + }
292 + }
293 +
294 + void DispatchReceive()
295 + {
296 + try{
297 + // 읽을 데이터가 있으면
298 + while(m_socket.Poll(0,SelectMode.SelectRead)) {
299 + byte[] buffer = new byte[s_mtu];
300 +
301 + int recvSize = m_socket.Receive(buffer,buffer.Length,SocketFlags.None);
302 +
303 + if(recvSize == 0)
304 + {
305 + // 더이상 가져올 데이터가 없다면
306 +
307 + Debug.Log("Diconnect recv from client.");
308 + Disconnect();
309 + }
310 + else if (recvSize > 0) { // 데이터를 가져왔다면 리시브 큐에 적재해둠
311 + m_recvQueue.Enqueue(buffer,recvSize);
312 +
313 + }
314 + }
315 + }
316 + catch {
317 + return;
318 + }
319 + }
320 +}
1 +fileFormatVersion: 2
2 +guid: cd5fc2b6c1dde473792533471913965f
3 +timeCreated: 1517148595
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +using System.Collections;
2 +using System.Collections.Generic;
3 +using UnityEngine;
4 +using System.Net;
5 +using System.Net.Sockets;
6 +using System.Threading;
7 +
8 +public class TransportUDP : MonoBehaviour
9 +{
10 +
11 + // 소켓 액세스 포인트들
12 +
13 + // 클라이언트의 접속을 받을 소켓
14 + private Socket m_socket = null;
15 +
16 + private PacketQueue m_sendQueue; // 송신 버퍼
17 +
18 + private PacketQueue m_recvQueue; // 수신 버퍼
19 +
20 + public bool isServer { get; private set;} // 서버 플래그
21 +
22 + public bool isConnected {get; private set;} // 접속 플래그
23 +
24 +
25 + // 이벤트 관련
26 +
27 + // 이벤트 통지 델리게이트 타입 정의
28 + public delegate void EventHandler(NetEventState state);
29 + // 이벤트 핸들러
30 + public event EventHandler onStateChanged;
31 +
32 +
33 + // 스레드 관련 멤버 변수
34 +
35 + // 스레드 실행 프래그
36 + protected bool m_threadLoop = false;
37 + protected Thread m_thread = null;
38 + private static int s_mtu = 1400; // 한번에 읽을 데이터
39 +
40 +
41 + // 초기화 페이즈: 큐 생성
42 + void Awake()
43 + {
44 + m_sendQueue = new PacketQueue();
45 + m_recvQueue = new PacketQueue();
46 + }
47 +
48 + // 서버로서 가동 (대기) 시작
49 + public bool StartServer(int port, int connectionNum)
50 + {
51 +
52 + Debug.Log("Initiate Server!");
53 +
54 + try
55 + {
56 + // 소켓 생성후
57 + m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Udp);
58 +
59 + // 대응 대역폭 지정
60 + m_socket.Bind(new IPEndPoint(IPAddress.Any, port));
61 + }
62 + catch
63 + {
64 + Debug.Log("Server Failed!");
65 +
66 + return false;
67 + }
68 +
69 + isServer = true;
70 +
71 + bool success = LaunchThread();
72 +
73 + return success;
74 + }
75 +
76 + // 서버로서 대기 종료
77 + public void StopServer()
78 + {
79 + // 쓰레드 종료
80 + m_threadLoop = false;
81 +
82 + if (m_thread != null)
83 + {
84 + m_thread.Join();
85 + m_thread = null;
86 + }
87 +
88 + // 접속 종료
89 + Disconnect();
90 +
91 + isServer = false;
92 +
93 + Debug.Log("Server Stopped");
94 + }
95 +
96 + public bool Connect(string address, int port)
97 + {
98 + Debug.Log("TransportUDP Connect Called");
99 +
100 + // 이미 통신 소켓이 선점되어 있다면
101 + if (m_socket != null) {
102 + return false;
103 + }
104 +
105 + bool ret = false;
106 +
107 + try {
108 + m_socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Udp);
109 +
110 + m_socket.NoDelay = true; // 소켓 지연시간 없음
111 + m_socket.Connect(address,port); // 소켓 연결 시작
112 +
113 + // 커넥션 스레드 시작
114 + ret = LaunchThread();
115 + } catch {
116 + // 실패했다면 소켓 파괴
117 + m_socket = null;
118 + }
119 +
120 + if(ret == true)
121 + {
122 + isConnected = true;
123 + Debug.Log("Connection Success");
124 + }
125 + else
126 + {
127 + isConnected = false;
128 + Debug.Log("Connection Fail");
129 + }
130 +
131 + // 리스너가 존재한다면 통지
132 + if(onStateChanged != null) {
133 + NetEventState state = new NetEventState();
134 + state.type = NetEventType.Connect;
135 + state.result = (isConnected == true) ? NetEventResult.Success : NetEventResult.Failure;
136 +
137 + Debug.Log("Event Handler Called");
138 + }
139 +
140 + return isConnected;
141 + }
142 +
143 + // 접속 종료
144 + public void Disconnect()
145 + {
146 + isConnected = false;
147 +
148 + if (m_socket != null)
149 + {
150 + m_socket.Shutdown(SocketShutdown.Both); // 쌍방향 소켓 연결 내리기
151 + m_socket.Close(); // 소켓 종료
152 + m_socket = null; // 소켓 파괴
153 + }
154 +
155 + // 리스터가 존재한다면 접속 종료를 공지
156 + if (onStateChanged != null)
157 + {
158 + // 새로운 네트워크 상태 정보 생성후
159 + NetEventState state = new NetEventState();
160 + state.type = NetEventType.Disconnect;
161 + state.result = NetEventResult.Success;
162 +
163 + // 이벤트로 공지
164 + onStateChanged(state);
165 + }
166 + }
167 +
168 + // 송신 처리
169 + // 큐에 데이터를 넣어놓으면 알아서 쓰레드가 빼가서 보내놓을거라능 ㅇㅅㅇ
170 + public int Send(byte[] data, int size)
171 + {
172 + // 세이프티 체크
173 + if(m_sendQueue == null)
174 + {
175 + return 0;
176 + }
177 +
178 + return m_sendQueue.Enqueue(data,size);
179 + }
180 +
181 +
182 + // 수신 처리
183 + // 큐에 데이터를 넣어놓으면 알아서 쓰레드가 빼가서 보내놓을거라능 ㅇㅅㅇ
184 + public int Receive(ref byte[] data, int size)
185 + {
186 + // 세이프티 체크
187 + if(m_recvQueue == null)
188 + {
189 + return 0;
190 + }
191 +
192 + return m_recvQueue.Dequeue(ref data,size);
193 + }
194 +
195 + // 스레드 실행 함수.
196 + // 목적: 돌려 놓으면 알아서 Send Queue 에 쌓아놓은 데이터는 보내주고
197 + // 온 데이터는 Recv Queue 에 쌓아놓아줌
198 + bool LaunchThread()
199 + {
200 + try {
201 + // Dispatch용 스레드 시작.
202 + m_threadLoop = true;
203 + m_thread = new Thread(new ThreadStart(Dispatch));
204 + m_thread.Start();
205 + }
206 + catch {
207 + Debug.Log("Cannot launch thread.");
208 + return false;
209 + }
210 +
211 + return true;
212 + }
213 +
214 +
215 + // 스레드를 통해 송수신을 처리해주는 실제 패킷큐 처리부
216 + public void Dispatch()
217 + {
218 + Debug.Log("Distpach thread started.");
219 +
220 + // 스레드 루프가 계속 돌아가는 동안
221 + while(m_threadLoop)
222 + {
223 + if(m_socket != null && isConnected == true)
224 + {
225 + // 송신
226 + DispatchSend();
227 +
228 + // 수신
229 + DispatchReceive();
230 + }
231 +
232 + // 실행 간격 5밀리 세컨드
233 + Thread.Sleep(5);
234 + }
235 +
236 + Debug.Log("Dispatch thread ended");
237 + }
238 +
239 + void DispatchSend()
240 + {
241 + try{
242 + // 데이터를 보낼 준비가 되있다면
243 + if(m_socket.Poll(0,SelectMode.SelectWrite))
244 + {
245 + // 바이트 배열 생성
246 + byte[] buffer = new byte[s_mtu];
247 +
248 + // 전송 대기큐로부터 데이터를 빼내어 가져옴
249 + int sendSize = m_sendQueue.Dequeue(ref buffer, buffer.Length);
250 +
251 + // 보낼 데이터가 있는 동안 계속 송신-데이터 빼오기 반복
252 + while(sendSize > 0) {
253 + m_socket.Send(buffer, sendSize, SocketFlags.None);
254 + sendSize = m_sendQueue.Dequeue(ref buffer, buffer.Length);
255 + }
256 + }
257 + } catch {
258 + return;
259 + }
260 + }
261 +
262 + void DispatchReceive()
263 + {
264 + try{
265 + // 읽을 데이터가 있으면
266 + while(m_socket.Poll(0,SelectMode.SelectRead)) {
267 + byte[] buffer = new byte[s_mtu];
268 +
269 + int recvSize = m_socket.Receive(buffer,buffer.Length,SocketFlags.None);
270 +
271 + if(recvSize == 0)
272 + {
273 + // 더이상 가져올 데이터가 없다면
274 +
275 + Debug.Log("Diconnect recv from client.");
276 + Disconnect();
277 + }
278 + else if (recvSize > 0) { // 데이터를 가져왔다면 리시브 큐에 적재해둠
279 + m_recvQueue.Enqueue(buffer,recvSize);
280 +
281 + }
282 + }
283 + }
284 + catch {
285 + return;
286 + }
287 + }
288 +}
1 +fileFormatVersion: 2
2 +guid: a9312813559bd41e9b935e2418917ad0
3 +timeCreated: 1517148687
4 +licenseType: Pro
5 +MonoImporter:
6 + externalObjects: {}
7 + serializedVersion: 2
8 + defaultReferences: []
9 + executionOrder: 0
10 + icon: {instanceID: 0}
11 + userData:
12 + assetBundleName:
13 + assetBundleVariant:
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!11 &1
4 +AudioManager:
5 + m_ObjectHideFlags: 0
6 + m_Volume: 1
7 + Rolloff Scale: 1
8 + Doppler Factor: 1
9 + Default Speaker Mode: 2
10 + m_SampleRate: 0
11 + m_DSPBufferSize: 0
12 + m_VirtualVoiceCount: 512
13 + m_RealVoiceCount: 32
14 + m_SpatializerPlugin:
15 + m_AmbisonicDecoderPlugin:
16 + m_DisableAudio: 0
17 + m_VirtualizeEffects: 1
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!236 &1
4 +ClusterInputManager:
5 + m_ObjectHideFlags: 0
6 + m_Inputs: []
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!55 &1
4 +PhysicsManager:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 7
7 + m_Gravity: {x: 0, y: -9.81, z: 0}
8 + m_DefaultMaterial: {fileID: 0}
9 + m_BounceThreshold: 2
10 + m_SleepThreshold: 0.005
11 + m_DefaultContactOffset: 0.01
12 + m_DefaultSolverIterations: 6
13 + m_DefaultSolverVelocityIterations: 1
14 + m_QueriesHitBackfaces: 0
15 + m_QueriesHitTriggers: 1
16 + m_EnableAdaptiveForce: 0
17 + m_ClothInterCollisionDistance: 0
18 + m_ClothInterCollisionStiffness: 0
19 + m_ContactsGeneration: 1
20 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 + m_AutoSimulation: 1
22 + m_AutoSyncTransforms: 1
23 + m_ClothInterCollisionSettingsToggle: 0
24 + m_ContactPairsMode: 0
25 + m_BroadphaseType: 0
26 + m_WorldBounds:
27 + m_Center: {x: 0, y: 0, z: 0}
28 + m_Extent: {x: 250, y: 250, z: 250}
29 + m_WorldSubdivisions: 8
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!1045 &1
4 +EditorBuildSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 2
7 + m_Scenes: []
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!159 &1
4 +EditorSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 7
7 + m_ExternalVersionControlSupport: Hidden Meta Files
8 + m_SerializationMode: 2
9 + m_LineEndingsForNewScripts: 1
10 + m_DefaultBehaviorMode: 0
11 + m_SpritePackerMode: 0
12 + m_SpritePackerPaddingPower: 1
13 + m_EtcTextureCompressorBehavior: 1
14 + m_EtcTextureFastCompressor: 1
15 + m_EtcTextureNormalCompressor: 2
16 + m_EtcTextureBestCompressor: 4
17 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp
18 + m_ProjectGenerationRootNamespace:
19 + m_UserGeneratedProjectSuffix:
20 + m_CollabEditorSettings:
21 + inProgressEnabled: 1
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!30 &1
4 +GraphicsSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 12
7 + m_Deferred:
8 + m_Mode: 1
9 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 + m_DeferredReflections:
11 + m_Mode: 1
12 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 + m_ScreenSpaceShadows:
14 + m_Mode: 1
15 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 + m_LegacyDeferred:
17 + m_Mode: 1
18 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 + m_DepthNormals:
20 + m_Mode: 1
21 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 + m_MotionVectors:
23 + m_Mode: 1
24 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 + m_LightHalo:
26 + m_Mode: 1
27 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 + m_LensFlare:
29 + m_Mode: 1
30 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 + m_AlwaysIncludedShaders:
32 + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
37 + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
38 + - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
39 + - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
40 + - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
41 + m_PreloadedShaders: []
42 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
43 + type: 0}
44 + m_CustomRenderPipeline: {fileID: 0}
45 + m_TransparencySortMode: 0
46 + m_TransparencySortAxis: {x: 0, y: 0, z: 1}
47 + m_DefaultRenderingPath: 1
48 + m_DefaultMobileRenderingPath: 1
49 + m_TierSettings: []
50 + m_LightmapStripping: 0
51 + m_FogStripping: 0
52 + m_InstancingStripping: 0
53 + m_LightmapKeepPlain: 1
54 + m_LightmapKeepDirCombined: 1
55 + m_LightmapKeepDynamicPlain: 1
56 + m_LightmapKeepDynamicDirCombined: 1
57 + m_LightmapKeepShadowMask: 1
58 + m_LightmapKeepSubtractive: 1
59 + m_FogKeepLinear: 1
60 + m_FogKeepExp: 1
61 + m_FogKeepExp2: 1
62 + m_AlbedoSwatchInfos: []
63 + m_LightsUseLinearIntensity: 0
64 + m_LightsUseColorTemperature: 0
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!13 &1
4 +InputManager:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 2
7 + m_Axes:
8 + - serializedVersion: 3
9 + m_Name: Horizontal
10 + descriptiveName:
11 + descriptiveNegativeName:
12 + negativeButton: left
13 + positiveButton: right
14 + altNegativeButton: a
15 + altPositiveButton: d
16 + gravity: 3
17 + dead: 0.001
18 + sensitivity: 3
19 + snap: 1
20 + invert: 0
21 + type: 0
22 + axis: 0
23 + joyNum: 0
24 + - serializedVersion: 3
25 + m_Name: Vertical
26 + descriptiveName:
27 + descriptiveNegativeName:
28 + negativeButton: down
29 + positiveButton: up
30 + altNegativeButton: s
31 + altPositiveButton: w
32 + gravity: 3
33 + dead: 0.001
34 + sensitivity: 3
35 + snap: 1
36 + invert: 0
37 + type: 0
38 + axis: 0
39 + joyNum: 0
40 + - serializedVersion: 3
41 + m_Name: Fire1
42 + descriptiveName:
43 + descriptiveNegativeName:
44 + negativeButton:
45 + positiveButton: left ctrl
46 + altNegativeButton:
47 + altPositiveButton: mouse 0
48 + gravity: 1000
49 + dead: 0.001
50 + sensitivity: 1000
51 + snap: 0
52 + invert: 0
53 + type: 0
54 + axis: 0
55 + joyNum: 0
56 + - serializedVersion: 3
57 + m_Name: Fire2
58 + descriptiveName:
59 + descriptiveNegativeName:
60 + negativeButton:
61 + positiveButton: left alt
62 + altNegativeButton:
63 + altPositiveButton: mouse 1
64 + gravity: 1000
65 + dead: 0.001
66 + sensitivity: 1000
67 + snap: 0
68 + invert: 0
69 + type: 0
70 + axis: 0
71 + joyNum: 0
72 + - serializedVersion: 3
73 + m_Name: Fire3
74 + descriptiveName:
75 + descriptiveNegativeName:
76 + negativeButton:
77 + positiveButton: left shift
78 + altNegativeButton:
79 + altPositiveButton: mouse 2
80 + gravity: 1000
81 + dead: 0.001
82 + sensitivity: 1000
83 + snap: 0
84 + invert: 0
85 + type: 0
86 + axis: 0
87 + joyNum: 0
88 + - serializedVersion: 3
89 + m_Name: Jump
90 + descriptiveName:
91 + descriptiveNegativeName:
92 + negativeButton:
93 + positiveButton: space
94 + altNegativeButton:
95 + altPositiveButton:
96 + gravity: 1000
97 + dead: 0.001
98 + sensitivity: 1000
99 + snap: 0
100 + invert: 0
101 + type: 0
102 + axis: 0
103 + joyNum: 0
104 + - serializedVersion: 3
105 + m_Name: Mouse X
106 + descriptiveName:
107 + descriptiveNegativeName:
108 + negativeButton:
109 + positiveButton:
110 + altNegativeButton:
111 + altPositiveButton:
112 + gravity: 0
113 + dead: 0
114 + sensitivity: 0.1
115 + snap: 0
116 + invert: 0
117 + type: 1
118 + axis: 0
119 + joyNum: 0
120 + - serializedVersion: 3
121 + m_Name: Mouse Y
122 + descriptiveName:
123 + descriptiveNegativeName:
124 + negativeButton:
125 + positiveButton:
126 + altNegativeButton:
127 + altPositiveButton:
128 + gravity: 0
129 + dead: 0
130 + sensitivity: 0.1
131 + snap: 0
132 + invert: 0
133 + type: 1
134 + axis: 1
135 + joyNum: 0
136 + - serializedVersion: 3
137 + m_Name: Mouse ScrollWheel
138 + descriptiveName:
139 + descriptiveNegativeName:
140 + negativeButton:
141 + positiveButton:
142 + altNegativeButton:
143 + altPositiveButton:
144 + gravity: 0
145 + dead: 0
146 + sensitivity: 0.1
147 + snap: 0
148 + invert: 0
149 + type: 1
150 + axis: 2
151 + joyNum: 0
152 + - serializedVersion: 3
153 + m_Name: Horizontal
154 + descriptiveName:
155 + descriptiveNegativeName:
156 + negativeButton:
157 + positiveButton:
158 + altNegativeButton:
159 + altPositiveButton:
160 + gravity: 0
161 + dead: 0.19
162 + sensitivity: 1
163 + snap: 0
164 + invert: 0
165 + type: 2
166 + axis: 0
167 + joyNum: 0
168 + - serializedVersion: 3
169 + m_Name: Vertical
170 + descriptiveName:
171 + descriptiveNegativeName:
172 + negativeButton:
173 + positiveButton:
174 + altNegativeButton:
175 + altPositiveButton:
176 + gravity: 0
177 + dead: 0.19
178 + sensitivity: 1
179 + snap: 0
180 + invert: 1
181 + type: 2
182 + axis: 1
183 + joyNum: 0
184 + - serializedVersion: 3
185 + m_Name: Fire1
186 + descriptiveName:
187 + descriptiveNegativeName:
188 + negativeButton:
189 + positiveButton: joystick button 0
190 + altNegativeButton:
191 + altPositiveButton:
192 + gravity: 1000
193 + dead: 0.001
194 + sensitivity: 1000
195 + snap: 0
196 + invert: 0
197 + type: 0
198 + axis: 0
199 + joyNum: 0
200 + - serializedVersion: 3
201 + m_Name: Fire2
202 + descriptiveName:
203 + descriptiveNegativeName:
204 + negativeButton:
205 + positiveButton: joystick button 1
206 + altNegativeButton:
207 + altPositiveButton:
208 + gravity: 1000
209 + dead: 0.001
210 + sensitivity: 1000
211 + snap: 0
212 + invert: 0
213 + type: 0
214 + axis: 0
215 + joyNum: 0
216 + - serializedVersion: 3
217 + m_Name: Fire3
218 + descriptiveName:
219 + descriptiveNegativeName:
220 + negativeButton:
221 + positiveButton: joystick button 2
222 + altNegativeButton:
223 + altPositiveButton:
224 + gravity: 1000
225 + dead: 0.001
226 + sensitivity: 1000
227 + snap: 0
228 + invert: 0
229 + type: 0
230 + axis: 0
231 + joyNum: 0
232 + - serializedVersion: 3
233 + m_Name: Jump
234 + descriptiveName:
235 + descriptiveNegativeName:
236 + negativeButton:
237 + positiveButton: joystick button 3
238 + altNegativeButton:
239 + altPositiveButton:
240 + gravity: 1000
241 + dead: 0.001
242 + sensitivity: 1000
243 + snap: 0
244 + invert: 0
245 + type: 0
246 + axis: 0
247 + joyNum: 0
248 + - serializedVersion: 3
249 + m_Name: Submit
250 + descriptiveName:
251 + descriptiveNegativeName:
252 + negativeButton:
253 + positiveButton: return
254 + altNegativeButton:
255 + altPositiveButton: joystick button 0
256 + gravity: 1000
257 + dead: 0.001
258 + sensitivity: 1000
259 + snap: 0
260 + invert: 0
261 + type: 0
262 + axis: 0
263 + joyNum: 0
264 + - serializedVersion: 3
265 + m_Name: Submit
266 + descriptiveName:
267 + descriptiveNegativeName:
268 + negativeButton:
269 + positiveButton: enter
270 + altNegativeButton:
271 + altPositiveButton: space
272 + gravity: 1000
273 + dead: 0.001
274 + sensitivity: 1000
275 + snap: 0
276 + invert: 0
277 + type: 0
278 + axis: 0
279 + joyNum: 0
280 + - serializedVersion: 3
281 + m_Name: Cancel
282 + descriptiveName:
283 + descriptiveNegativeName:
284 + negativeButton:
285 + positiveButton: escape
286 + altNegativeButton:
287 + altPositiveButton: joystick button 1
288 + gravity: 1000
289 + dead: 0.001
290 + sensitivity: 1000
291 + snap: 0
292 + invert: 0
293 + type: 0
294 + axis: 0
295 + joyNum: 0
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!126 &1
4 +NavMeshProjectSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 2
7 + areas:
8 + - name: Walkable
9 + cost: 1
10 + - name: Not Walkable
11 + cost: 1
12 + - name: Jump
13 + cost: 2
14 + - name:
15 + cost: 1
16 + - name:
17 + cost: 1
18 + - name:
19 + cost: 1
20 + - name:
21 + cost: 1
22 + - name:
23 + cost: 1
24 + - name:
25 + cost: 1
26 + - name:
27 + cost: 1
28 + - name:
29 + cost: 1
30 + - name:
31 + cost: 1
32 + - name:
33 + cost: 1
34 + - name:
35 + cost: 1
36 + - name:
37 + cost: 1
38 + - name:
39 + cost: 1
40 + - name:
41 + cost: 1
42 + - name:
43 + cost: 1
44 + - name:
45 + cost: 1
46 + - name:
47 + cost: 1
48 + - name:
49 + cost: 1
50 + - name:
51 + cost: 1
52 + - name:
53 + cost: 1
54 + - name:
55 + cost: 1
56 + - name:
57 + cost: 1
58 + - name:
59 + cost: 1
60 + - name:
61 + cost: 1
62 + - name:
63 + cost: 1
64 + - name:
65 + cost: 1
66 + - name:
67 + cost: 1
68 + - name:
69 + cost: 1
70 + - name:
71 + cost: 1
72 + m_LastAgentTypeID: -887442657
73 + m_Settings:
74 + - serializedVersion: 2
75 + agentTypeID: 0
76 + agentRadius: 0.5
77 + agentHeight: 2
78 + agentSlope: 45
79 + agentClimb: 0.75
80 + ledgeDropHeight: 0
81 + maxJumpAcrossDistance: 0
82 + minRegionArea: 2
83 + manualCellSize: 0
84 + cellSize: 0.16666667
85 + manualTileSize: 0
86 + tileSize: 256
87 + accuratePlacement: 0
88 + debug:
89 + m_Flags: 0
90 + m_SettingNames:
91 + - Humanoid
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!149 &1
4 +NetworkManager:
5 + m_ObjectHideFlags: 0
6 + m_DebugLevel: 0
7 + m_Sendrate: 15
8 + m_AssetToPrefab: {}
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!19 &1
4 +Physics2DSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 3
7 + m_Gravity: {x: 0, y: -9.81}
8 + m_DefaultMaterial: {fileID: 0}
9 + m_VelocityIterations: 8
10 + m_PositionIterations: 3
11 + m_VelocityThreshold: 1
12 + m_MaxLinearCorrection: 0.2
13 + m_MaxAngularCorrection: 8
14 + m_MaxTranslationSpeed: 100
15 + m_MaxRotationSpeed: 360
16 + m_BaumgarteScale: 0.2
17 + m_BaumgarteTimeOfImpactScale: 0.75
18 + m_TimeToSleep: 0.5
19 + m_LinearSleepTolerance: 0.01
20 + m_AngularSleepTolerance: 2
21 + m_DefaultContactOffset: 0.01
22 + m_AutoSimulation: 1
23 + m_QueriesHitTriggers: 1
24 + m_QueriesStartInColliders: 1
25 + m_ChangeStopsCallbacks: 0
26 + m_CallbacksOnDisable: 1
27 + m_AutoSyncTransforms: 1
28 + m_AlwaysShowColliders: 0
29 + m_ShowColliderSleep: 1
30 + m_ShowColliderContacts: 0
31 + m_ShowColliderAABB: 0
32 + m_ContactArrowScale: 0.2
33 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
34 + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
35 + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
36 + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
37 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!129 &1
4 +PlayerSettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 14
7 + productGUID: 8b870f80a4ab64829baeff46f3c082cf
8 + AndroidProfiler: 0
9 + AndroidFilterTouchesWhenObscured: 0
10 + defaultScreenOrientation: 4
11 + targetDevice: 2
12 + useOnDemandResources: 0
13 + accelerometerFrequency: 60
14 + companyName: DefaultCompany
15 + productName: Basic Network Library
16 + defaultCursor: {fileID: 0}
17 + cursorHotspot: {x: 0, y: 0}
18 + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
19 + m_ShowUnitySplashScreen: 1
20 + m_ShowUnitySplashLogo: 1
21 + m_SplashScreenOverlayOpacity: 1
22 + m_SplashScreenAnimation: 1
23 + m_SplashScreenLogoStyle: 1
24 + m_SplashScreenDrawMode: 0
25 + m_SplashScreenBackgroundAnimationZoom: 1
26 + m_SplashScreenLogoAnimationZoom: 1
27 + m_SplashScreenBackgroundLandscapeAspect: 1
28 + m_SplashScreenBackgroundPortraitAspect: 1
29 + m_SplashScreenBackgroundLandscapeUvs:
30 + serializedVersion: 2
31 + x: 0
32 + y: 0
33 + width: 1
34 + height: 1
35 + m_SplashScreenBackgroundPortraitUvs:
36 + serializedVersion: 2
37 + x: 0
38 + y: 0
39 + width: 1
40 + height: 1
41 + m_SplashScreenLogos: []
42 + m_VirtualRealitySplashScreen: {fileID: 0}
43 + m_HolographicTrackingLossScreen: {fileID: 0}
44 + defaultScreenWidth: 1024
45 + defaultScreenHeight: 768
46 + defaultScreenWidthWeb: 960
47 + defaultScreenHeightWeb: 600
48 + m_StereoRenderingPath: 0
49 + m_ActiveColorSpace: 0
50 + m_MTRendering: 1
51 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000
52 + iosShowActivityIndicatorOnLoading: -1
53 + androidShowActivityIndicatorOnLoading: -1
54 + tizenShowActivityIndicatorOnLoading: -1
55 + iosAppInBackgroundBehavior: 0
56 + displayResolutionDialog: 1
57 + iosAllowHTTPDownload: 1
58 + allowedAutorotateToPortrait: 1
59 + allowedAutorotateToPortraitUpsideDown: 1
60 + allowedAutorotateToLandscapeRight: 1
61 + allowedAutorotateToLandscapeLeft: 1
62 + useOSAutorotation: 1
63 + use32BitDisplayBuffer: 1
64 + preserveFramebufferAlpha: 0
65 + disableDepthAndStencilBuffers: 0
66 + androidBlitType: 0
67 + defaultIsFullScreen: 1
68 + defaultIsNativeResolution: 1
69 + macRetinaSupport: 1
70 + runInBackground: 0
71 + captureSingleScreen: 0
72 + muteOtherAudioSources: 0
73 + Prepare IOS For Recording: 0
74 + Force IOS Speakers When Recording: 0
75 + deferSystemGesturesMode: 0
76 + hideHomeButton: 0
77 + submitAnalytics: 1
78 + usePlayerLog: 1
79 + bakeCollisionMeshes: 0
80 + forceSingleInstance: 0
81 + resizableWindow: 0
82 + useMacAppStoreValidation: 0
83 + macAppStoreCategory: public.app-category.games
84 + gpuSkinning: 0
85 + graphicsJobs: 0
86 + xboxPIXTextureCapture: 0
87 + xboxEnableAvatar: 0
88 + xboxEnableKinect: 0
89 + xboxEnableKinectAutoTracking: 0
90 + xboxEnableFitness: 0
91 + visibleInBackground: 1
92 + allowFullscreenSwitch: 1
93 + graphicsJobMode: 0
94 + macFullscreenMode: 2
95 + d3d11FullscreenMode: 1
96 + xboxSpeechDB: 0
97 + xboxEnableHeadOrientation: 0
98 + xboxEnableGuest: 0
99 + xboxEnablePIXSampling: 0
100 + metalFramebufferOnly: 0
101 + n3dsDisableStereoscopicView: 0
102 + n3dsEnableSharedListOpt: 1
103 + n3dsEnableVSync: 0
104 + xboxOneResolution: 0
105 + xboxOneSResolution: 0
106 + xboxOneXResolution: 3
107 + xboxOneMonoLoggingLevel: 0
108 + xboxOneLoggingLevel: 1
109 + xboxOneDisableEsram: 0
110 + xboxOnePresentImmediateThreshold: 0
111 + videoMemoryForVertexBuffers: 0
112 + psp2PowerMode: 0
113 + psp2AcquireBGM: 1
114 + wiiUTVResolution: 0
115 + wiiUGamePadMSAA: 1
116 + wiiUSupportsNunchuk: 0
117 + wiiUSupportsClassicController: 0
118 + wiiUSupportsBalanceBoard: 0
119 + wiiUSupportsMotionPlus: 0
120 + wiiUSupportsProController: 0
121 + wiiUAllowScreenCapture: 1
122 + wiiUControllerCount: 0
123 + m_SupportedAspectRatios:
124 + 4:3: 1
125 + 5:4: 1
126 + 16:10: 1
127 + 16:9: 1
128 + Others: 1
129 + bundleVersion: 1.0
130 + preloadedAssets: []
131 + metroInputSource: 0
132 + wsaTransparentSwapchain: 0
133 + m_HolographicPauseOnTrackingLoss: 1
134 + xboxOneDisableKinectGpuReservation: 0
135 + xboxOneEnable7thCore: 0
136 + vrSettings:
137 + cardboard:
138 + depthFormat: 0
139 + enableTransitionView: 0
140 + daydream:
141 + depthFormat: 0
142 + useSustainedPerformanceMode: 0
143 + enableVideoLayer: 0
144 + useProtectedVideoMemory: 0
145 + minimumSupportedHeadTracking: 0
146 + maximumSupportedHeadTracking: 1
147 + hololens:
148 + depthFormat: 1
149 + depthBufferSharingEnabled: 0
150 + oculus:
151 + sharedDepthBuffer: 0
152 + dashSupport: 0
153 + protectGraphicsMemory: 0
154 + useHDRDisplay: 0
155 + m_ColorGamuts: 00000000
156 + targetPixelDensity: 30
157 + resolutionScalingMode: 0
158 + androidSupportedAspectRatio: 1
159 + androidMaxAspectRatio: 2.1
160 + applicationIdentifier: {}
161 + buildNumber: {}
162 + AndroidBundleVersionCode: 1
163 + AndroidMinSdkVersion: 16
164 + AndroidTargetSdkVersion: 0
165 + AndroidPreferredInstallLocation: 1
166 + aotOptions:
167 + stripEngineCode: 1
168 + iPhoneStrippingLevel: 0
169 + iPhoneScriptCallOptimization: 0
170 + ForceInternetPermission: 0
171 + ForceSDCardPermission: 0
172 + CreateWallpaper: 0
173 + APKExpansionFiles: 0
174 + keepLoadedShadersAlive: 0
175 + StripUnusedMeshComponents: 0
176 + VertexChannelCompressionMask:
177 + serializedVersion: 2
178 + m_Bits: 238
179 + iPhoneSdkVersion: 988
180 + iOSTargetOSVersionString: 7.0
181 + tvOSSdkVersion: 0
182 + tvOSRequireExtendedGameController: 0
183 + tvOSTargetOSVersionString: 9.0
184 + uIPrerenderedIcon: 0
185 + uIRequiresPersistentWiFi: 0
186 + uIRequiresFullScreen: 1
187 + uIStatusBarHidden: 1
188 + uIExitOnSuspend: 0
189 + uIStatusBarStyle: 0
190 + iPhoneSplashScreen: {fileID: 0}
191 + iPhoneHighResSplashScreen: {fileID: 0}
192 + iPhoneTallHighResSplashScreen: {fileID: 0}
193 + iPhone47inSplashScreen: {fileID: 0}
194 + iPhone55inPortraitSplashScreen: {fileID: 0}
195 + iPhone55inLandscapeSplashScreen: {fileID: 0}
196 + iPhone58inPortraitSplashScreen: {fileID: 0}
197 + iPhone58inLandscapeSplashScreen: {fileID: 0}
198 + iPadPortraitSplashScreen: {fileID: 0}
199 + iPadHighResPortraitSplashScreen: {fileID: 0}
200 + iPadLandscapeSplashScreen: {fileID: 0}
201 + iPadHighResLandscapeSplashScreen: {fileID: 0}
202 + appleTVSplashScreen: {fileID: 0}
203 + appleTVSplashScreen2x: {fileID: 0}
204 + tvOSSmallIconLayers: []
205 + tvOSSmallIconLayers2x: []
206 + tvOSLargeIconLayers: []
207 + tvOSLargeIconLayers2x: []
208 + tvOSTopShelfImageLayers: []
209 + tvOSTopShelfImageLayers2x: []
210 + tvOSTopShelfImageWideLayers: []
211 + tvOSTopShelfImageWideLayers2x: []
212 + iOSLaunchScreenType: 0
213 + iOSLaunchScreenPortrait: {fileID: 0}
214 + iOSLaunchScreenLandscape: {fileID: 0}
215 + iOSLaunchScreenBackgroundColor:
216 + serializedVersion: 2
217 + rgba: 0
218 + iOSLaunchScreenFillPct: 100
219 + iOSLaunchScreenSize: 100
220 + iOSLaunchScreenCustomXibPath:
221 + iOSLaunchScreeniPadType: 0
222 + iOSLaunchScreeniPadImage: {fileID: 0}
223 + iOSLaunchScreeniPadBackgroundColor:
224 + serializedVersion: 2
225 + rgba: 0
226 + iOSLaunchScreeniPadFillPct: 100
227 + iOSLaunchScreeniPadSize: 100
228 + iOSLaunchScreeniPadCustomXibPath:
229 + iOSUseLaunchScreenStoryboard: 0
230 + iOSLaunchScreenCustomStoryboardPath:
231 + iOSDeviceRequirements: []
232 + iOSURLSchemes: []
233 + iOSBackgroundModes: 0
234 + iOSMetalForceHardShadows: 0
235 + metalEditorSupport: 0
236 + metalAPIValidation: 1
237 + iOSRenderExtraFrameOnPause: 0
238 + appleDeveloperTeamID:
239 + iOSManualSigningProvisioningProfileID:
240 + tvOSManualSigningProvisioningProfileID:
241 + appleEnableAutomaticSigning: 0
242 + clonedFromGUID: 00000000000000000000000000000000
243 + AndroidTargetDevice: 0
244 + AndroidSplashScreenScale: 0
245 + androidSplashScreen: {fileID: 0}
246 + AndroidKeystoreName:
247 + AndroidKeyaliasName:
248 + AndroidTVCompatibility: 1
249 + AndroidIsGame: 1
250 + AndroidEnableTango: 0
251 + androidEnableBanner: 1
252 + androidUseLowAccuracyLocation: 0
253 + m_AndroidBanners:
254 + - width: 320
255 + height: 180
256 + banner: {fileID: 0}
257 + androidGamepadSupportLevel: 0
258 + resolutionDialogBanner: {fileID: 0}
259 + m_BuildTargetIcons: []
260 + m_BuildTargetBatching: []
261 + m_BuildTargetGraphicsAPIs: []
262 + m_BuildTargetVRSettings: []
263 + m_BuildTargetEnableVuforiaSettings: []
264 + openGLRequireES31: 0
265 + openGLRequireES31AEP: 0
266 + m_TemplateCustomTags: {}
267 + mobileMTRendering:
268 + Android: 1
269 + iPhone: 1
270 + tvOS: 1
271 + m_BuildTargetGroupLightmapEncodingQuality: []
272 + wiiUTitleID: 0005000011000000
273 + wiiUGroupID: 00010000
274 + wiiUCommonSaveSize: 4096
275 + wiiUAccountSaveSize: 2048
276 + wiiUOlvAccessKey: 0
277 + wiiUTinCode: 0
278 + wiiUJoinGameId: 0
279 + wiiUJoinGameModeMask: 0000000000000000
280 + wiiUCommonBossSize: 0
281 + wiiUAccountBossSize: 0
282 + wiiUAddOnUniqueIDs: []
283 + wiiUMainThreadStackSize: 3072
284 + wiiULoaderThreadStackSize: 1024
285 + wiiUSystemHeapSize: 128
286 + wiiUTVStartupScreen: {fileID: 0}
287 + wiiUGamePadStartupScreen: {fileID: 0}
288 + wiiUDrcBufferDisabled: 0
289 + wiiUProfilerLibPath:
290 + playModeTestRunnerEnabled: 0
291 + actionOnDotNetUnhandledException: 1
292 + enableInternalProfiler: 0
293 + logObjCUncaughtExceptions: 1
294 + enableCrashReportAPI: 0
295 + cameraUsageDescription:
296 + locationUsageDescription:
297 + microphoneUsageDescription:
298 + switchNetLibKey:
299 + switchSocketMemoryPoolSize: 6144
300 + switchSocketAllocatorPoolSize: 128
301 + switchSocketConcurrencyLimit: 14
302 + switchScreenResolutionBehavior: 2
303 + switchUseCPUProfiler: 0
304 + switchApplicationID: 0x01004b9000490000
305 + switchNSODependencies:
306 + switchTitleNames_0:
307 + switchTitleNames_1:
308 + switchTitleNames_2:
309 + switchTitleNames_3:
310 + switchTitleNames_4:
311 + switchTitleNames_5:
312 + switchTitleNames_6:
313 + switchTitleNames_7:
314 + switchTitleNames_8:
315 + switchTitleNames_9:
316 + switchTitleNames_10:
317 + switchTitleNames_11:
318 + switchTitleNames_12:
319 + switchTitleNames_13:
320 + switchTitleNames_14:
321 + switchPublisherNames_0:
322 + switchPublisherNames_1:
323 + switchPublisherNames_2:
324 + switchPublisherNames_3:
325 + switchPublisherNames_4:
326 + switchPublisherNames_5:
327 + switchPublisherNames_6:
328 + switchPublisherNames_7:
329 + switchPublisherNames_8:
330 + switchPublisherNames_9:
331 + switchPublisherNames_10:
332 + switchPublisherNames_11:
333 + switchPublisherNames_12:
334 + switchPublisherNames_13:
335 + switchPublisherNames_14:
336 + switchIcons_0: {fileID: 0}
337 + switchIcons_1: {fileID: 0}
338 + switchIcons_2: {fileID: 0}
339 + switchIcons_3: {fileID: 0}
340 + switchIcons_4: {fileID: 0}
341 + switchIcons_5: {fileID: 0}
342 + switchIcons_6: {fileID: 0}
343 + switchIcons_7: {fileID: 0}
344 + switchIcons_8: {fileID: 0}
345 + switchIcons_9: {fileID: 0}
346 + switchIcons_10: {fileID: 0}
347 + switchIcons_11: {fileID: 0}
348 + switchIcons_12: {fileID: 0}
349 + switchIcons_13: {fileID: 0}
350 + switchIcons_14: {fileID: 0}
351 + switchSmallIcons_0: {fileID: 0}
352 + switchSmallIcons_1: {fileID: 0}
353 + switchSmallIcons_2: {fileID: 0}
354 + switchSmallIcons_3: {fileID: 0}
355 + switchSmallIcons_4: {fileID: 0}
356 + switchSmallIcons_5: {fileID: 0}
357 + switchSmallIcons_6: {fileID: 0}
358 + switchSmallIcons_7: {fileID: 0}
359 + switchSmallIcons_8: {fileID: 0}
360 + switchSmallIcons_9: {fileID: 0}
361 + switchSmallIcons_10: {fileID: 0}
362 + switchSmallIcons_11: {fileID: 0}
363 + switchSmallIcons_12: {fileID: 0}
364 + switchSmallIcons_13: {fileID: 0}
365 + switchSmallIcons_14: {fileID: 0}
366 + switchManualHTML:
367 + switchAccessibleURLs:
368 + switchLegalInformation:
369 + switchMainThreadStackSize: 1048576
370 + switchPresenceGroupId:
371 + switchLogoHandling: 0
372 + switchReleaseVersion: 0
373 + switchDisplayVersion: 1.0.0
374 + switchStartupUserAccount: 0
375 + switchTouchScreenUsage: 0
376 + switchSupportedLanguagesMask: 0
377 + switchLogoType: 0
378 + switchApplicationErrorCodeCategory:
379 + switchUserAccountSaveDataSize: 0
380 + switchUserAccountSaveDataJournalSize: 0
381 + switchApplicationAttribute: 0
382 + switchCardSpecSize: -1
383 + switchCardSpecClock: -1
384 + switchRatingsMask: 0
385 + switchRatingsInt_0: 0
386 + switchRatingsInt_1: 0
387 + switchRatingsInt_2: 0
388 + switchRatingsInt_3: 0
389 + switchRatingsInt_4: 0
390 + switchRatingsInt_5: 0
391 + switchRatingsInt_6: 0
392 + switchRatingsInt_7: 0
393 + switchRatingsInt_8: 0
394 + switchRatingsInt_9: 0
395 + switchRatingsInt_10: 0
396 + switchRatingsInt_11: 0
397 + switchLocalCommunicationIds_0:
398 + switchLocalCommunicationIds_1:
399 + switchLocalCommunicationIds_2:
400 + switchLocalCommunicationIds_3:
401 + switchLocalCommunicationIds_4:
402 + switchLocalCommunicationIds_5:
403 + switchLocalCommunicationIds_6:
404 + switchLocalCommunicationIds_7:
405 + switchParentalControl: 0
406 + switchAllowsScreenshot: 1
407 + switchAllowsVideoCapturing: 1
408 + switchAllowsRuntimeAddOnContentInstall: 0
409 + switchDataLossConfirmation: 0
410 + switchSupportedNpadStyles: 3
411 + switchSocketConfigEnabled: 0
412 + switchTcpInitialSendBufferSize: 32
413 + switchTcpInitialReceiveBufferSize: 64
414 + switchTcpAutoSendBufferSizeMax: 256
415 + switchTcpAutoReceiveBufferSizeMax: 256
416 + switchUdpSendBufferSize: 9
417 + switchUdpReceiveBufferSize: 42
418 + switchSocketBufferEfficiency: 4
419 + switchSocketInitializeEnabled: 1
420 + switchNetworkInterfaceManagerInitializeEnabled: 1
421 + switchPlayerConnectionEnabled: 1
422 + ps4NPAgeRating: 12
423 + ps4NPTitleSecret:
424 + ps4NPTrophyPackPath:
425 + ps4ParentalLevel: 11
426 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000
427 + ps4Category: 0
428 + ps4MasterVersion: 01.00
429 + ps4AppVersion: 01.00
430 + ps4AppType: 0
431 + ps4ParamSfxPath:
432 + ps4VideoOutPixelFormat: 0
433 + ps4VideoOutInitialWidth: 1920
434 + ps4VideoOutBaseModeInitialWidth: 1920
435 + ps4VideoOutReprojectionRate: 60
436 + ps4PronunciationXMLPath:
437 + ps4PronunciationSIGPath:
438 + ps4BackgroundImagePath:
439 + ps4StartupImagePath:
440 + ps4StartupImagesFolder:
441 + ps4IconImagesFolder:
442 + ps4SaveDataImagePath:
443 + ps4SdkOverride:
444 + ps4BGMPath:
445 + ps4ShareFilePath:
446 + ps4ShareOverlayImagePath:
447 + ps4PrivacyGuardImagePath:
448 + ps4NPtitleDatPath:
449 + ps4RemotePlayKeyAssignment: -1
450 + ps4RemotePlayKeyMappingDir:
451 + ps4PlayTogetherPlayerCount: 0
452 + ps4EnterButtonAssignment: 1
453 + ps4ApplicationParam1: 0
454 + ps4ApplicationParam2: 0
455 + ps4ApplicationParam3: 0
456 + ps4ApplicationParam4: 0
457 + ps4DownloadDataSize: 0
458 + ps4GarlicHeapSize: 2048
459 + ps4ProGarlicHeapSize: 2560
460 + ps4Passcode: NMK66MuCV6GXi5xr84P2R391UXaLHbav
461 + ps4pnSessions: 1
462 + ps4pnPresence: 1
463 + ps4pnFriends: 1
464 + ps4pnGameCustomData: 1
465 + playerPrefsSupport: 0
466 + restrictedAudioUsageRights: 0
467 + ps4UseResolutionFallback: 0
468 + ps4ReprojectionSupport: 0
469 + ps4UseAudio3dBackend: 0
470 + ps4SocialScreenEnabled: 0
471 + ps4ScriptOptimizationLevel: 0
472 + ps4Audio3dVirtualSpeakerCount: 14
473 + ps4attribCpuUsage: 0
474 + ps4PatchPkgPath:
475 + ps4PatchLatestPkgPath:
476 + ps4PatchChangeinfoPath:
477 + ps4PatchDayOne: 0
478 + ps4attribUserManagement: 0
479 + ps4attribMoveSupport: 0
480 + ps4attrib3DSupport: 0
481 + ps4attribShareSupport: 0
482 + ps4attribExclusiveVR: 0
483 + ps4disableAutoHideSplash: 0
484 + ps4videoRecordingFeaturesUsed: 0
485 + ps4contentSearchFeaturesUsed: 0
486 + ps4attribEyeToEyeDistanceSettingVR: 0
487 + ps4IncludedModules: []
488 + monoEnv:
489 + psp2Splashimage: {fileID: 0}
490 + psp2NPTrophyPackPath:
491 + psp2NPSupportGBMorGJP: 0
492 + psp2NPAgeRating: 12
493 + psp2NPTitleDatPath:
494 + psp2NPCommsID:
495 + psp2NPCommunicationsID:
496 + psp2NPCommsPassphrase:
497 + psp2NPCommsSig:
498 + psp2ParamSfxPath:
499 + psp2ManualPath:
500 + psp2LiveAreaGatePath:
501 + psp2LiveAreaBackroundPath:
502 + psp2LiveAreaPath:
503 + psp2LiveAreaTrialPath:
504 + psp2PatchChangeInfoPath:
505 + psp2PatchOriginalPackage:
506 + psp2PackagePassword: JvFZGfO47XWS2qVOw5lxuBEBNue7b9PZ
507 + psp2KeystoneFile:
508 + psp2MemoryExpansionMode: 0
509 + psp2DRMType: 0
510 + psp2StorageType: 0
511 + psp2MediaCapacity: 0
512 + psp2DLCConfigPath:
513 + psp2ThumbnailPath:
514 + psp2BackgroundPath:
515 + psp2SoundPath:
516 + psp2TrophyCommId:
517 + psp2TrophyPackagePath:
518 + psp2PackagedResourcesPath:
519 + psp2SaveDataQuota: 10240
520 + psp2ParentalLevel: 1
521 + psp2ShortTitle: Not Set
522 + psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
523 + psp2Category: 0
524 + psp2MasterVersion: 01.00
525 + psp2AppVersion: 01.00
526 + psp2TVBootMode: 0
527 + psp2EnterButtonAssignment: 2
528 + psp2TVDisableEmu: 0
529 + psp2AllowTwitterDialog: 1
530 + psp2Upgradable: 0
531 + psp2HealthWarning: 0
532 + psp2UseLibLocation: 0
533 + psp2InfoBarOnStartup: 0
534 + psp2InfoBarColor: 0
535 + psp2ScriptOptimizationLevel: 0
536 + psmSplashimage: {fileID: 0}
537 + splashScreenBackgroundSourceLandscape: {fileID: 0}
538 + splashScreenBackgroundSourcePortrait: {fileID: 0}
539 + spritePackerPolicy:
540 + webGLMemorySize: 256
541 + webGLExceptionSupport: 1
542 + webGLNameFilesAsHashes: 0
543 + webGLDataCaching: 0
544 + webGLDebugSymbols: 0
545 + webGLEmscriptenArgs:
546 + webGLModulesDirectory:
547 + webGLTemplate: APPLICATION:Default
548 + webGLAnalyzeBuildSize: 0
549 + webGLUseEmbeddedResources: 0
550 + webGLUseWasm: 0
551 + webGLCompressionFormat: 1
552 + scriptingDefineSymbols: {}
553 + platformArchitecture: {}
554 + scriptingBackend: {}
555 + incrementalIl2cppBuild: {}
556 + additionalIl2CppArgs:
557 + scriptingRuntimeVersion: 1
558 + apiCompatibilityLevelPerPlatform: {}
559 + m_RenderingPath: 1
560 + m_MobileRenderingPath: 1
561 + metroPackageName: Basic Network Library
562 + metroPackageVersion:
563 + metroCertificatePath:
564 + metroCertificatePassword:
565 + metroCertificateSubject:
566 + metroCertificateIssuer:
567 + metroCertificateNotAfter: 0000000000000000
568 + metroApplicationDescription: Basic Network Library
569 + wsaImages: {}
570 + metroTileShortName:
571 + metroCommandLineArgsFile:
572 + metroTileShowName: 0
573 + metroMediumTileShowName: 0
574 + metroLargeTileShowName: 0
575 + metroWideTileShowName: 0
576 + metroDefaultTileSize: 1
577 + metroTileForegroundText: 2
578 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
579 + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
580 + a: 1}
581 + metroSplashScreenUseBackgroundColor: 0
582 + platformCapabilities: {}
583 + metroFTAName:
584 + metroFTAFileTypes: []
585 + metroProtocolName:
586 + metroCompilationOverrides: 1
587 + tizenProductDescription:
588 + tizenProductURL:
589 + tizenSigningProfileName:
590 + tizenGPSPermissions: 0
591 + tizenMicrophonePermissions: 0
592 + tizenDeploymentTarget:
593 + tizenDeploymentTargetType: -1
594 + tizenMinOSVersion: 1
595 + n3dsUseExtSaveData: 0
596 + n3dsCompressStaticMem: 1
597 + n3dsExtSaveDataNumber: 0x12345
598 + n3dsStackSize: 131072
599 + n3dsTargetPlatform: 2
600 + n3dsRegion: 7
601 + n3dsMediaSize: 0
602 + n3dsLogoStyle: 3
603 + n3dsTitle: GameName
604 + n3dsProductCode:
605 + n3dsApplicationId: 0xFF3FF
606 + XboxOneProductId:
607 + XboxOneUpdateKey:
608 + XboxOneSandboxId:
609 + XboxOneContentId:
610 + XboxOneTitleId:
611 + XboxOneSCId:
612 + XboxOneGameOsOverridePath:
613 + XboxOnePackagingOverridePath:
614 + XboxOneAppManifestOverridePath:
615 + XboxOnePackageEncryption: 0
616 + XboxOnePackageUpdateGranularity: 2
617 + XboxOneDescription:
618 + XboxOneLanguage:
619 + - enus
620 + XboxOneCapability: []
621 + XboxOneGameRating: {}
622 + XboxOneIsContentPackage: 0
623 + XboxOneEnableGPUVariability: 0
624 + XboxOneSockets: {}
625 + XboxOneSplashScreen: {fileID: 0}
626 + XboxOneAllowedProductIds: []
627 + XboxOnePersistentLocalStorageSize: 0
628 + xboxOneScriptCompiler: 0
629 + vrEditorSettings:
630 + daydream:
631 + daydreamIconForeground: {fileID: 0}
632 + daydreamIconBackground: {fileID: 0}
633 + cloudServicesEnabled: {}
634 + facebookSdkVersion: 7.9.4
635 + apiCompatibilityLevel: 3
636 + cloudProjectId:
637 + projectName:
638 + organizationId:
639 + cloudEnabled: 0
640 + enableNativePlatformBackendsForNewInputSystem: 0
641 + disableOldInputManagerSupport: 0
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!47 &1
4 +QualitySettings:
5 + m_ObjectHideFlags: 0
6 + serializedVersion: 5
7 + m_CurrentQuality: 5
8 + m_QualitySettings:
9 + - serializedVersion: 2
10 + name: Very Low
11 + pixelLightCount: 0
12 + shadows: 0
13 + shadowResolution: 0
14 + shadowProjection: 1
15 + shadowCascades: 1
16 + shadowDistance: 15
17 + shadowNearPlaneOffset: 3
18 + shadowCascade2Split: 0.33333334
19 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 + shadowmaskMode: 0
21 + blendWeights: 1
22 + textureQuality: 1
23 + anisotropicTextures: 0
24 + antiAliasing: 0
25 + softParticles: 0
26 + softVegetation: 0
27 + realtimeReflectionProbes: 0
28 + billboardsFaceCameraPosition: 0
29 + vSyncCount: 0
30 + lodBias: 0.3
31 + maximumLODLevel: 0
32 + particleRaycastBudget: 4
33 + asyncUploadTimeSlice: 2
34 + asyncUploadBufferSize: 4
35 + resolutionScalingFixedDPIFactor: 1
36 + excludedTargetPlatforms: []
37 + - serializedVersion: 2
38 + name: Low
39 + pixelLightCount: 0
40 + shadows: 0
41 + shadowResolution: 0
42 + shadowProjection: 1
43 + shadowCascades: 1
44 + shadowDistance: 20
45 + shadowNearPlaneOffset: 3
46 + shadowCascade2Split: 0.33333334
47 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
48 + shadowmaskMode: 0
49 + blendWeights: 2
50 + textureQuality: 0
51 + anisotropicTextures: 0
52 + antiAliasing: 0
53 + softParticles: 0
54 + softVegetation: 0
55 + realtimeReflectionProbes: 0
56 + billboardsFaceCameraPosition: 0
57 + vSyncCount: 0
58 + lodBias: 0.4
59 + maximumLODLevel: 0
60 + particleRaycastBudget: 16
61 + asyncUploadTimeSlice: 2
62 + asyncUploadBufferSize: 4
63 + resolutionScalingFixedDPIFactor: 1
64 + excludedTargetPlatforms: []
65 + - serializedVersion: 2
66 + name: Medium
67 + pixelLightCount: 1
68 + shadows: 1
69 + shadowResolution: 0
70 + shadowProjection: 1
71 + shadowCascades: 1
72 + shadowDistance: 20
73 + shadowNearPlaneOffset: 3
74 + shadowCascade2Split: 0.33333334
75 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
76 + shadowmaskMode: 0
77 + blendWeights: 2
78 + textureQuality: 0
79 + anisotropicTextures: 1
80 + antiAliasing: 0
81 + softParticles: 0
82 + softVegetation: 0
83 + realtimeReflectionProbes: 0
84 + billboardsFaceCameraPosition: 0
85 + vSyncCount: 1
86 + lodBias: 0.7
87 + maximumLODLevel: 0
88 + particleRaycastBudget: 64
89 + asyncUploadTimeSlice: 2
90 + asyncUploadBufferSize: 4
91 + resolutionScalingFixedDPIFactor: 1
92 + excludedTargetPlatforms: []
93 + - serializedVersion: 2
94 + name: High
95 + pixelLightCount: 2
96 + shadows: 2
97 + shadowResolution: 1
98 + shadowProjection: 1
99 + shadowCascades: 2
100 + shadowDistance: 40
101 + shadowNearPlaneOffset: 3
102 + shadowCascade2Split: 0.33333334
103 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
104 + shadowmaskMode: 1
105 + blendWeights: 2
106 + textureQuality: 0
107 + anisotropicTextures: 1
108 + antiAliasing: 0
109 + softParticles: 0
110 + softVegetation: 1
111 + realtimeReflectionProbes: 1
112 + billboardsFaceCameraPosition: 1
113 + vSyncCount: 1
114 + lodBias: 1
115 + maximumLODLevel: 0
116 + particleRaycastBudget: 256
117 + asyncUploadTimeSlice: 2
118 + asyncUploadBufferSize: 4
119 + resolutionScalingFixedDPIFactor: 1
120 + excludedTargetPlatforms: []
121 + - serializedVersion: 2
122 + name: Very High
123 + pixelLightCount: 3
124 + shadows: 2
125 + shadowResolution: 2
126 + shadowProjection: 1
127 + shadowCascades: 2
128 + shadowDistance: 70
129 + shadowNearPlaneOffset: 3
130 + shadowCascade2Split: 0.33333334
131 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
132 + shadowmaskMode: 1
133 + blendWeights: 4
134 + textureQuality: 0
135 + anisotropicTextures: 2
136 + antiAliasing: 2
137 + softParticles: 1
138 + softVegetation: 1
139 + realtimeReflectionProbes: 1
140 + billboardsFaceCameraPosition: 1
141 + vSyncCount: 1
142 + lodBias: 1.5
143 + maximumLODLevel: 0
144 + particleRaycastBudget: 1024
145 + asyncUploadTimeSlice: 2
146 + asyncUploadBufferSize: 4
147 + resolutionScalingFixedDPIFactor: 1
148 + excludedTargetPlatforms: []
149 + - serializedVersion: 2
150 + name: Ultra
151 + pixelLightCount: 4
152 + shadows: 2
153 + shadowResolution: 2
154 + shadowProjection: 1
155 + shadowCascades: 4
156 + shadowDistance: 150
157 + shadowNearPlaneOffset: 3
158 + shadowCascade2Split: 0.33333334
159 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
160 + shadowmaskMode: 1
161 + blendWeights: 4
162 + textureQuality: 0
163 + anisotropicTextures: 2
164 + antiAliasing: 2
165 + softParticles: 1
166 + softVegetation: 1
167 + realtimeReflectionProbes: 1
168 + billboardsFaceCameraPosition: 1
169 + vSyncCount: 1
170 + lodBias: 2
171 + maximumLODLevel: 0
172 + particleRaycastBudget: 4096
173 + asyncUploadTimeSlice: 2
174 + asyncUploadBufferSize: 4
175 + resolutionScalingFixedDPIFactor: 1
176 + excludedTargetPlatforms: []
177 + m_PerPlatformDefaultQuality:
178 + Android: 2
179 + Nintendo 3DS: 5
180 + Nintendo Switch: 5
181 + PS4: 5
182 + PSM: 5
183 + PSP2: 2
184 + Standalone: 5
185 + Tizen: 2
186 + WebGL: 3
187 + WiiU: 5
188 + Windows Store Apps: 5
189 + XboxOne: 5
190 + iPhone: 2
191 + tvOS: 2
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!78 &1
4 +TagManager:
5 + serializedVersion: 2
6 + tags: []
7 + layers:
8 + - Default
9 + - TransparentFX
10 + - Ignore Raycast
11 + -
12 + - Water
13 + - UI
14 + -
15 + -
16 + -
17 + -
18 + -
19 + -
20 + -
21 + -
22 + -
23 + -
24 + -
25 + -
26 + -
27 + -
28 + -
29 + -
30 + -
31 + -
32 + -
33 + -
34 + -
35 + -
36 + -
37 + -
38 + -
39 + -
40 + m_SortingLayers:
41 + - name: Default
42 + uniqueID: 0
43 + locked: 0
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!5 &1
4 +TimeManager:
5 + m_ObjectHideFlags: 0
6 + Fixed Timestep: 0.02
7 + Maximum Allowed Timestep: 0.33333334
8 + m_TimeScale: 1
9 + Maximum Particle Timestep: 0.03
1 +%YAML 1.1
2 +%TAG !u! tag:unity3d.com,2011:
3 +--- !u!310 &1
4 +UnityConnectSettings:
5 + m_ObjectHideFlags: 0
6 + m_Enabled: 0
7 + m_TestMode: 0
8 + m_TestEventUrl:
9 + m_TestConfigUrl:
10 + m_TestInitMode: 0
11 + CrashReportingSettings:
12 + m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes
13 + m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate
14 + m_Enabled: 0
15 + m_CaptureEditorExceptions: 1
16 + UnityPurchasingSettings:
17 + m_Enabled: 0
18 + m_TestMode: 0
19 + UnityAnalyticsSettings:
20 + m_Enabled: 0
21 + m_InitializeOnStartup: 1
22 + m_TestMode: 0
23 + m_TestEventUrl:
24 + m_TestConfigUrl:
25 + UnityAdsSettings:
26 + m_Enabled: 0
27 + m_InitializeOnStartup: 1
28 + m_TestMode: 0
29 + m_IosGameId:
30 + m_AndroidGameId:
31 + m_GameIds: {}
32 + m_GameId:
33 + PerformanceReportingSettings:
34 + m_Enabled: 0