├── .gitattributes ├── .gitignore ├── Assets ├── CustomClient.cs ├── CustomClient.cs.meta ├── CustomServer.cs ├── CustomServer.cs.meta ├── Main_SimpleTCP.unity ├── Main_SimpleTCP.unity.meta ├── Scripts.meta └── Scripts │ ├── Client.cs │ ├── Client.cs.meta │ ├── Server.cs │ └── Server.cs.meta ├── LICENSE ├── Logs └── Packages-Update.log ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset ├── README.md └── example_app.gif /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | *.VC.db 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | *.pdb.meta 31 | 32 | # Unity3D Generated File On Crash Reports 33 | sysinfo.txt 34 | 35 | # Builds 36 | *.apk 37 | *.unitypackage 38 | -------------------------------------------------------------------------------- /Assets/CustomClient.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | /// 5 | /// This Client inheritated class acts like Client but using UI elements like buttons and input fields. 6 | /// 7 | public class CustomClient : Client 8 | { 9 | [Header("UI References")] 10 | [SerializeField] private Button m_StartClientButton = null; 11 | [SerializeField] private Button m_SendToServerButton = null; 12 | [SerializeField] private InputField m_SendToServerInputField = null; 13 | [SerializeField] private Button m_SendCloseButton = null; 14 | [SerializeField] private ScrollRect m_ClientLoggerScrollRect = null; 15 | 16 | private RectTransform m_ClientLoggerRectTransform = null; 17 | private Text m_ClientLoggerText = null; 18 | 19 | //Set UI interactable properties 20 | private void Awake() 21 | { 22 | //Start Client 23 | m_StartClientButton.onClick.AddListener(base.StartClient); 24 | 25 | //Send to Server 26 | m_SendToServerButton.interactable = false; 27 | m_SendToServerButton.onClick.AddListener(SendMessageToServer); 28 | 29 | //SendClose 30 | m_SendCloseButton.interactable = false; 31 | m_SendCloseButton.onClick.AddListener(SendCloseToServer); 32 | 33 | //Populate Client delegates 34 | OnClientStarted = () => 35 | { 36 | //Set UI interactable properties 37 | m_StartClientButton.interactable = false; 38 | m_SendToServerButton.interactable = true; 39 | m_SendCloseButton.interactable = true; 40 | }; 41 | 42 | OnClientClosed = () => 43 | { 44 | //Set UI interactable properties 45 | m_StartClientButton.interactable = true; 46 | m_SendToServerButton.interactable = false; 47 | m_SendCloseButton.interactable = false; 48 | }; 49 | 50 | //UI References 51 | m_ClientLoggerRectTransform = m_ClientLoggerScrollRect.GetComponent(); 52 | m_ClientLoggerText = m_ClientLoggerScrollRect.content.gameObject.GetComponent(); 53 | } 54 | 55 | private void SendMessageToServer() 56 | { 57 | string newMsg = m_SendToServerInputField.text; 58 | if (string.IsNullOrEmpty(newMsg)) 59 | { 60 | m_ClientLoggerText.text += $"\n- Enter message"; 61 | return; 62 | } 63 | base.SendMessageToServer(newMsg); 64 | } 65 | 66 | private void SendCloseToServer() 67 | { 68 | base.SendMessageToServer("Close"); 69 | //Set UI interactable properties 70 | m_SendCloseButton.interactable = false; 71 | } 72 | 73 | //Custom Client Log 74 | #region ClientLog 75 | protected override void ClientLog(string msg) 76 | { 77 | base.ClientLog(msg); 78 | m_ClientLoggerText.text += $"\n- {msg}"; 79 | 80 | //Ensure ScrollBar shows last message 81 | LayoutRebuilder.ForceRebuildLayoutImmediate(m_ClientLoggerRectTransform); 82 | m_ClientLoggerScrollRect.verticalNormalizedPosition = 0f; 83 | } 84 | protected override void ClientLog(string msg, Color color) 85 | { 86 | base.ClientLog(msg, color); 87 | m_ClientLoggerText.text += $"\n- {msg}"; 88 | 89 | //Ensure ScrollBar shows last message 90 | LayoutRebuilder.ForceRebuildLayoutImmediate(m_ClientLoggerRectTransform); 91 | m_ClientLoggerScrollRect.verticalNormalizedPosition = 0f; 92 | } 93 | #endregion 94 | } -------------------------------------------------------------------------------- /Assets/CustomClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7335399a3425ee4998f08ce9a7d87e2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/CustomServer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | /// 5 | /// This Server inheritated class acts like Server but using UI elements like buttons and input fields. 6 | /// 7 | public class CustomServer : Server 8 | { 9 | [Header("UI References")] 10 | [SerializeField] private Button m_StartServerButton = null; 11 | [SerializeField] private Button m_SendToClientButton = null; 12 | [SerializeField] private InputField m_SendToClientInputField = null; 13 | [SerializeField] private Button m_CloseServerButton = null; 14 | [SerializeField] private ScrollRect m_ServerLoggerScrollRect = null; 15 | 16 | private bool serverConnected = false; 17 | private bool clientConnected = false; 18 | private RectTransform m_ServerLoggerRectTransform = null; 19 | private Text m_ServerLoggerText = null; 20 | 21 | //Set UI interactable properties 22 | protected virtual void Awake() 23 | { 24 | //Start Server 25 | m_StartServerButton.interactable = true; //Enable button to let users start the server 26 | m_StartServerButton.onClick.AddListener(StartServer); 27 | 28 | //Send to Client 29 | m_SendToClientButton.interactable = false; 30 | m_SendToClientButton.onClick.AddListener(SendMessageToClient); 31 | 32 | //Close Server 33 | m_CloseServerButton.interactable = false; //Disable button until the server is started 34 | m_CloseServerButton.onClick.AddListener(CloseServer); 35 | 36 | //Populate Server delegates 37 | OnClientConnected = () => { clientConnected = true; }; 38 | OnClientDisconnected = () => { clientConnected = false; }; 39 | OnServerClosed = () => { serverConnected = false; }; 40 | OnServerStarted = () => { serverConnected = true; }; 41 | 42 | //UI References 43 | m_ServerLoggerRectTransform = m_ServerLoggerScrollRect.GetComponent(); 44 | m_ServerLoggerText = m_ServerLoggerScrollRect.content.gameObject.GetComponent(); 45 | } 46 | 47 | protected override void Update() 48 | { 49 | base.Update(); 50 | 51 | //Interactables needs to be setted on Update case can be called from a non-main thread 52 | m_StartServerButton.interactable = !serverConnected; 53 | m_CloseServerButton.interactable = serverConnected; 54 | m_SendToClientButton.interactable = clientConnected; 55 | } 56 | 57 | //Get input field text and send it to client 58 | private void SendMessageToClient() 59 | { 60 | string newMsg = m_SendToClientInputField.text; 61 | if(string.IsNullOrEmpty(newMsg)) 62 | { 63 | m_ServerLoggerText.text += $"\n- Enter message"; 64 | return; 65 | } 66 | base.SendMessageToClient(newMsg); 67 | } 68 | 69 | //Custom Server Log 70 | #region ServerLog 71 | //With Text Color 72 | protected override void ServerLog(string msg) 73 | { 74 | base.ServerLog(msg); 75 | m_ServerLoggerText.text += $"\n- {msg}"; 76 | 77 | //Ensure ScrollBar shows last message 78 | LayoutRebuilder.ForceRebuildLayoutImmediate(m_ServerLoggerRectTransform); 79 | m_ServerLoggerScrollRect.verticalNormalizedPosition = 0f; 80 | } 81 | //Without Text Color 82 | protected override void ServerLog(string msg, Color color) 83 | { 84 | base.ServerLog(msg, color); 85 | m_ServerLoggerText.text += $"\n- {msg}"; 86 | 87 | //Ensure ScrollBar shows last message 88 | LayoutRebuilder.ForceRebuildLayoutImmediate(m_ServerLoggerRectTransform); 89 | m_ServerLoggerScrollRect.verticalNormalizedPosition = 0f; 90 | } 91 | #endregion 92 | } -------------------------------------------------------------------------------- /Assets/CustomServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86938d8e93081c346bb95b5ed0dc14ce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Main_SimpleTCP.unity: -------------------------------------------------------------------------------- 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: 9 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.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 1 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 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_PVREnvironmentSampleCount: 500 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 2 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_UseShadowmask: 1 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | debug: 122 | m_Flags: 0 123 | m_NavMeshData: {fileID: 0} 124 | --- !u!1 &17587044 125 | GameObject: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | serializedVersion: 6 131 | m_Component: 132 | - component: {fileID: 17587045} 133 | - component: {fileID: 17587047} 134 | - component: {fileID: 17587046} 135 | - component: {fileID: 17587048} 136 | m_Layer: 5 137 | m_Name: SendServer_btn 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!224 &17587045 144 | RectTransform: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 17587044} 150 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 151 | m_LocalPosition: {x: 0, y: 0, z: 0} 152 | m_LocalScale: {x: 1, y: 1, z: 1} 153 | m_Children: 154 | - {fileID: 711561145} 155 | m_Father: {fileID: 246734505} 156 | m_RootOrder: 0 157 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 158 | m_AnchorMin: {x: 0, y: 0} 159 | m_AnchorMax: {x: 0.665, y: 1} 160 | m_AnchoredPosition: {x: 0, y: 0.24658966} 161 | m_SizeDelta: {x: 0, y: -0.3257923} 162 | m_Pivot: {x: 0, y: 0.5} 163 | --- !u!114 &17587046 164 | MonoBehaviour: 165 | m_ObjectHideFlags: 0 166 | m_CorrespondingSourceObject: {fileID: 0} 167 | m_PrefabInstance: {fileID: 0} 168 | m_PrefabAsset: {fileID: 0} 169 | m_GameObject: {fileID: 17587044} 170 | m_Enabled: 1 171 | m_EditorHideFlags: 0 172 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 173 | m_Name: 174 | m_EditorClassIdentifier: 175 | m_Material: {fileID: 0} 176 | m_Color: {r: 1, g: 1, b: 1, a: 1} 177 | m_RaycastTarget: 1 178 | m_Maskable: 1 179 | m_OnCullStateChanged: 180 | m_PersistentCalls: 181 | m_Calls: [] 182 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 183 | m_Type: 1 184 | m_PreserveAspect: 0 185 | m_FillCenter: 1 186 | m_FillMethod: 4 187 | m_FillAmount: 1 188 | m_FillClockwise: 1 189 | m_FillOrigin: 0 190 | m_UseSpriteMesh: 0 191 | m_PixelsPerUnitMultiplier: 1 192 | --- !u!222 &17587047 193 | CanvasRenderer: 194 | m_ObjectHideFlags: 0 195 | m_CorrespondingSourceObject: {fileID: 0} 196 | m_PrefabInstance: {fileID: 0} 197 | m_PrefabAsset: {fileID: 0} 198 | m_GameObject: {fileID: 17587044} 199 | m_CullTransparentMesh: 0 200 | --- !u!114 &17587048 201 | MonoBehaviour: 202 | m_ObjectHideFlags: 0 203 | m_CorrespondingSourceObject: {fileID: 0} 204 | m_PrefabInstance: {fileID: 0} 205 | m_PrefabAsset: {fileID: 0} 206 | m_GameObject: {fileID: 17587044} 207 | m_Enabled: 1 208 | m_EditorHideFlags: 0 209 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 210 | m_Name: 211 | m_EditorClassIdentifier: 212 | m_Navigation: 213 | m_Mode: 3 214 | m_SelectOnUp: {fileID: 0} 215 | m_SelectOnDown: {fileID: 0} 216 | m_SelectOnLeft: {fileID: 0} 217 | m_SelectOnRight: {fileID: 0} 218 | m_Transition: 1 219 | m_Colors: 220 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 221 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 222 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 223 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 224 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 225 | m_ColorMultiplier: 1 226 | m_FadeDuration: 0.1 227 | m_SpriteState: 228 | m_HighlightedSprite: {fileID: 0} 229 | m_PressedSprite: {fileID: 0} 230 | m_SelectedSprite: {fileID: 0} 231 | m_DisabledSprite: {fileID: 0} 232 | m_AnimationTriggers: 233 | m_NormalTrigger: Normal 234 | m_HighlightedTrigger: Highlighted 235 | m_PressedTrigger: Pressed 236 | m_SelectedTrigger: Highlighted 237 | m_DisabledTrigger: Disabled 238 | m_Interactable: 1 239 | m_TargetGraphic: {fileID: 17587046} 240 | m_OnClick: 241 | m_PersistentCalls: 242 | m_Calls: 243 | - m_Target: {fileID: 424903499} 244 | m_MethodName: 245 | m_Mode: 1 246 | m_Arguments: 247 | m_ObjectArgument: {fileID: 0} 248 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 249 | m_IntArgument: 0 250 | m_FloatArgument: 0 251 | m_StringArgument: 252 | m_BoolArgument: 0 253 | m_CallState: 2 254 | --- !u!1 &25136808 255 | GameObject: 256 | m_ObjectHideFlags: 0 257 | m_CorrespondingSourceObject: {fileID: 0} 258 | m_PrefabInstance: {fileID: 0} 259 | m_PrefabAsset: {fileID: 0} 260 | serializedVersion: 6 261 | m_Component: 262 | - component: {fileID: 25136809} 263 | - component: {fileID: 25136811} 264 | - component: {fileID: 25136810} 265 | m_Layer: 0 266 | m_Name: EventSystem 267 | m_TagString: Untagged 268 | m_Icon: {fileID: 0} 269 | m_NavMeshLayer: 0 270 | m_StaticEditorFlags: 0 271 | m_IsActive: 1 272 | --- !u!4 &25136809 273 | Transform: 274 | m_ObjectHideFlags: 0 275 | m_CorrespondingSourceObject: {fileID: 0} 276 | m_PrefabInstance: {fileID: 0} 277 | m_PrefabAsset: {fileID: 0} 278 | m_GameObject: {fileID: 25136808} 279 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 280 | m_LocalPosition: {x: -349.83594, y: -218.61807, z: 0} 281 | m_LocalScale: {x: 1, y: 1, z: 1} 282 | m_Children: [] 283 | m_Father: {fileID: 29507516} 284 | m_RootOrder: 0 285 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 286 | --- !u!114 &25136810 287 | MonoBehaviour: 288 | m_ObjectHideFlags: 0 289 | m_CorrespondingSourceObject: {fileID: 0} 290 | m_PrefabInstance: {fileID: 0} 291 | m_PrefabAsset: {fileID: 0} 292 | m_GameObject: {fileID: 25136808} 293 | m_Enabled: 1 294 | m_EditorHideFlags: 0 295 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 296 | m_Name: 297 | m_EditorClassIdentifier: 298 | m_HorizontalAxis: Horizontal 299 | m_VerticalAxis: Vertical 300 | m_SubmitButton: Submit 301 | m_CancelButton: Cancel 302 | m_InputActionsPerSecond: 10 303 | m_RepeatDelay: 0.5 304 | m_ForceModuleActive: 0 305 | --- !u!114 &25136811 306 | MonoBehaviour: 307 | m_ObjectHideFlags: 0 308 | m_CorrespondingSourceObject: {fileID: 0} 309 | m_PrefabInstance: {fileID: 0} 310 | m_PrefabAsset: {fileID: 0} 311 | m_GameObject: {fileID: 25136808} 312 | m_Enabled: 1 313 | m_EditorHideFlags: 0 314 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 315 | m_Name: 316 | m_EditorClassIdentifier: 317 | m_FirstSelected: {fileID: 0} 318 | m_sendNavigationEvents: 1 319 | m_DragThreshold: 5 320 | --- !u!1 &29507515 321 | GameObject: 322 | m_ObjectHideFlags: 0 323 | m_CorrespondingSourceObject: {fileID: 0} 324 | m_PrefabInstance: {fileID: 0} 325 | m_PrefabAsset: {fileID: 0} 326 | serializedVersion: 6 327 | m_Component: 328 | - component: {fileID: 29507516} 329 | m_Layer: 0 330 | m_Name: SceneSystem 331 | m_TagString: Untagged 332 | m_Icon: {fileID: 0} 333 | m_NavMeshLayer: 0 334 | m_StaticEditorFlags: 0 335 | m_IsActive: 1 336 | --- !u!4 &29507516 337 | Transform: 338 | m_ObjectHideFlags: 0 339 | m_CorrespondingSourceObject: {fileID: 0} 340 | m_PrefabInstance: {fileID: 0} 341 | m_PrefabAsset: {fileID: 0} 342 | m_GameObject: {fileID: 29507515} 343 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 344 | m_LocalPosition: {x: 349.83594, y: 218.61807, z: 0} 345 | m_LocalScale: {x: 1, y: 1, z: 1} 346 | m_Children: 347 | - {fileID: 25136809} 348 | - {fileID: 41868474} 349 | - {fileID: 1473209676} 350 | m_Father: {fileID: 0} 351 | m_RootOrder: 0 352 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 353 | --- !u!1 &41868469 354 | GameObject: 355 | m_ObjectHideFlags: 0 356 | m_CorrespondingSourceObject: {fileID: 0} 357 | m_PrefabInstance: {fileID: 0} 358 | m_PrefabAsset: {fileID: 0} 359 | serializedVersion: 6 360 | m_Component: 361 | - component: {fileID: 41868474} 362 | - component: {fileID: 41868473} 363 | - component: {fileID: 41868471} 364 | - component: {fileID: 41868470} 365 | m_Layer: 0 366 | m_Name: Main Camera 367 | m_TagString: MainCamera 368 | m_Icon: {fileID: 0} 369 | m_NavMeshLayer: 0 370 | m_StaticEditorFlags: 0 371 | m_IsActive: 1 372 | --- !u!81 &41868470 373 | AudioListener: 374 | m_ObjectHideFlags: 0 375 | m_CorrespondingSourceObject: {fileID: 0} 376 | m_PrefabInstance: {fileID: 0} 377 | m_PrefabAsset: {fileID: 0} 378 | m_GameObject: {fileID: 41868469} 379 | m_Enabled: 1 380 | --- !u!124 &41868471 381 | Behaviour: 382 | m_ObjectHideFlags: 0 383 | m_CorrespondingSourceObject: {fileID: 0} 384 | m_PrefabInstance: {fileID: 0} 385 | m_PrefabAsset: {fileID: 0} 386 | m_GameObject: {fileID: 41868469} 387 | m_Enabled: 1 388 | --- !u!20 &41868473 389 | Camera: 390 | m_ObjectHideFlags: 0 391 | m_CorrespondingSourceObject: {fileID: 0} 392 | m_PrefabInstance: {fileID: 0} 393 | m_PrefabAsset: {fileID: 0} 394 | m_GameObject: {fileID: 41868469} 395 | m_Enabled: 1 396 | serializedVersion: 2 397 | m_ClearFlags: 2 398 | m_BackGroundColor: {r: 0.8897059, g: 0.8897059, b: 0.8897059, a: 0} 399 | m_projectionMatrixMode: 1 400 | m_GateFitMode: 2 401 | m_FOVAxisMode: 0 402 | m_SensorSize: {x: 36, y: 24} 403 | m_LensShift: {x: 0, y: 0} 404 | m_FocalLength: 50 405 | m_NormalizedViewPortRect: 406 | serializedVersion: 2 407 | x: 0 408 | y: 0 409 | width: 1 410 | height: 1 411 | near clip plane: 0.3 412 | far clip plane: 1000 413 | field of view: 60 414 | orthographic: 0 415 | orthographic size: 5 416 | m_Depth: -1 417 | m_CullingMask: 418 | serializedVersion: 2 419 | m_Bits: 4294967295 420 | m_RenderingPath: -1 421 | m_TargetTexture: {fileID: 0} 422 | m_TargetDisplay: 0 423 | m_TargetEye: 3 424 | m_HDR: 1 425 | m_AllowMSAA: 1 426 | m_AllowDynamicResolution: 0 427 | m_ForceIntoRT: 0 428 | m_OcclusionCulling: 1 429 | m_StereoConvergence: 10 430 | m_StereoSeparation: 0.022 431 | --- !u!4 &41868474 432 | Transform: 433 | m_ObjectHideFlags: 0 434 | m_CorrespondingSourceObject: {fileID: 0} 435 | m_PrefabInstance: {fileID: 0} 436 | m_PrefabAsset: {fileID: 0} 437 | m_GameObject: {fileID: 41868469} 438 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 439 | m_LocalPosition: {x: -349.83594, y: -217.61807, z: -10} 440 | m_LocalScale: {x: 1, y: 1, z: 1} 441 | m_Children: [] 442 | m_Father: {fileID: 29507516} 443 | m_RootOrder: 1 444 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 445 | --- !u!1 &53837259 446 | GameObject: 447 | m_ObjectHideFlags: 0 448 | m_CorrespondingSourceObject: {fileID: 0} 449 | m_PrefabInstance: {fileID: 0} 450 | m_PrefabAsset: {fileID: 0} 451 | serializedVersion: 6 452 | m_Component: 453 | - component: {fileID: 53837260} 454 | m_Layer: 5 455 | m_Name: Buttons 456 | m_TagString: Untagged 457 | m_Icon: {fileID: 0} 458 | m_NavMeshLayer: 0 459 | m_StaticEditorFlags: 0 460 | m_IsActive: 1 461 | --- !u!224 &53837260 462 | RectTransform: 463 | m_ObjectHideFlags: 0 464 | m_CorrespondingSourceObject: {fileID: 0} 465 | m_PrefabInstance: {fileID: 0} 466 | m_PrefabAsset: {fileID: 0} 467 | m_GameObject: {fileID: 53837259} 468 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 469 | m_LocalPosition: {x: 0, y: 0, z: 0} 470 | m_LocalScale: {x: 1, y: 1, z: 1} 471 | m_Children: 472 | - {fileID: 1165316074} 473 | - {fileID: 246734505} 474 | - {fileID: 1467206376} 475 | m_Father: {fileID: 1697541020} 476 | m_RootOrder: 1 477 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 478 | m_AnchorMin: {x: 0, y: 0.705105} 479 | m_AnchorMax: {x: 1, y: 0.92254853} 480 | m_AnchoredPosition: {x: 0, y: 0} 481 | m_SizeDelta: {x: 0, y: 0} 482 | m_Pivot: {x: 0.5, y: 0.5} 483 | --- !u!1 &93246475 484 | GameObject: 485 | m_ObjectHideFlags: 0 486 | m_CorrespondingSourceObject: {fileID: 0} 487 | m_PrefabInstance: {fileID: 0} 488 | m_PrefabAsset: {fileID: 0} 489 | serializedVersion: 6 490 | m_Component: 491 | - component: {fileID: 93246476} 492 | - component: {fileID: 93246478} 493 | - component: {fileID: 93246477} 494 | - component: {fileID: 93246479} 495 | m_Layer: 5 496 | m_Name: Scrollbar Horizontal 497 | m_TagString: Untagged 498 | m_Icon: {fileID: 0} 499 | m_NavMeshLayer: 0 500 | m_StaticEditorFlags: 0 501 | m_IsActive: 1 502 | --- !u!224 &93246476 503 | RectTransform: 504 | m_ObjectHideFlags: 0 505 | m_CorrespondingSourceObject: {fileID: 0} 506 | m_PrefabInstance: {fileID: 0} 507 | m_PrefabAsset: {fileID: 0} 508 | m_GameObject: {fileID: 93246475} 509 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 510 | m_LocalPosition: {x: 0, y: 0, z: 0} 511 | m_LocalScale: {x: 1, y: 1, z: 1} 512 | m_Children: 513 | - {fileID: 2089604401} 514 | m_Father: {fileID: 1315929537} 515 | m_RootOrder: 1 516 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 517 | m_AnchorMin: {x: 0, y: 0} 518 | m_AnchorMax: {x: 1, y: 0} 519 | m_AnchoredPosition: {x: 0, y: 0} 520 | m_SizeDelta: {x: -17, y: 14} 521 | m_Pivot: {x: 0, y: 0} 522 | --- !u!114 &93246477 523 | MonoBehaviour: 524 | m_ObjectHideFlags: 0 525 | m_CorrespondingSourceObject: {fileID: 0} 526 | m_PrefabInstance: {fileID: 0} 527 | m_PrefabAsset: {fileID: 0} 528 | m_GameObject: {fileID: 93246475} 529 | m_Enabled: 1 530 | m_EditorHideFlags: 0 531 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 532 | m_Name: 533 | m_EditorClassIdentifier: 534 | m_Material: {fileID: 0} 535 | m_Color: {r: 1, g: 1, b: 1, a: 1} 536 | m_RaycastTarget: 1 537 | m_Maskable: 1 538 | m_OnCullStateChanged: 539 | m_PersistentCalls: 540 | m_Calls: [] 541 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 542 | m_Type: 1 543 | m_PreserveAspect: 0 544 | m_FillCenter: 1 545 | m_FillMethod: 4 546 | m_FillAmount: 1 547 | m_FillClockwise: 1 548 | m_FillOrigin: 0 549 | m_UseSpriteMesh: 0 550 | m_PixelsPerUnitMultiplier: 1 551 | --- !u!222 &93246478 552 | CanvasRenderer: 553 | m_ObjectHideFlags: 0 554 | m_CorrespondingSourceObject: {fileID: 0} 555 | m_PrefabInstance: {fileID: 0} 556 | m_PrefabAsset: {fileID: 0} 557 | m_GameObject: {fileID: 93246475} 558 | m_CullTransparentMesh: 0 559 | --- !u!114 &93246479 560 | MonoBehaviour: 561 | m_ObjectHideFlags: 0 562 | m_CorrespondingSourceObject: {fileID: 0} 563 | m_PrefabInstance: {fileID: 0} 564 | m_PrefabAsset: {fileID: 0} 565 | m_GameObject: {fileID: 93246475} 566 | m_Enabled: 1 567 | m_EditorHideFlags: 0 568 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 569 | m_Name: 570 | m_EditorClassIdentifier: 571 | m_Navigation: 572 | m_Mode: 3 573 | m_SelectOnUp: {fileID: 0} 574 | m_SelectOnDown: {fileID: 0} 575 | m_SelectOnLeft: {fileID: 0} 576 | m_SelectOnRight: {fileID: 0} 577 | m_Transition: 1 578 | m_Colors: 579 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 580 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 581 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 582 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 583 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 584 | m_ColorMultiplier: 1 585 | m_FadeDuration: 0.1 586 | m_SpriteState: 587 | m_HighlightedSprite: {fileID: 0} 588 | m_PressedSprite: {fileID: 0} 589 | m_SelectedSprite: {fileID: 0} 590 | m_DisabledSprite: {fileID: 0} 591 | m_AnimationTriggers: 592 | m_NormalTrigger: Normal 593 | m_HighlightedTrigger: Highlighted 594 | m_PressedTrigger: Pressed 595 | m_SelectedTrigger: Selected 596 | m_DisabledTrigger: Disabled 597 | m_Interactable: 1 598 | m_TargetGraphic: {fileID: 1387791855} 599 | m_HandleRect: {fileID: 1387791854} 600 | m_Direction: 0 601 | m_Value: 0 602 | m_Size: 1 603 | m_NumberOfSteps: 0 604 | m_OnValueChanged: 605 | m_PersistentCalls: 606 | m_Calls: [] 607 | --- !u!1 &117483917 608 | GameObject: 609 | m_ObjectHideFlags: 0 610 | m_CorrespondingSourceObject: {fileID: 0} 611 | m_PrefabInstance: {fileID: 0} 612 | m_PrefabAsset: {fileID: 0} 613 | serializedVersion: 6 614 | m_Component: 615 | - component: {fileID: 117483918} 616 | - component: {fileID: 117483920} 617 | - component: {fileID: 117483919} 618 | m_Layer: 5 619 | m_Name: Text 620 | m_TagString: Untagged 621 | m_Icon: {fileID: 0} 622 | m_NavMeshLayer: 0 623 | m_StaticEditorFlags: 0 624 | m_IsActive: 1 625 | --- !u!224 &117483918 626 | RectTransform: 627 | m_ObjectHideFlags: 0 628 | m_CorrespondingSourceObject: {fileID: 0} 629 | m_PrefabInstance: {fileID: 0} 630 | m_PrefabAsset: {fileID: 0} 631 | m_GameObject: {fileID: 117483917} 632 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 633 | m_LocalPosition: {x: 0, y: 0, z: 0} 634 | m_LocalScale: {x: 1, y: 1, z: 1} 635 | m_Children: [] 636 | m_Father: {fileID: 2098098882} 637 | m_RootOrder: 1 638 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 639 | m_AnchorMin: {x: 0, y: 0} 640 | m_AnchorMax: {x: 1, y: 1} 641 | m_AnchoredPosition: {x: 0, y: -0.5} 642 | m_SizeDelta: {x: -20, y: -13} 643 | m_Pivot: {x: 0.5, y: 0.5} 644 | --- !u!114 &117483919 645 | MonoBehaviour: 646 | m_ObjectHideFlags: 0 647 | m_CorrespondingSourceObject: {fileID: 0} 648 | m_PrefabInstance: {fileID: 0} 649 | m_PrefabAsset: {fileID: 0} 650 | m_GameObject: {fileID: 117483917} 651 | m_Enabled: 1 652 | m_EditorHideFlags: 0 653 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 654 | m_Name: 655 | m_EditorClassIdentifier: 656 | m_Material: {fileID: 0} 657 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 658 | m_RaycastTarget: 1 659 | m_Maskable: 1 660 | m_OnCullStateChanged: 661 | m_PersistentCalls: 662 | m_Calls: [] 663 | m_FontData: 664 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 665 | m_FontSize: 14 666 | m_FontStyle: 0 667 | m_BestFit: 0 668 | m_MinSize: 10 669 | m_MaxSize: 40 670 | m_Alignment: 3 671 | m_AlignByGeometry: 0 672 | m_RichText: 0 673 | m_HorizontalOverflow: 1 674 | m_VerticalOverflow: 0 675 | m_LineSpacing: 1 676 | m_Text: 677 | --- !u!222 &117483920 678 | CanvasRenderer: 679 | m_ObjectHideFlags: 0 680 | m_CorrespondingSourceObject: {fileID: 0} 681 | m_PrefabInstance: {fileID: 0} 682 | m_PrefabAsset: {fileID: 0} 683 | m_GameObject: {fileID: 117483917} 684 | m_CullTransparentMesh: 0 685 | --- !u!1 &129645019 686 | GameObject: 687 | m_ObjectHideFlags: 0 688 | m_CorrespondingSourceObject: {fileID: 0} 689 | m_PrefabInstance: {fileID: 0} 690 | m_PrefabAsset: {fileID: 0} 691 | serializedVersion: 6 692 | m_Component: 693 | - component: {fileID: 129645020} 694 | - component: {fileID: 129645022} 695 | - component: {fileID: 129645021} 696 | m_Layer: 5 697 | m_Name: Placeholder 698 | m_TagString: Untagged 699 | m_Icon: {fileID: 0} 700 | m_NavMeshLayer: 0 701 | m_StaticEditorFlags: 0 702 | m_IsActive: 1 703 | --- !u!224 &129645020 704 | RectTransform: 705 | m_ObjectHideFlags: 0 706 | m_CorrespondingSourceObject: {fileID: 0} 707 | m_PrefabInstance: {fileID: 0} 708 | m_PrefabAsset: {fileID: 0} 709 | m_GameObject: {fileID: 129645019} 710 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 711 | m_LocalPosition: {x: 0, y: 0, z: 0} 712 | m_LocalScale: {x: 1, y: 1, z: 1} 713 | m_Children: [] 714 | m_Father: {fileID: 2098098882} 715 | m_RootOrder: 0 716 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 717 | m_AnchorMin: {x: 0, y: 0} 718 | m_AnchorMax: {x: 1, y: 1} 719 | m_AnchoredPosition: {x: 0, y: -0.5} 720 | m_SizeDelta: {x: -20, y: -13} 721 | m_Pivot: {x: 0.5, y: 0.5} 722 | --- !u!114 &129645021 723 | MonoBehaviour: 724 | m_ObjectHideFlags: 0 725 | m_CorrespondingSourceObject: {fileID: 0} 726 | m_PrefabInstance: {fileID: 0} 727 | m_PrefabAsset: {fileID: 0} 728 | m_GameObject: {fileID: 129645019} 729 | m_Enabled: 1 730 | m_EditorHideFlags: 0 731 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 732 | m_Name: 733 | m_EditorClassIdentifier: 734 | m_Material: {fileID: 0} 735 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} 736 | m_RaycastTarget: 1 737 | m_Maskable: 1 738 | m_OnCullStateChanged: 739 | m_PersistentCalls: 740 | m_Calls: [] 741 | m_FontData: 742 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 743 | m_FontSize: 14 744 | m_FontStyle: 2 745 | m_BestFit: 0 746 | m_MinSize: 10 747 | m_MaxSize: 40 748 | m_Alignment: 3 749 | m_AlignByGeometry: 0 750 | m_RichText: 1 751 | m_HorizontalOverflow: 0 752 | m_VerticalOverflow: 0 753 | m_LineSpacing: 1 754 | m_Text: Enter text... 755 | --- !u!222 &129645022 756 | CanvasRenderer: 757 | m_ObjectHideFlags: 0 758 | m_CorrespondingSourceObject: {fileID: 0} 759 | m_PrefabInstance: {fileID: 0} 760 | m_PrefabAsset: {fileID: 0} 761 | m_GameObject: {fileID: 129645019} 762 | m_CullTransparentMesh: 0 763 | --- !u!1 &198872069 764 | GameObject: 765 | m_ObjectHideFlags: 0 766 | m_CorrespondingSourceObject: {fileID: 0} 767 | m_PrefabInstance: {fileID: 0} 768 | m_PrefabAsset: {fileID: 0} 769 | serializedVersion: 6 770 | m_Component: 771 | - component: {fileID: 198872070} 772 | - component: {fileID: 198872073} 773 | - component: {fileID: 198872072} 774 | - component: {fileID: 198872071} 775 | m_Layer: 5 776 | m_Name: Scrollbar Vertical 777 | m_TagString: Untagged 778 | m_Icon: {fileID: 0} 779 | m_NavMeshLayer: 0 780 | m_StaticEditorFlags: 0 781 | m_IsActive: 1 782 | --- !u!224 &198872070 783 | RectTransform: 784 | m_ObjectHideFlags: 0 785 | m_CorrespondingSourceObject: {fileID: 0} 786 | m_PrefabInstance: {fileID: 0} 787 | m_PrefabAsset: {fileID: 0} 788 | m_GameObject: {fileID: 198872069} 789 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 790 | m_LocalPosition: {x: 0, y: 0, z: 0} 791 | m_LocalScale: {x: 1, y: 1, z: 1} 792 | m_Children: 793 | - {fileID: 447969669} 794 | m_Father: {fileID: 1636111363} 795 | m_RootOrder: 2 796 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 797 | m_AnchorMin: {x: 1, y: 0} 798 | m_AnchorMax: {x: 1, y: 1} 799 | m_AnchoredPosition: {x: 0, y: 0} 800 | m_SizeDelta: {x: 14, y: -17} 801 | m_Pivot: {x: 1, y: 1} 802 | --- !u!114 &198872071 803 | MonoBehaviour: 804 | m_ObjectHideFlags: 0 805 | m_CorrespondingSourceObject: {fileID: 0} 806 | m_PrefabInstance: {fileID: 0} 807 | m_PrefabAsset: {fileID: 0} 808 | m_GameObject: {fileID: 198872069} 809 | m_Enabled: 1 810 | m_EditorHideFlags: 0 811 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 812 | m_Name: 813 | m_EditorClassIdentifier: 814 | m_Navigation: 815 | m_Mode: 3 816 | m_SelectOnUp: {fileID: 0} 817 | m_SelectOnDown: {fileID: 0} 818 | m_SelectOnLeft: {fileID: 0} 819 | m_SelectOnRight: {fileID: 0} 820 | m_Transition: 1 821 | m_Colors: 822 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 823 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 824 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 825 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 826 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 827 | m_ColorMultiplier: 1 828 | m_FadeDuration: 0.1 829 | m_SpriteState: 830 | m_HighlightedSprite: {fileID: 0} 831 | m_PressedSprite: {fileID: 0} 832 | m_SelectedSprite: {fileID: 0} 833 | m_DisabledSprite: {fileID: 0} 834 | m_AnimationTriggers: 835 | m_NormalTrigger: Normal 836 | m_HighlightedTrigger: Highlighted 837 | m_PressedTrigger: Pressed 838 | m_SelectedTrigger: Selected 839 | m_DisabledTrigger: Disabled 840 | m_Interactable: 1 841 | m_TargetGraphic: {fileID: 581446574} 842 | m_HandleRect: {fileID: 581446573} 843 | m_Direction: 2 844 | m_Value: 0 845 | m_Size: 1 846 | m_NumberOfSteps: 0 847 | m_OnValueChanged: 848 | m_PersistentCalls: 849 | m_Calls: [] 850 | --- !u!114 &198872072 851 | MonoBehaviour: 852 | m_ObjectHideFlags: 0 853 | m_CorrespondingSourceObject: {fileID: 0} 854 | m_PrefabInstance: {fileID: 0} 855 | m_PrefabAsset: {fileID: 0} 856 | m_GameObject: {fileID: 198872069} 857 | m_Enabled: 1 858 | m_EditorHideFlags: 0 859 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 860 | m_Name: 861 | m_EditorClassIdentifier: 862 | m_Material: {fileID: 0} 863 | m_Color: {r: 1, g: 1, b: 1, a: 1} 864 | m_RaycastTarget: 1 865 | m_Maskable: 1 866 | m_OnCullStateChanged: 867 | m_PersistentCalls: 868 | m_Calls: [] 869 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 870 | m_Type: 1 871 | m_PreserveAspect: 0 872 | m_FillCenter: 1 873 | m_FillMethod: 4 874 | m_FillAmount: 1 875 | m_FillClockwise: 1 876 | m_FillOrigin: 0 877 | m_UseSpriteMesh: 0 878 | m_PixelsPerUnitMultiplier: 1 879 | --- !u!222 &198872073 880 | CanvasRenderer: 881 | m_ObjectHideFlags: 0 882 | m_CorrespondingSourceObject: {fileID: 0} 883 | m_PrefabInstance: {fileID: 0} 884 | m_PrefabAsset: {fileID: 0} 885 | m_GameObject: {fileID: 198872069} 886 | m_CullTransparentMesh: 0 887 | --- !u!1 &218421682 888 | GameObject: 889 | m_ObjectHideFlags: 0 890 | m_CorrespondingSourceObject: {fileID: 0} 891 | m_PrefabInstance: {fileID: 0} 892 | m_PrefabAsset: {fileID: 0} 893 | serializedVersion: 6 894 | m_Component: 895 | - component: {fileID: 218421683} 896 | - component: {fileID: 218421685} 897 | - component: {fileID: 218421684} 898 | - component: {fileID: 218421686} 899 | m_Layer: 5 900 | m_Name: InputField 901 | m_TagString: Untagged 902 | m_Icon: {fileID: 0} 903 | m_NavMeshLayer: 0 904 | m_StaticEditorFlags: 0 905 | m_IsActive: 1 906 | --- !u!224 &218421683 907 | RectTransform: 908 | m_ObjectHideFlags: 0 909 | m_CorrespondingSourceObject: {fileID: 0} 910 | m_PrefabInstance: {fileID: 0} 911 | m_PrefabAsset: {fileID: 0} 912 | m_GameObject: {fileID: 218421682} 913 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 914 | m_LocalPosition: {x: 0, y: 0, z: 0} 915 | m_LocalScale: {x: 1, y: 1, z: 1} 916 | m_Children: 917 | - {fileID: 1578584002} 918 | - {fileID: 1083526386} 919 | m_Father: {fileID: 246734505} 920 | m_RootOrder: 1 921 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 922 | m_AnchorMin: {x: 0.665, y: 0} 923 | m_AnchorMax: {x: 1, y: 1} 924 | m_AnchoredPosition: {x: 0.23010254, y: 0} 925 | m_SizeDelta: {x: -0.4610672, y: 0} 926 | m_Pivot: {x: 0.5, y: 0.5} 927 | --- !u!114 &218421684 928 | MonoBehaviour: 929 | m_ObjectHideFlags: 0 930 | m_CorrespondingSourceObject: {fileID: 0} 931 | m_PrefabInstance: {fileID: 0} 932 | m_PrefabAsset: {fileID: 0} 933 | m_GameObject: {fileID: 218421682} 934 | m_Enabled: 1 935 | m_EditorHideFlags: 0 936 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 937 | m_Name: 938 | m_EditorClassIdentifier: 939 | m_Material: {fileID: 0} 940 | m_Color: {r: 1, g: 1, b: 1, a: 1} 941 | m_RaycastTarget: 1 942 | m_Maskable: 1 943 | m_OnCullStateChanged: 944 | m_PersistentCalls: 945 | m_Calls: [] 946 | m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} 947 | m_Type: 1 948 | m_PreserveAspect: 0 949 | m_FillCenter: 1 950 | m_FillMethod: 4 951 | m_FillAmount: 1 952 | m_FillClockwise: 1 953 | m_FillOrigin: 0 954 | m_UseSpriteMesh: 0 955 | m_PixelsPerUnitMultiplier: 1 956 | --- !u!222 &218421685 957 | CanvasRenderer: 958 | m_ObjectHideFlags: 0 959 | m_CorrespondingSourceObject: {fileID: 0} 960 | m_PrefabInstance: {fileID: 0} 961 | m_PrefabAsset: {fileID: 0} 962 | m_GameObject: {fileID: 218421682} 963 | m_CullTransparentMesh: 0 964 | --- !u!114 &218421686 965 | MonoBehaviour: 966 | m_ObjectHideFlags: 0 967 | m_CorrespondingSourceObject: {fileID: 0} 968 | m_PrefabInstance: {fileID: 0} 969 | m_PrefabAsset: {fileID: 0} 970 | m_GameObject: {fileID: 218421682} 971 | m_Enabled: 1 972 | m_EditorHideFlags: 0 973 | m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} 974 | m_Name: 975 | m_EditorClassIdentifier: 976 | m_Navigation: 977 | m_Mode: 3 978 | m_SelectOnUp: {fileID: 0} 979 | m_SelectOnDown: {fileID: 0} 980 | m_SelectOnLeft: {fileID: 0} 981 | m_SelectOnRight: {fileID: 0} 982 | m_Transition: 1 983 | m_Colors: 984 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 985 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 986 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 987 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 988 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 989 | m_ColorMultiplier: 1 990 | m_FadeDuration: 0.1 991 | m_SpriteState: 992 | m_HighlightedSprite: {fileID: 0} 993 | m_PressedSprite: {fileID: 0} 994 | m_SelectedSprite: {fileID: 0} 995 | m_DisabledSprite: {fileID: 0} 996 | m_AnimationTriggers: 997 | m_NormalTrigger: Normal 998 | m_HighlightedTrigger: Highlighted 999 | m_PressedTrigger: Pressed 1000 | m_SelectedTrigger: Selected 1001 | m_DisabledTrigger: Disabled 1002 | m_Interactable: 1 1003 | m_TargetGraphic: {fileID: 218421684} 1004 | m_TextComponent: {fileID: 1083526387} 1005 | m_Placeholder: {fileID: 1578584003} 1006 | m_ContentType: 0 1007 | m_InputType: 0 1008 | m_AsteriskChar: 42 1009 | m_KeyboardType: 0 1010 | m_LineType: 0 1011 | m_HideMobileInput: 0 1012 | m_CharacterValidation: 0 1013 | m_CharacterLimit: 0 1014 | m_OnEndEdit: 1015 | m_PersistentCalls: 1016 | m_Calls: [] 1017 | m_OnValueChanged: 1018 | m_PersistentCalls: 1019 | m_Calls: [] 1020 | m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 1021 | m_CustomCaretColor: 0 1022 | m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} 1023 | m_Text: 1024 | m_CaretBlinkRate: 0.85 1025 | m_CaretWidth: 1 1026 | m_ReadOnly: 0 1027 | --- !u!1 &246734504 1028 | GameObject: 1029 | m_ObjectHideFlags: 0 1030 | m_CorrespondingSourceObject: {fileID: 0} 1031 | m_PrefabInstance: {fileID: 0} 1032 | m_PrefabAsset: {fileID: 0} 1033 | serializedVersion: 6 1034 | m_Component: 1035 | - component: {fileID: 246734505} 1036 | m_Layer: 5 1037 | m_Name: SendServer 1038 | m_TagString: Untagged 1039 | m_Icon: {fileID: 0} 1040 | m_NavMeshLayer: 0 1041 | m_StaticEditorFlags: 0 1042 | m_IsActive: 1 1043 | --- !u!224 &246734505 1044 | RectTransform: 1045 | m_ObjectHideFlags: 0 1046 | m_CorrespondingSourceObject: {fileID: 0} 1047 | m_PrefabInstance: {fileID: 0} 1048 | m_PrefabAsset: {fileID: 0} 1049 | m_GameObject: {fileID: 246734504} 1050 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1051 | m_LocalPosition: {x: 0, y: 0, z: 0} 1052 | m_LocalScale: {x: 1, y: 1, z: 1} 1053 | m_Children: 1054 | - {fileID: 17587045} 1055 | - {fileID: 218421683} 1056 | m_Father: {fileID: 53837260} 1057 | m_RootOrder: 1 1058 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1059 | m_AnchorMin: {x: 0, y: 0.3911422} 1060 | m_AnchorMax: {x: 0.9568198, y: 0.5922145} 1061 | m_AnchoredPosition: {x: 0, y: -0.49230957} 1062 | m_SizeDelta: {x: 0, y: 0} 1063 | m_Pivot: {x: 0, y: 0.5} 1064 | --- !u!1 &300588218 1065 | GameObject: 1066 | m_ObjectHideFlags: 0 1067 | m_CorrespondingSourceObject: {fileID: 0} 1068 | m_PrefabInstance: {fileID: 0} 1069 | m_PrefabAsset: {fileID: 0} 1070 | serializedVersion: 6 1071 | m_Component: 1072 | - component: {fileID: 300588219} 1073 | - component: {fileID: 300588221} 1074 | - component: {fileID: 300588220} 1075 | m_Layer: 5 1076 | m_Name: Title 1077 | m_TagString: Untagged 1078 | m_Icon: {fileID: 0} 1079 | m_NavMeshLayer: 0 1080 | m_StaticEditorFlags: 0 1081 | m_IsActive: 1 1082 | --- !u!224 &300588219 1083 | RectTransform: 1084 | m_ObjectHideFlags: 0 1085 | m_CorrespondingSourceObject: {fileID: 0} 1086 | m_PrefabInstance: {fileID: 0} 1087 | m_PrefabAsset: {fileID: 0} 1088 | m_GameObject: {fileID: 300588218} 1089 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1090 | m_LocalPosition: {x: 0, y: 0, z: 0} 1091 | m_LocalScale: {x: 1, y: 1, z: 0} 1092 | m_Children: [] 1093 | m_Father: {fileID: 1865169435} 1094 | m_RootOrder: 0 1095 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1096 | m_AnchorMin: {x: 0, y: 0} 1097 | m_AnchorMax: {x: 1, y: 1} 1098 | m_AnchoredPosition: {x: 0, y: 0} 1099 | m_SizeDelta: {x: 0, y: 0} 1100 | m_Pivot: {x: 0.5, y: 0.5} 1101 | --- !u!114 &300588220 1102 | MonoBehaviour: 1103 | m_ObjectHideFlags: 0 1104 | m_CorrespondingSourceObject: {fileID: 0} 1105 | m_PrefabInstance: {fileID: 0} 1106 | m_PrefabAsset: {fileID: 0} 1107 | m_GameObject: {fileID: 300588218} 1108 | m_Enabled: 1 1109 | m_EditorHideFlags: 0 1110 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1111 | m_Name: 1112 | m_EditorClassIdentifier: 1113 | m_Material: {fileID: 0} 1114 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 1115 | m_RaycastTarget: 1 1116 | m_Maskable: 1 1117 | m_OnCullStateChanged: 1118 | m_PersistentCalls: 1119 | m_Calls: [] 1120 | m_FontData: 1121 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1122 | m_FontSize: 41 1123 | m_FontStyle: 1 1124 | m_BestFit: 0 1125 | m_MinSize: 0 1126 | m_MaxSize: 300 1127 | m_Alignment: 3 1128 | m_AlignByGeometry: 0 1129 | m_RichText: 1 1130 | m_HorizontalOverflow: 0 1131 | m_VerticalOverflow: 1 1132 | m_LineSpacing: 1 1133 | m_Text: CLIENT 1134 | --- !u!222 &300588221 1135 | CanvasRenderer: 1136 | m_ObjectHideFlags: 0 1137 | m_CorrespondingSourceObject: {fileID: 0} 1138 | m_PrefabInstance: {fileID: 0} 1139 | m_PrefabAsset: {fileID: 0} 1140 | m_GameObject: {fileID: 300588218} 1141 | m_CullTransparentMesh: 0 1142 | --- !u!1 &305585435 1143 | GameObject: 1144 | m_ObjectHideFlags: 0 1145 | m_CorrespondingSourceObject: {fileID: 0} 1146 | m_PrefabInstance: {fileID: 0} 1147 | m_PrefabAsset: {fileID: 0} 1148 | serializedVersion: 6 1149 | m_Component: 1150 | - component: {fileID: 305585436} 1151 | m_Layer: 5 1152 | m_Name: Sliding Area 1153 | m_TagString: Untagged 1154 | m_Icon: {fileID: 0} 1155 | m_NavMeshLayer: 0 1156 | m_StaticEditorFlags: 0 1157 | m_IsActive: 1 1158 | --- !u!224 &305585436 1159 | RectTransform: 1160 | m_ObjectHideFlags: 0 1161 | m_CorrespondingSourceObject: {fileID: 0} 1162 | m_PrefabInstance: {fileID: 0} 1163 | m_PrefabAsset: {fileID: 0} 1164 | m_GameObject: {fileID: 305585435} 1165 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1166 | m_LocalPosition: {x: 0, y: 0, z: 0} 1167 | m_LocalScale: {x: 1, y: 1, z: 1} 1168 | m_Children: 1169 | - {fileID: 1147770386} 1170 | m_Father: {fileID: 1649121704} 1171 | m_RootOrder: 0 1172 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1173 | m_AnchorMin: {x: 0, y: 0} 1174 | m_AnchorMax: {x: 1, y: 1} 1175 | m_AnchoredPosition: {x: 0, y: 0} 1176 | m_SizeDelta: {x: -20, y: -20} 1177 | m_Pivot: {x: 0.5, y: 0.5} 1178 | --- !u!1 &325365752 1179 | GameObject: 1180 | m_ObjectHideFlags: 0 1181 | m_CorrespondingSourceObject: {fileID: 0} 1182 | m_PrefabInstance: {fileID: 0} 1183 | m_PrefabAsset: {fileID: 0} 1184 | serializedVersion: 6 1185 | m_Component: 1186 | - component: {fileID: 325365753} 1187 | - component: {fileID: 325365756} 1188 | - component: {fileID: 325365755} 1189 | - component: {fileID: 325365754} 1190 | m_Layer: 5 1191 | m_Name: Viewport 1192 | m_TagString: Untagged 1193 | m_Icon: {fileID: 0} 1194 | m_NavMeshLayer: 0 1195 | m_StaticEditorFlags: 0 1196 | m_IsActive: 1 1197 | --- !u!224 &325365753 1198 | RectTransform: 1199 | m_ObjectHideFlags: 0 1200 | m_CorrespondingSourceObject: {fileID: 0} 1201 | m_PrefabInstance: {fileID: 0} 1202 | m_PrefabAsset: {fileID: 0} 1203 | m_GameObject: {fileID: 325365752} 1204 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1205 | m_LocalPosition: {x: 0, y: 0, z: 0} 1206 | m_LocalScale: {x: 1, y: 1, z: 1} 1207 | m_Children: 1208 | - {fileID: 358682906} 1209 | m_Father: {fileID: 1636111363} 1210 | m_RootOrder: 0 1211 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1212 | m_AnchorMin: {x: 0, y: 0} 1213 | m_AnchorMax: {x: 1, y: 1} 1214 | m_AnchoredPosition: {x: 0, y: 0} 1215 | m_SizeDelta: {x: 0, y: -17} 1216 | m_Pivot: {x: 0, y: 1} 1217 | --- !u!114 &325365754 1218 | MonoBehaviour: 1219 | m_ObjectHideFlags: 0 1220 | m_CorrespondingSourceObject: {fileID: 0} 1221 | m_PrefabInstance: {fileID: 0} 1222 | m_PrefabAsset: {fileID: 0} 1223 | m_GameObject: {fileID: 325365752} 1224 | m_Enabled: 1 1225 | m_EditorHideFlags: 0 1226 | m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} 1227 | m_Name: 1228 | m_EditorClassIdentifier: 1229 | m_ShowMaskGraphic: 0 1230 | --- !u!114 &325365755 1231 | MonoBehaviour: 1232 | m_ObjectHideFlags: 0 1233 | m_CorrespondingSourceObject: {fileID: 0} 1234 | m_PrefabInstance: {fileID: 0} 1235 | m_PrefabAsset: {fileID: 0} 1236 | m_GameObject: {fileID: 325365752} 1237 | m_Enabled: 1 1238 | m_EditorHideFlags: 0 1239 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1240 | m_Name: 1241 | m_EditorClassIdentifier: 1242 | m_Material: {fileID: 0} 1243 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1244 | m_RaycastTarget: 1 1245 | m_Maskable: 1 1246 | m_OnCullStateChanged: 1247 | m_PersistentCalls: 1248 | m_Calls: [] 1249 | m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} 1250 | m_Type: 1 1251 | m_PreserveAspect: 0 1252 | m_FillCenter: 1 1253 | m_FillMethod: 4 1254 | m_FillAmount: 1 1255 | m_FillClockwise: 1 1256 | m_FillOrigin: 0 1257 | m_UseSpriteMesh: 0 1258 | m_PixelsPerUnitMultiplier: 1 1259 | --- !u!222 &325365756 1260 | CanvasRenderer: 1261 | m_ObjectHideFlags: 0 1262 | m_CorrespondingSourceObject: {fileID: 0} 1263 | m_PrefabInstance: {fileID: 0} 1264 | m_PrefabAsset: {fileID: 0} 1265 | m_GameObject: {fileID: 325365752} 1266 | m_CullTransparentMesh: 0 1267 | --- !u!1 &358682905 1268 | GameObject: 1269 | m_ObjectHideFlags: 0 1270 | m_CorrespondingSourceObject: {fileID: 0} 1271 | m_PrefabInstance: {fileID: 0} 1272 | m_PrefabAsset: {fileID: 0} 1273 | serializedVersion: 6 1274 | m_Component: 1275 | - component: {fileID: 358682906} 1276 | - component: {fileID: 358682909} 1277 | - component: {fileID: 358682908} 1278 | - component: {fileID: 358682907} 1279 | m_Layer: 5 1280 | m_Name: Content 1281 | m_TagString: Untagged 1282 | m_Icon: {fileID: 0} 1283 | m_NavMeshLayer: 0 1284 | m_StaticEditorFlags: 0 1285 | m_IsActive: 1 1286 | --- !u!224 &358682906 1287 | RectTransform: 1288 | m_ObjectHideFlags: 0 1289 | m_CorrespondingSourceObject: {fileID: 0} 1290 | m_PrefabInstance: {fileID: 0} 1291 | m_PrefabAsset: {fileID: 0} 1292 | m_GameObject: {fileID: 358682905} 1293 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1294 | m_LocalPosition: {x: 0, y: 0, z: 0} 1295 | m_LocalScale: {x: 1, y: 1, z: 1} 1296 | m_Children: [] 1297 | m_Father: {fileID: 325365753} 1298 | m_RootOrder: 0 1299 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1300 | m_AnchorMin: {x: 0, y: 1} 1301 | m_AnchorMax: {x: 0.94649935, y: 1} 1302 | m_AnchoredPosition: {x: 0, y: 0} 1303 | m_SizeDelta: {x: -14.525864, y: 0} 1304 | m_Pivot: {x: 0, y: 1} 1305 | --- !u!114 &358682907 1306 | MonoBehaviour: 1307 | m_ObjectHideFlags: 0 1308 | m_CorrespondingSourceObject: {fileID: 0} 1309 | m_PrefabInstance: {fileID: 0} 1310 | m_PrefabAsset: {fileID: 0} 1311 | m_GameObject: {fileID: 358682905} 1312 | m_Enabled: 1 1313 | m_EditorHideFlags: 0 1314 | m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} 1315 | m_Name: 1316 | m_EditorClassIdentifier: 1317 | m_HorizontalFit: 0 1318 | m_VerticalFit: 2 1319 | --- !u!114 &358682908 1320 | MonoBehaviour: 1321 | m_ObjectHideFlags: 0 1322 | m_CorrespondingSourceObject: {fileID: 0} 1323 | m_PrefabInstance: {fileID: 0} 1324 | m_PrefabAsset: {fileID: 0} 1325 | m_GameObject: {fileID: 358682905} 1326 | m_Enabled: 1 1327 | m_EditorHideFlags: 0 1328 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1329 | m_Name: 1330 | m_EditorClassIdentifier: 1331 | m_Material: {fileID: 0} 1332 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 1333 | m_RaycastTarget: 1 1334 | m_Maskable: 1 1335 | m_OnCullStateChanged: 1336 | m_PersistentCalls: 1337 | m_Calls: [] 1338 | m_FontData: 1339 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1340 | m_FontSize: 14 1341 | m_FontStyle: 0 1342 | m_BestFit: 0 1343 | m_MinSize: 10 1344 | m_MaxSize: 40 1345 | m_Alignment: 0 1346 | m_AlignByGeometry: 0 1347 | m_RichText: 1 1348 | m_HorizontalOverflow: 0 1349 | m_VerticalOverflow: 0 1350 | m_LineSpacing: 1 1351 | m_Text: ' Server Logs: 1352 | 1353 | ' 1354 | --- !u!222 &358682909 1355 | CanvasRenderer: 1356 | m_ObjectHideFlags: 0 1357 | m_CorrespondingSourceObject: {fileID: 0} 1358 | m_PrefabInstance: {fileID: 0} 1359 | m_PrefabAsset: {fileID: 0} 1360 | m_GameObject: {fileID: 358682905} 1361 | m_CullTransparentMesh: 0 1362 | --- !u!1 &424903499 1363 | GameObject: 1364 | m_ObjectHideFlags: 0 1365 | m_CorrespondingSourceObject: {fileID: 0} 1366 | m_PrefabInstance: {fileID: 0} 1367 | m_PrefabAsset: {fileID: 0} 1368 | serializedVersion: 6 1369 | m_Component: 1370 | - component: {fileID: 424903501} 1371 | - component: {fileID: 424903500} 1372 | m_Layer: 0 1373 | m_Name: Server 1374 | m_TagString: Untagged 1375 | m_Icon: {fileID: 0} 1376 | m_NavMeshLayer: 0 1377 | m_StaticEditorFlags: 0 1378 | m_IsActive: 1 1379 | --- !u!114 &424903500 1380 | MonoBehaviour: 1381 | m_ObjectHideFlags: 0 1382 | m_CorrespondingSourceObject: {fileID: 0} 1383 | m_PrefabInstance: {fileID: 0} 1384 | m_PrefabAsset: {fileID: 0} 1385 | m_GameObject: {fileID: 424903499} 1386 | m_Enabled: 1 1387 | m_EditorHideFlags: 0 1388 | m_Script: {fileID: 11500000, guid: 86938d8e93081c346bb95b5ed0dc14ce, type: 3} 1389 | m_Name: 1390 | m_EditorClassIdentifier: 1391 | ipAdress: 127.0.0.1 1392 | port: 54010 1393 | waitingMessagesFrequency: 1 1394 | receivingTimeOut: 0 1395 | m_ReceivedMessage: 1396 | m_StartServerButton: {fileID: 1515171188} 1397 | m_SendToClientButton: {fileID: 898017724} 1398 | m_SendToClientInputField: {fileID: 2098098883} 1399 | m_CloseServerButton: {fileID: 1194465309} 1400 | m_ServerLoggerScrollRect: {fileID: 1636111364} 1401 | --- !u!4 &424903501 1402 | Transform: 1403 | m_ObjectHideFlags: 0 1404 | m_CorrespondingSourceObject: {fileID: 0} 1405 | m_PrefabInstance: {fileID: 0} 1406 | m_PrefabAsset: {fileID: 0} 1407 | m_GameObject: {fileID: 424903499} 1408 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1409 | m_LocalPosition: {x: 349.83594, y: 218.61807, z: 0} 1410 | m_LocalScale: {x: 1, y: 1, z: 1} 1411 | m_Children: [] 1412 | m_Father: {fileID: 0} 1413 | m_RootOrder: 2 1414 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1415 | --- !u!1 &429689808 1416 | GameObject: 1417 | m_ObjectHideFlags: 0 1418 | m_CorrespondingSourceObject: {fileID: 0} 1419 | m_PrefabInstance: {fileID: 0} 1420 | m_PrefabAsset: {fileID: 0} 1421 | serializedVersion: 6 1422 | m_Component: 1423 | - component: {fileID: 429689809} 1424 | - component: {fileID: 429689811} 1425 | - component: {fileID: 429689810} 1426 | m_Layer: 5 1427 | m_Name: Panel 1428 | m_TagString: Untagged 1429 | m_Icon: {fileID: 0} 1430 | m_NavMeshLayer: 0 1431 | m_StaticEditorFlags: 0 1432 | m_IsActive: 1 1433 | --- !u!224 &429689809 1434 | RectTransform: 1435 | m_ObjectHideFlags: 0 1436 | m_CorrespondingSourceObject: {fileID: 0} 1437 | m_PrefabInstance: {fileID: 0} 1438 | m_PrefabAsset: {fileID: 0} 1439 | m_GameObject: {fileID: 429689808} 1440 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1441 | m_LocalPosition: {x: 0, y: 0, z: 0} 1442 | m_LocalScale: {x: 1, y: 1, z: 0} 1443 | m_Children: [] 1444 | m_Father: {fileID: 1591457256} 1445 | m_RootOrder: 0 1446 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1447 | m_AnchorMin: {x: 0, y: 0} 1448 | m_AnchorMax: {x: 1, y: 1} 1449 | m_AnchoredPosition: {x: 0, y: 0} 1450 | m_SizeDelta: {x: 0, y: 0} 1451 | m_Pivot: {x: 0.5, y: 0.5} 1452 | --- !u!114 &429689810 1453 | MonoBehaviour: 1454 | m_ObjectHideFlags: 0 1455 | m_CorrespondingSourceObject: {fileID: 0} 1456 | m_PrefabInstance: {fileID: 0} 1457 | m_PrefabAsset: {fileID: 0} 1458 | m_GameObject: {fileID: 429689808} 1459 | m_Enabled: 1 1460 | m_EditorHideFlags: 0 1461 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1462 | m_Name: 1463 | m_EditorClassIdentifier: 1464 | m_Material: {fileID: 0} 1465 | m_Color: {r: 0.30588236, g: 0.19215687, b: 0.9254902, a: 0.28627452} 1466 | m_RaycastTarget: 1 1467 | m_Maskable: 1 1468 | m_OnCullStateChanged: 1469 | m_PersistentCalls: 1470 | m_Calls: [] 1471 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 1472 | m_Type: 1 1473 | m_PreserveAspect: 0 1474 | m_FillCenter: 1 1475 | m_FillMethod: 4 1476 | m_FillAmount: 1 1477 | m_FillClockwise: 1 1478 | m_FillOrigin: 0 1479 | m_UseSpriteMesh: 0 1480 | m_PixelsPerUnitMultiplier: 1 1481 | --- !u!222 &429689811 1482 | CanvasRenderer: 1483 | m_ObjectHideFlags: 0 1484 | m_CorrespondingSourceObject: {fileID: 0} 1485 | m_PrefabInstance: {fileID: 0} 1486 | m_PrefabAsset: {fileID: 0} 1487 | m_GameObject: {fileID: 429689808} 1488 | m_CullTransparentMesh: 0 1489 | --- !u!1 &447969668 1490 | GameObject: 1491 | m_ObjectHideFlags: 0 1492 | m_CorrespondingSourceObject: {fileID: 0} 1493 | m_PrefabInstance: {fileID: 0} 1494 | m_PrefabAsset: {fileID: 0} 1495 | serializedVersion: 6 1496 | m_Component: 1497 | - component: {fileID: 447969669} 1498 | m_Layer: 5 1499 | m_Name: Sliding Area 1500 | m_TagString: Untagged 1501 | m_Icon: {fileID: 0} 1502 | m_NavMeshLayer: 0 1503 | m_StaticEditorFlags: 0 1504 | m_IsActive: 1 1505 | --- !u!224 &447969669 1506 | RectTransform: 1507 | m_ObjectHideFlags: 0 1508 | m_CorrespondingSourceObject: {fileID: 0} 1509 | m_PrefabInstance: {fileID: 0} 1510 | m_PrefabAsset: {fileID: 0} 1511 | m_GameObject: {fileID: 447969668} 1512 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1513 | m_LocalPosition: {x: 0, y: 0, z: 0} 1514 | m_LocalScale: {x: 1, y: 1, z: 1} 1515 | m_Children: 1516 | - {fileID: 581446573} 1517 | m_Father: {fileID: 198872070} 1518 | m_RootOrder: 0 1519 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1520 | m_AnchorMin: {x: 0, y: 0} 1521 | m_AnchorMax: {x: 1, y: 1} 1522 | m_AnchoredPosition: {x: 0, y: 0} 1523 | m_SizeDelta: {x: -20, y: -20} 1524 | m_Pivot: {x: 0.5, y: 0.5} 1525 | --- !u!1 &520946704 1526 | GameObject: 1527 | m_ObjectHideFlags: 0 1528 | m_CorrespondingSourceObject: {fileID: 0} 1529 | m_PrefabInstance: {fileID: 0} 1530 | m_PrefabAsset: {fileID: 0} 1531 | serializedVersion: 6 1532 | m_Component: 1533 | - component: {fileID: 520946705} 1534 | - component: {fileID: 520946707} 1535 | - component: {fileID: 520946706} 1536 | m_Layer: 5 1537 | m_Name: Text 1538 | m_TagString: Untagged 1539 | m_Icon: {fileID: 0} 1540 | m_NavMeshLayer: 0 1541 | m_StaticEditorFlags: 0 1542 | m_IsActive: 1 1543 | --- !u!224 &520946705 1544 | RectTransform: 1545 | m_ObjectHideFlags: 0 1546 | m_CorrespondingSourceObject: {fileID: 0} 1547 | m_PrefabInstance: {fileID: 0} 1548 | m_PrefabAsset: {fileID: 0} 1549 | m_GameObject: {fileID: 520946704} 1550 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1551 | m_LocalPosition: {x: 0, y: 0, z: 0} 1552 | m_LocalScale: {x: 1, y: 1, z: 1} 1553 | m_Children: [] 1554 | m_Father: {fileID: 1194465308} 1555 | m_RootOrder: 0 1556 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1557 | m_AnchorMin: {x: 0, y: 0} 1558 | m_AnchorMax: {x: 1, y: 1} 1559 | m_AnchoredPosition: {x: 0, y: 0} 1560 | m_SizeDelta: {x: 0, y: 0} 1561 | m_Pivot: {x: 0.5, y: 0.5} 1562 | --- !u!114 &520946706 1563 | MonoBehaviour: 1564 | m_ObjectHideFlags: 0 1565 | m_CorrespondingSourceObject: {fileID: 0} 1566 | m_PrefabInstance: {fileID: 0} 1567 | m_PrefabAsset: {fileID: 0} 1568 | m_GameObject: {fileID: 520946704} 1569 | m_Enabled: 1 1570 | m_EditorHideFlags: 0 1571 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1572 | m_Name: 1573 | m_EditorClassIdentifier: 1574 | m_Material: {fileID: 0} 1575 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 1576 | m_RaycastTarget: 1 1577 | m_Maskable: 1 1578 | m_OnCullStateChanged: 1579 | m_PersistentCalls: 1580 | m_Calls: [] 1581 | m_FontData: 1582 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1583 | m_FontSize: 14 1584 | m_FontStyle: 0 1585 | m_BestFit: 0 1586 | m_MinSize: 10 1587 | m_MaxSize: 40 1588 | m_Alignment: 4 1589 | m_AlignByGeometry: 0 1590 | m_RichText: 1 1591 | m_HorizontalOverflow: 0 1592 | m_VerticalOverflow: 0 1593 | m_LineSpacing: 1 1594 | m_Text: Close Server 1595 | --- !u!222 &520946707 1596 | CanvasRenderer: 1597 | m_ObjectHideFlags: 0 1598 | m_CorrespondingSourceObject: {fileID: 0} 1599 | m_PrefabInstance: {fileID: 0} 1600 | m_PrefabAsset: {fileID: 0} 1601 | m_GameObject: {fileID: 520946704} 1602 | m_CullTransparentMesh: 0 1603 | --- !u!1 &573462074 1604 | GameObject: 1605 | m_ObjectHideFlags: 0 1606 | m_CorrespondingSourceObject: {fileID: 0} 1607 | m_PrefabInstance: {fileID: 0} 1608 | m_PrefabAsset: {fileID: 0} 1609 | serializedVersion: 6 1610 | m_Component: 1611 | - component: {fileID: 573462075} 1612 | - component: {fileID: 573462078} 1613 | - component: {fileID: 573462077} 1614 | - component: {fileID: 573462076} 1615 | m_Layer: 5 1616 | m_Name: Viewport 1617 | m_TagString: Untagged 1618 | m_Icon: {fileID: 0} 1619 | m_NavMeshLayer: 0 1620 | m_StaticEditorFlags: 0 1621 | m_IsActive: 1 1622 | --- !u!224 &573462075 1623 | RectTransform: 1624 | m_ObjectHideFlags: 0 1625 | m_CorrespondingSourceObject: {fileID: 0} 1626 | m_PrefabInstance: {fileID: 0} 1627 | m_PrefabAsset: {fileID: 0} 1628 | m_GameObject: {fileID: 573462074} 1629 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1630 | m_LocalPosition: {x: 0, y: 0, z: 0} 1631 | m_LocalScale: {x: 1, y: 1, z: 1} 1632 | m_Children: 1633 | - {fileID: 1854101312} 1634 | m_Father: {fileID: 1315929537} 1635 | m_RootOrder: 0 1636 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1637 | m_AnchorMin: {x: 0, y: 0} 1638 | m_AnchorMax: {x: 1, y: 1} 1639 | m_AnchoredPosition: {x: 0, y: 0} 1640 | m_SizeDelta: {x: 0, y: -17} 1641 | m_Pivot: {x: 0, y: 1} 1642 | --- !u!114 &573462076 1643 | MonoBehaviour: 1644 | m_ObjectHideFlags: 0 1645 | m_CorrespondingSourceObject: {fileID: 0} 1646 | m_PrefabInstance: {fileID: 0} 1647 | m_PrefabAsset: {fileID: 0} 1648 | m_GameObject: {fileID: 573462074} 1649 | m_Enabled: 1 1650 | m_EditorHideFlags: 0 1651 | m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} 1652 | m_Name: 1653 | m_EditorClassIdentifier: 1654 | m_ShowMaskGraphic: 0 1655 | --- !u!114 &573462077 1656 | MonoBehaviour: 1657 | m_ObjectHideFlags: 0 1658 | m_CorrespondingSourceObject: {fileID: 0} 1659 | m_PrefabInstance: {fileID: 0} 1660 | m_PrefabAsset: {fileID: 0} 1661 | m_GameObject: {fileID: 573462074} 1662 | m_Enabled: 1 1663 | m_EditorHideFlags: 0 1664 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1665 | m_Name: 1666 | m_EditorClassIdentifier: 1667 | m_Material: {fileID: 0} 1668 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1669 | m_RaycastTarget: 1 1670 | m_Maskable: 1 1671 | m_OnCullStateChanged: 1672 | m_PersistentCalls: 1673 | m_Calls: [] 1674 | m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} 1675 | m_Type: 1 1676 | m_PreserveAspect: 0 1677 | m_FillCenter: 1 1678 | m_FillMethod: 4 1679 | m_FillAmount: 1 1680 | m_FillClockwise: 1 1681 | m_FillOrigin: 0 1682 | m_UseSpriteMesh: 0 1683 | m_PixelsPerUnitMultiplier: 1 1684 | --- !u!222 &573462078 1685 | CanvasRenderer: 1686 | m_ObjectHideFlags: 0 1687 | m_CorrespondingSourceObject: {fileID: 0} 1688 | m_PrefabInstance: {fileID: 0} 1689 | m_PrefabAsset: {fileID: 0} 1690 | m_GameObject: {fileID: 573462074} 1691 | m_CullTransparentMesh: 0 1692 | --- !u!1 &577058272 1693 | GameObject: 1694 | m_ObjectHideFlags: 0 1695 | m_CorrespondingSourceObject: {fileID: 0} 1696 | m_PrefabInstance: {fileID: 0} 1697 | m_PrefabAsset: {fileID: 0} 1698 | serializedVersion: 6 1699 | m_Component: 1700 | - component: {fileID: 577058273} 1701 | - component: {fileID: 577058275} 1702 | - component: {fileID: 577058274} 1703 | m_Layer: 5 1704 | m_Name: Panel 1705 | m_TagString: Untagged 1706 | m_Icon: {fileID: 0} 1707 | m_NavMeshLayer: 0 1708 | m_StaticEditorFlags: 0 1709 | m_IsActive: 1 1710 | --- !u!224 &577058273 1711 | RectTransform: 1712 | m_ObjectHideFlags: 0 1713 | m_CorrespondingSourceObject: {fileID: 0} 1714 | m_PrefabInstance: {fileID: 0} 1715 | m_PrefabAsset: {fileID: 0} 1716 | m_GameObject: {fileID: 577058272} 1717 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1718 | m_LocalPosition: {x: 0, y: 0, z: 0} 1719 | m_LocalScale: {x: 1, y: 1, z: 0} 1720 | m_Children: [] 1721 | m_Father: {fileID: 2140781251} 1722 | m_RootOrder: 0 1723 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1724 | m_AnchorMin: {x: 0, y: 0} 1725 | m_AnchorMax: {x: 1, y: 1} 1726 | m_AnchoredPosition: {x: 0, y: 0} 1727 | m_SizeDelta: {x: 0, y: 0} 1728 | m_Pivot: {x: 0.5, y: 0.5} 1729 | --- !u!114 &577058274 1730 | MonoBehaviour: 1731 | m_ObjectHideFlags: 0 1732 | m_CorrespondingSourceObject: {fileID: 0} 1733 | m_PrefabInstance: {fileID: 0} 1734 | m_PrefabAsset: {fileID: 0} 1735 | m_GameObject: {fileID: 577058272} 1736 | m_Enabled: 1 1737 | m_EditorHideFlags: 0 1738 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1739 | m_Name: 1740 | m_EditorClassIdentifier: 1741 | m_Material: {fileID: 0} 1742 | m_Color: {r: 0.30588236, g: 0.19215687, b: 0.9254902, a: 0.28627452} 1743 | m_RaycastTarget: 1 1744 | m_Maskable: 1 1745 | m_OnCullStateChanged: 1746 | m_PersistentCalls: 1747 | m_Calls: [] 1748 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 1749 | m_Type: 1 1750 | m_PreserveAspect: 0 1751 | m_FillCenter: 1 1752 | m_FillMethod: 4 1753 | m_FillAmount: 1 1754 | m_FillClockwise: 1 1755 | m_FillOrigin: 0 1756 | m_UseSpriteMesh: 0 1757 | m_PixelsPerUnitMultiplier: 1 1758 | --- !u!222 &577058275 1759 | CanvasRenderer: 1760 | m_ObjectHideFlags: 0 1761 | m_CorrespondingSourceObject: {fileID: 0} 1762 | m_PrefabInstance: {fileID: 0} 1763 | m_PrefabAsset: {fileID: 0} 1764 | m_GameObject: {fileID: 577058272} 1765 | m_CullTransparentMesh: 0 1766 | --- !u!1 &581446572 1767 | GameObject: 1768 | m_ObjectHideFlags: 0 1769 | m_CorrespondingSourceObject: {fileID: 0} 1770 | m_PrefabInstance: {fileID: 0} 1771 | m_PrefabAsset: {fileID: 0} 1772 | serializedVersion: 6 1773 | m_Component: 1774 | - component: {fileID: 581446573} 1775 | - component: {fileID: 581446575} 1776 | - component: {fileID: 581446574} 1777 | m_Layer: 5 1778 | m_Name: Handle 1779 | m_TagString: Untagged 1780 | m_Icon: {fileID: 0} 1781 | m_NavMeshLayer: 0 1782 | m_StaticEditorFlags: 0 1783 | m_IsActive: 1 1784 | --- !u!224 &581446573 1785 | RectTransform: 1786 | m_ObjectHideFlags: 0 1787 | m_CorrespondingSourceObject: {fileID: 0} 1788 | m_PrefabInstance: {fileID: 0} 1789 | m_PrefabAsset: {fileID: 0} 1790 | m_GameObject: {fileID: 581446572} 1791 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1792 | m_LocalPosition: {x: 0, y: 0, z: 0} 1793 | m_LocalScale: {x: 1, y: 1, z: 1} 1794 | m_Children: [] 1795 | m_Father: {fileID: 447969669} 1796 | m_RootOrder: 0 1797 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1798 | m_AnchorMin: {x: 0, y: 0} 1799 | m_AnchorMax: {x: 0, y: 0} 1800 | m_AnchoredPosition: {x: 0, y: 0} 1801 | m_SizeDelta: {x: 20, y: 20} 1802 | m_Pivot: {x: 0.5, y: 0.5} 1803 | --- !u!114 &581446574 1804 | MonoBehaviour: 1805 | m_ObjectHideFlags: 0 1806 | m_CorrespondingSourceObject: {fileID: 0} 1807 | m_PrefabInstance: {fileID: 0} 1808 | m_PrefabAsset: {fileID: 0} 1809 | m_GameObject: {fileID: 581446572} 1810 | m_Enabled: 1 1811 | m_EditorHideFlags: 0 1812 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1813 | m_Name: 1814 | m_EditorClassIdentifier: 1815 | m_Material: {fileID: 0} 1816 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1817 | m_RaycastTarget: 1 1818 | m_Maskable: 1 1819 | m_OnCullStateChanged: 1820 | m_PersistentCalls: 1821 | m_Calls: [] 1822 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1823 | m_Type: 1 1824 | m_PreserveAspect: 0 1825 | m_FillCenter: 1 1826 | m_FillMethod: 4 1827 | m_FillAmount: 1 1828 | m_FillClockwise: 1 1829 | m_FillOrigin: 0 1830 | m_UseSpriteMesh: 0 1831 | m_PixelsPerUnitMultiplier: 1 1832 | --- !u!222 &581446575 1833 | CanvasRenderer: 1834 | m_ObjectHideFlags: 0 1835 | m_CorrespondingSourceObject: {fileID: 0} 1836 | m_PrefabInstance: {fileID: 0} 1837 | m_PrefabAsset: {fileID: 0} 1838 | m_GameObject: {fileID: 581446572} 1839 | m_CullTransparentMesh: 0 1840 | --- !u!1 &641806908 1841 | GameObject: 1842 | m_ObjectHideFlags: 0 1843 | m_CorrespondingSourceObject: {fileID: 0} 1844 | m_PrefabInstance: {fileID: 0} 1845 | m_PrefabAsset: {fileID: 0} 1846 | serializedVersion: 6 1847 | m_Component: 1848 | - component: {fileID: 641806909} 1849 | - component: {fileID: 641806912} 1850 | - component: {fileID: 641806911} 1851 | - component: {fileID: 641806910} 1852 | m_Layer: 5 1853 | m_Name: Canvas 1854 | m_TagString: Untagged 1855 | m_Icon: {fileID: 0} 1856 | m_NavMeshLayer: 0 1857 | m_StaticEditorFlags: 0 1858 | m_IsActive: 1 1859 | --- !u!224 &641806909 1860 | RectTransform: 1861 | m_ObjectHideFlags: 0 1862 | m_CorrespondingSourceObject: {fileID: 0} 1863 | m_PrefabInstance: {fileID: 0} 1864 | m_PrefabAsset: {fileID: 0} 1865 | m_GameObject: {fileID: 641806908} 1866 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1867 | m_LocalPosition: {x: 0, y: 0, z: 0} 1868 | m_LocalScale: {x: 0, y: 0, z: 0} 1869 | m_Children: 1870 | - {fileID: 1342787545} 1871 | - {fileID: 1697541020} 1872 | m_Father: {fileID: 0} 1873 | m_RootOrder: 1 1874 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1875 | m_AnchorMin: {x: 0, y: 0} 1876 | m_AnchorMax: {x: 0, y: 0} 1877 | m_AnchoredPosition: {x: 0, y: 0} 1878 | m_SizeDelta: {x: 0, y: 0} 1879 | m_Pivot: {x: 0, y: 0} 1880 | --- !u!114 &641806910 1881 | MonoBehaviour: 1882 | m_ObjectHideFlags: 0 1883 | m_CorrespondingSourceObject: {fileID: 0} 1884 | m_PrefabInstance: {fileID: 0} 1885 | m_PrefabAsset: {fileID: 0} 1886 | m_GameObject: {fileID: 641806908} 1887 | m_Enabled: 1 1888 | m_EditorHideFlags: 0 1889 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 1890 | m_Name: 1891 | m_EditorClassIdentifier: 1892 | m_IgnoreReversedGraphics: 1 1893 | m_BlockingObjects: 0 1894 | m_BlockingMask: 1895 | serializedVersion: 2 1896 | m_Bits: 4294967295 1897 | --- !u!114 &641806911 1898 | MonoBehaviour: 1899 | m_ObjectHideFlags: 0 1900 | m_CorrespondingSourceObject: {fileID: 0} 1901 | m_PrefabInstance: {fileID: 0} 1902 | m_PrefabAsset: {fileID: 0} 1903 | m_GameObject: {fileID: 641806908} 1904 | m_Enabled: 1 1905 | m_EditorHideFlags: 0 1906 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 1907 | m_Name: 1908 | m_EditorClassIdentifier: 1909 | m_UiScaleMode: 0 1910 | m_ReferencePixelsPerUnit: 100 1911 | m_ScaleFactor: 1 1912 | m_ReferenceResolution: {x: 800, y: 600} 1913 | m_ScreenMatchMode: 0 1914 | m_MatchWidthOrHeight: 0 1915 | m_PhysicalUnit: 3 1916 | m_FallbackScreenDPI: 96 1917 | m_DefaultSpriteDPI: 96 1918 | m_DynamicPixelsPerUnit: 1 1919 | --- !u!223 &641806912 1920 | Canvas: 1921 | m_ObjectHideFlags: 0 1922 | m_CorrespondingSourceObject: {fileID: 0} 1923 | m_PrefabInstance: {fileID: 0} 1924 | m_PrefabAsset: {fileID: 0} 1925 | m_GameObject: {fileID: 641806908} 1926 | m_Enabled: 1 1927 | serializedVersion: 3 1928 | m_RenderMode: 0 1929 | m_Camera: {fileID: 0} 1930 | m_PlaneDistance: 100 1931 | m_PixelPerfect: 0 1932 | m_ReceivesEvents: 1 1933 | m_OverrideSorting: 0 1934 | m_OverridePixelPerfect: 0 1935 | m_SortingBucketNormalizedSize: 0 1936 | m_AdditionalShaderChannelsFlag: 0 1937 | m_SortingLayerID: 0 1938 | m_SortingOrder: 0 1939 | m_TargetDisplay: 0 1940 | --- !u!1 &644992237 1941 | GameObject: 1942 | m_ObjectHideFlags: 0 1943 | m_CorrespondingSourceObject: {fileID: 0} 1944 | m_PrefabInstance: {fileID: 0} 1945 | m_PrefabAsset: {fileID: 0} 1946 | serializedVersion: 6 1947 | m_Component: 1948 | - component: {fileID: 644992238} 1949 | - component: {fileID: 644992240} 1950 | - component: {fileID: 644992239} 1951 | m_Layer: 5 1952 | m_Name: Title 1953 | m_TagString: Untagged 1954 | m_Icon: {fileID: 0} 1955 | m_NavMeshLayer: 0 1956 | m_StaticEditorFlags: 0 1957 | m_IsActive: 1 1958 | --- !u!224 &644992238 1959 | RectTransform: 1960 | m_ObjectHideFlags: 0 1961 | m_CorrespondingSourceObject: {fileID: 0} 1962 | m_PrefabInstance: {fileID: 0} 1963 | m_PrefabAsset: {fileID: 0} 1964 | m_GameObject: {fileID: 644992237} 1965 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1966 | m_LocalPosition: {x: 0, y: 0, z: 0} 1967 | m_LocalScale: {x: 1, y: 1, z: 0} 1968 | m_Children: [] 1969 | m_Father: {fileID: 1485788382} 1970 | m_RootOrder: 0 1971 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1972 | m_AnchorMin: {x: 0, y: 0} 1973 | m_AnchorMax: {x: 1, y: 1} 1974 | m_AnchoredPosition: {x: 0, y: 0} 1975 | m_SizeDelta: {x: 0, y: 0} 1976 | m_Pivot: {x: 0.5, y: 0.5} 1977 | --- !u!114 &644992239 1978 | MonoBehaviour: 1979 | m_ObjectHideFlags: 0 1980 | m_CorrespondingSourceObject: {fileID: 0} 1981 | m_PrefabInstance: {fileID: 0} 1982 | m_PrefabAsset: {fileID: 0} 1983 | m_GameObject: {fileID: 644992237} 1984 | m_Enabled: 1 1985 | m_EditorHideFlags: 0 1986 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1987 | m_Name: 1988 | m_EditorClassIdentifier: 1989 | m_Material: {fileID: 0} 1990 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 1991 | m_RaycastTarget: 1 1992 | m_Maskable: 1 1993 | m_OnCullStateChanged: 1994 | m_PersistentCalls: 1995 | m_Calls: [] 1996 | m_FontData: 1997 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1998 | m_FontSize: 41 1999 | m_FontStyle: 1 2000 | m_BestFit: 0 2001 | m_MinSize: 0 2002 | m_MaxSize: 300 2003 | m_Alignment: 3 2004 | m_AlignByGeometry: 0 2005 | m_RichText: 1 2006 | m_HorizontalOverflow: 0 2007 | m_VerticalOverflow: 1 2008 | m_LineSpacing: 1 2009 | m_Text: SERVER 2010 | --- !u!222 &644992240 2011 | CanvasRenderer: 2012 | m_ObjectHideFlags: 0 2013 | m_CorrespondingSourceObject: {fileID: 0} 2014 | m_PrefabInstance: {fileID: 0} 2015 | m_PrefabAsset: {fileID: 0} 2016 | m_GameObject: {fileID: 644992237} 2017 | m_CullTransparentMesh: 0 2018 | --- !u!1 &668147666 2019 | GameObject: 2020 | m_ObjectHideFlags: 0 2021 | m_CorrespondingSourceObject: {fileID: 0} 2022 | m_PrefabInstance: {fileID: 0} 2023 | m_PrefabAsset: {fileID: 0} 2024 | serializedVersion: 6 2025 | m_Component: 2026 | - component: {fileID: 668147667} 2027 | - component: {fileID: 668147669} 2028 | - component: {fileID: 668147668} 2029 | m_Layer: 5 2030 | m_Name: Text 2031 | m_TagString: Untagged 2032 | m_Icon: {fileID: 0} 2033 | m_NavMeshLayer: 0 2034 | m_StaticEditorFlags: 0 2035 | m_IsActive: 1 2036 | --- !u!224 &668147667 2037 | RectTransform: 2038 | m_ObjectHideFlags: 0 2039 | m_CorrespondingSourceObject: {fileID: 0} 2040 | m_PrefabInstance: {fileID: 0} 2041 | m_PrefabAsset: {fileID: 0} 2042 | m_GameObject: {fileID: 668147666} 2043 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2044 | m_LocalPosition: {x: 0, y: 0, z: 0} 2045 | m_LocalScale: {x: 1, y: 1, z: 1} 2046 | m_Children: [] 2047 | m_Father: {fileID: 1515171187} 2048 | m_RootOrder: 0 2049 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2050 | m_AnchorMin: {x: 0, y: 0} 2051 | m_AnchorMax: {x: 1, y: 1} 2052 | m_AnchoredPosition: {x: 0, y: 0} 2053 | m_SizeDelta: {x: 0, y: 0} 2054 | m_Pivot: {x: 0.5, y: 0.5} 2055 | --- !u!114 &668147668 2056 | MonoBehaviour: 2057 | m_ObjectHideFlags: 0 2058 | m_CorrespondingSourceObject: {fileID: 0} 2059 | m_PrefabInstance: {fileID: 0} 2060 | m_PrefabAsset: {fileID: 0} 2061 | m_GameObject: {fileID: 668147666} 2062 | m_Enabled: 1 2063 | m_EditorHideFlags: 0 2064 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2065 | m_Name: 2066 | m_EditorClassIdentifier: 2067 | m_Material: {fileID: 0} 2068 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 2069 | m_RaycastTarget: 1 2070 | m_Maskable: 1 2071 | m_OnCullStateChanged: 2072 | m_PersistentCalls: 2073 | m_Calls: [] 2074 | m_FontData: 2075 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2076 | m_FontSize: 14 2077 | m_FontStyle: 0 2078 | m_BestFit: 0 2079 | m_MinSize: 10 2080 | m_MaxSize: 40 2081 | m_Alignment: 4 2082 | m_AlignByGeometry: 0 2083 | m_RichText: 1 2084 | m_HorizontalOverflow: 0 2085 | m_VerticalOverflow: 0 2086 | m_LineSpacing: 1 2087 | m_Text: Start Server 2088 | --- !u!222 &668147669 2089 | CanvasRenderer: 2090 | m_ObjectHideFlags: 0 2091 | m_CorrespondingSourceObject: {fileID: 0} 2092 | m_PrefabInstance: {fileID: 0} 2093 | m_PrefabAsset: {fileID: 0} 2094 | m_GameObject: {fileID: 668147666} 2095 | m_CullTransparentMesh: 0 2096 | --- !u!1 &711561144 2097 | GameObject: 2098 | m_ObjectHideFlags: 0 2099 | m_CorrespondingSourceObject: {fileID: 0} 2100 | m_PrefabInstance: {fileID: 0} 2101 | m_PrefabAsset: {fileID: 0} 2102 | serializedVersion: 6 2103 | m_Component: 2104 | - component: {fileID: 711561145} 2105 | - component: {fileID: 711561147} 2106 | - component: {fileID: 711561146} 2107 | m_Layer: 5 2108 | m_Name: Text 2109 | m_TagString: Untagged 2110 | m_Icon: {fileID: 0} 2111 | m_NavMeshLayer: 0 2112 | m_StaticEditorFlags: 0 2113 | m_IsActive: 1 2114 | --- !u!224 &711561145 2115 | RectTransform: 2116 | m_ObjectHideFlags: 0 2117 | m_CorrespondingSourceObject: {fileID: 0} 2118 | m_PrefabInstance: {fileID: 0} 2119 | m_PrefabAsset: {fileID: 0} 2120 | m_GameObject: {fileID: 711561144} 2121 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2122 | m_LocalPosition: {x: 0, y: 0, z: 0} 2123 | m_LocalScale: {x: 1, y: 1, z: 1} 2124 | m_Children: [] 2125 | m_Father: {fileID: 17587045} 2126 | m_RootOrder: 0 2127 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2128 | m_AnchorMin: {x: 0, y: 0} 2129 | m_AnchorMax: {x: 1, y: 1} 2130 | m_AnchoredPosition: {x: 0, y: 0} 2131 | m_SizeDelta: {x: 0, y: 0} 2132 | m_Pivot: {x: 0.5, y: 0.5} 2133 | --- !u!114 &711561146 2134 | MonoBehaviour: 2135 | m_ObjectHideFlags: 0 2136 | m_CorrespondingSourceObject: {fileID: 0} 2137 | m_PrefabInstance: {fileID: 0} 2138 | m_PrefabAsset: {fileID: 0} 2139 | m_GameObject: {fileID: 711561144} 2140 | m_Enabled: 1 2141 | m_EditorHideFlags: 0 2142 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2143 | m_Name: 2144 | m_EditorClassIdentifier: 2145 | m_Material: {fileID: 0} 2146 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 2147 | m_RaycastTarget: 1 2148 | m_Maskable: 1 2149 | m_OnCullStateChanged: 2150 | m_PersistentCalls: 2151 | m_Calls: [] 2152 | m_FontData: 2153 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2154 | m_FontSize: 14 2155 | m_FontStyle: 0 2156 | m_BestFit: 0 2157 | m_MinSize: 10 2158 | m_MaxSize: 40 2159 | m_Alignment: 4 2160 | m_AlignByGeometry: 0 2161 | m_RichText: 1 2162 | m_HorizontalOverflow: 0 2163 | m_VerticalOverflow: 0 2164 | m_LineSpacing: 1 2165 | m_Text: Send to Server 2166 | --- !u!222 &711561147 2167 | CanvasRenderer: 2168 | m_ObjectHideFlags: 0 2169 | m_CorrespondingSourceObject: {fileID: 0} 2170 | m_PrefabInstance: {fileID: 0} 2171 | m_PrefabAsset: {fileID: 0} 2172 | m_GameObject: {fileID: 711561144} 2173 | m_CullTransparentMesh: 0 2174 | --- !u!1 &826585011 2175 | GameObject: 2176 | m_ObjectHideFlags: 0 2177 | m_CorrespondingSourceObject: {fileID: 0} 2178 | m_PrefabInstance: {fileID: 0} 2179 | m_PrefabAsset: {fileID: 0} 2180 | serializedVersion: 6 2181 | m_Component: 2182 | - component: {fileID: 826585012} 2183 | - component: {fileID: 826585014} 2184 | - component: {fileID: 826585013} 2185 | m_Layer: 5 2186 | m_Name: Text 2187 | m_TagString: Untagged 2188 | m_Icon: {fileID: 0} 2189 | m_NavMeshLayer: 0 2190 | m_StaticEditorFlags: 0 2191 | m_IsActive: 1 2192 | --- !u!224 &826585012 2193 | RectTransform: 2194 | m_ObjectHideFlags: 0 2195 | m_CorrespondingSourceObject: {fileID: 0} 2196 | m_PrefabInstance: {fileID: 0} 2197 | m_PrefabAsset: {fileID: 0} 2198 | m_GameObject: {fileID: 826585011} 2199 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2200 | m_LocalPosition: {x: 0, y: 0, z: 0} 2201 | m_LocalScale: {x: 1, y: 1, z: 1} 2202 | m_Children: [] 2203 | m_Father: {fileID: 1165316074} 2204 | m_RootOrder: 0 2205 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2206 | m_AnchorMin: {x: 0, y: 0} 2207 | m_AnchorMax: {x: 1, y: 1} 2208 | m_AnchoredPosition: {x: 0, y: 0} 2209 | m_SizeDelta: {x: 0, y: 0} 2210 | m_Pivot: {x: 0.5, y: 0.5} 2211 | --- !u!114 &826585013 2212 | MonoBehaviour: 2213 | m_ObjectHideFlags: 0 2214 | m_CorrespondingSourceObject: {fileID: 0} 2215 | m_PrefabInstance: {fileID: 0} 2216 | m_PrefabAsset: {fileID: 0} 2217 | m_GameObject: {fileID: 826585011} 2218 | m_Enabled: 1 2219 | m_EditorHideFlags: 0 2220 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2221 | m_Name: 2222 | m_EditorClassIdentifier: 2223 | m_Material: {fileID: 0} 2224 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 2225 | m_RaycastTarget: 1 2226 | m_Maskable: 1 2227 | m_OnCullStateChanged: 2228 | m_PersistentCalls: 2229 | m_Calls: [] 2230 | m_FontData: 2231 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2232 | m_FontSize: 14 2233 | m_FontStyle: 0 2234 | m_BestFit: 0 2235 | m_MinSize: 10 2236 | m_MaxSize: 40 2237 | m_Alignment: 4 2238 | m_AlignByGeometry: 0 2239 | m_RichText: 1 2240 | m_HorizontalOverflow: 0 2241 | m_VerticalOverflow: 0 2242 | m_LineSpacing: 1 2243 | m_Text: Start Client 2244 | --- !u!222 &826585014 2245 | CanvasRenderer: 2246 | m_ObjectHideFlags: 0 2247 | m_CorrespondingSourceObject: {fileID: 0} 2248 | m_PrefabInstance: {fileID: 0} 2249 | m_PrefabAsset: {fileID: 0} 2250 | m_GameObject: {fileID: 826585011} 2251 | m_CullTransparentMesh: 0 2252 | --- !u!1 &898017722 2253 | GameObject: 2254 | m_ObjectHideFlags: 0 2255 | m_CorrespondingSourceObject: {fileID: 0} 2256 | m_PrefabInstance: {fileID: 0} 2257 | m_PrefabAsset: {fileID: 0} 2258 | serializedVersion: 6 2259 | m_Component: 2260 | - component: {fileID: 898017723} 2261 | - component: {fileID: 898017726} 2262 | - component: {fileID: 898017725} 2263 | - component: {fileID: 898017724} 2264 | m_Layer: 5 2265 | m_Name: SendClient_btn 2266 | m_TagString: Untagged 2267 | m_Icon: {fileID: 0} 2268 | m_NavMeshLayer: 0 2269 | m_StaticEditorFlags: 0 2270 | m_IsActive: 1 2271 | --- !u!224 &898017723 2272 | RectTransform: 2273 | m_ObjectHideFlags: 0 2274 | m_CorrespondingSourceObject: {fileID: 0} 2275 | m_PrefabInstance: {fileID: 0} 2276 | m_PrefabAsset: {fileID: 0} 2277 | m_GameObject: {fileID: 898017722} 2278 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 2279 | m_LocalPosition: {x: 0, y: 0, z: 0} 2280 | m_LocalScale: {x: 1, y: 1, z: 1} 2281 | m_Children: 2282 | - {fileID: 1126948796} 2283 | m_Father: {fileID: 2095598110} 2284 | m_RootOrder: 0 2285 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2286 | m_AnchorMin: {x: 0, y: 0} 2287 | m_AnchorMax: {x: 0.665, y: 1} 2288 | m_AnchoredPosition: {x: 0, y: 0.24658966} 2289 | m_SizeDelta: {x: 0, y: -0.3257923} 2290 | m_Pivot: {x: 0, y: 0.5} 2291 | --- !u!114 &898017724 2292 | MonoBehaviour: 2293 | m_ObjectHideFlags: 0 2294 | m_CorrespondingSourceObject: {fileID: 0} 2295 | m_PrefabInstance: {fileID: 0} 2296 | m_PrefabAsset: {fileID: 0} 2297 | m_GameObject: {fileID: 898017722} 2298 | m_Enabled: 1 2299 | m_EditorHideFlags: 0 2300 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 2301 | m_Name: 2302 | m_EditorClassIdentifier: 2303 | m_Navigation: 2304 | m_Mode: 3 2305 | m_SelectOnUp: {fileID: 0} 2306 | m_SelectOnDown: {fileID: 0} 2307 | m_SelectOnLeft: {fileID: 0} 2308 | m_SelectOnRight: {fileID: 0} 2309 | m_Transition: 1 2310 | m_Colors: 2311 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 2312 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2313 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 2314 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2315 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 2316 | m_ColorMultiplier: 1 2317 | m_FadeDuration: 0.1 2318 | m_SpriteState: 2319 | m_HighlightedSprite: {fileID: 0} 2320 | m_PressedSprite: {fileID: 0} 2321 | m_SelectedSprite: {fileID: 0} 2322 | m_DisabledSprite: {fileID: 0} 2323 | m_AnimationTriggers: 2324 | m_NormalTrigger: Normal 2325 | m_HighlightedTrigger: Highlighted 2326 | m_PressedTrigger: Pressed 2327 | m_SelectedTrigger: Highlighted 2328 | m_DisabledTrigger: Disabled 2329 | m_Interactable: 1 2330 | m_TargetGraphic: {fileID: 898017725} 2331 | m_OnClick: 2332 | m_PersistentCalls: 2333 | m_Calls: 2334 | - m_Target: {fileID: 424903499} 2335 | m_MethodName: 2336 | m_Mode: 1 2337 | m_Arguments: 2338 | m_ObjectArgument: {fileID: 0} 2339 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 2340 | m_IntArgument: 0 2341 | m_FloatArgument: 0 2342 | m_StringArgument: 2343 | m_BoolArgument: 0 2344 | m_CallState: 2 2345 | --- !u!114 &898017725 2346 | MonoBehaviour: 2347 | m_ObjectHideFlags: 0 2348 | m_CorrespondingSourceObject: {fileID: 0} 2349 | m_PrefabInstance: {fileID: 0} 2350 | m_PrefabAsset: {fileID: 0} 2351 | m_GameObject: {fileID: 898017722} 2352 | m_Enabled: 1 2353 | m_EditorHideFlags: 0 2354 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 2355 | m_Name: 2356 | m_EditorClassIdentifier: 2357 | m_Material: {fileID: 0} 2358 | m_Color: {r: 1, g: 1, b: 1, a: 1} 2359 | m_RaycastTarget: 1 2360 | m_Maskable: 1 2361 | m_OnCullStateChanged: 2362 | m_PersistentCalls: 2363 | m_Calls: [] 2364 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 2365 | m_Type: 1 2366 | m_PreserveAspect: 0 2367 | m_FillCenter: 1 2368 | m_FillMethod: 4 2369 | m_FillAmount: 1 2370 | m_FillClockwise: 1 2371 | m_FillOrigin: 0 2372 | m_UseSpriteMesh: 0 2373 | m_PixelsPerUnitMultiplier: 1 2374 | --- !u!222 &898017726 2375 | CanvasRenderer: 2376 | m_ObjectHideFlags: 0 2377 | m_CorrespondingSourceObject: {fileID: 0} 2378 | m_PrefabInstance: {fileID: 0} 2379 | m_PrefabAsset: {fileID: 0} 2380 | m_GameObject: {fileID: 898017722} 2381 | m_CullTransparentMesh: 0 2382 | --- !u!1 &983091627 2383 | GameObject: 2384 | m_ObjectHideFlags: 0 2385 | m_CorrespondingSourceObject: {fileID: 0} 2386 | m_PrefabInstance: {fileID: 0} 2387 | m_PrefabAsset: {fileID: 0} 2388 | serializedVersion: 6 2389 | m_Component: 2390 | - component: {fileID: 983091628} 2391 | m_Layer: 5 2392 | m_Name: Buttons 2393 | m_TagString: Untagged 2394 | m_Icon: {fileID: 0} 2395 | m_NavMeshLayer: 0 2396 | m_StaticEditorFlags: 0 2397 | m_IsActive: 1 2398 | --- !u!224 &983091628 2399 | RectTransform: 2400 | m_ObjectHideFlags: 0 2401 | m_CorrespondingSourceObject: {fileID: 0} 2402 | m_PrefabInstance: {fileID: 0} 2403 | m_PrefabAsset: {fileID: 0} 2404 | m_GameObject: {fileID: 983091627} 2405 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2406 | m_LocalPosition: {x: 0, y: 0, z: 0} 2407 | m_LocalScale: {x: 1, y: 1, z: 1} 2408 | m_Children: 2409 | - {fileID: 1515171187} 2410 | - {fileID: 2095598110} 2411 | - {fileID: 1194465308} 2412 | m_Father: {fileID: 1342787545} 2413 | m_RootOrder: 1 2414 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2415 | m_AnchorMin: {x: 0, y: 0.705105} 2416 | m_AnchorMax: {x: 1, y: 0.92254853} 2417 | m_AnchoredPosition: {x: 0, y: 0} 2418 | m_SizeDelta: {x: 0, y: 0} 2419 | m_Pivot: {x: 0.5, y: 0.5} 2420 | --- !u!1 &1012370945 2421 | GameObject: 2422 | m_ObjectHideFlags: 0 2423 | m_CorrespondingSourceObject: {fileID: 0} 2424 | m_PrefabInstance: {fileID: 0} 2425 | m_PrefabAsset: {fileID: 0} 2426 | serializedVersion: 6 2427 | m_Component: 2428 | - component: {fileID: 1012370947} 2429 | - component: {fileID: 1012370949} 2430 | - component: {fileID: 1012370948} 2431 | - component: {fileID: 1012370946} 2432 | m_Layer: 5 2433 | m_Name: Scrollbar Vertical 2434 | m_TagString: Untagged 2435 | m_Icon: {fileID: 0} 2436 | m_NavMeshLayer: 0 2437 | m_StaticEditorFlags: 0 2438 | m_IsActive: 1 2439 | --- !u!114 &1012370946 2440 | MonoBehaviour: 2441 | m_ObjectHideFlags: 0 2442 | m_CorrespondingSourceObject: {fileID: 0} 2443 | m_PrefabInstance: {fileID: 0} 2444 | m_PrefabAsset: {fileID: 0} 2445 | m_GameObject: {fileID: 1012370945} 2446 | m_Enabled: 1 2447 | m_EditorHideFlags: 0 2448 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 2449 | m_Name: 2450 | m_EditorClassIdentifier: 2451 | m_Navigation: 2452 | m_Mode: 3 2453 | m_SelectOnUp: {fileID: 0} 2454 | m_SelectOnDown: {fileID: 0} 2455 | m_SelectOnLeft: {fileID: 0} 2456 | m_SelectOnRight: {fileID: 0} 2457 | m_Transition: 1 2458 | m_Colors: 2459 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 2460 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2461 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 2462 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2463 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 2464 | m_ColorMultiplier: 1 2465 | m_FadeDuration: 0.1 2466 | m_SpriteState: 2467 | m_HighlightedSprite: {fileID: 0} 2468 | m_PressedSprite: {fileID: 0} 2469 | m_SelectedSprite: {fileID: 0} 2470 | m_DisabledSprite: {fileID: 0} 2471 | m_AnimationTriggers: 2472 | m_NormalTrigger: Normal 2473 | m_HighlightedTrigger: Highlighted 2474 | m_PressedTrigger: Pressed 2475 | m_SelectedTrigger: Selected 2476 | m_DisabledTrigger: Disabled 2477 | m_Interactable: 1 2478 | m_TargetGraphic: {fileID: 1576023167} 2479 | m_HandleRect: {fileID: 1576023165} 2480 | m_Direction: 2 2481 | m_Value: 0 2482 | m_Size: 1 2483 | m_NumberOfSteps: 0 2484 | m_OnValueChanged: 2485 | m_PersistentCalls: 2486 | m_Calls: [] 2487 | --- !u!224 &1012370947 2488 | RectTransform: 2489 | m_ObjectHideFlags: 0 2490 | m_CorrespondingSourceObject: {fileID: 0} 2491 | m_PrefabInstance: {fileID: 0} 2492 | m_PrefabAsset: {fileID: 0} 2493 | m_GameObject: {fileID: 1012370945} 2494 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 2495 | m_LocalPosition: {x: 0, y: 0, z: 0} 2496 | m_LocalScale: {x: 1, y: 1, z: 1} 2497 | m_Children: 2498 | - {fileID: 1619757866} 2499 | m_Father: {fileID: 1315929537} 2500 | m_RootOrder: 2 2501 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2502 | m_AnchorMin: {x: 1, y: 0} 2503 | m_AnchorMax: {x: 1, y: 1} 2504 | m_AnchoredPosition: {x: 0, y: 0} 2505 | m_SizeDelta: {x: 14, y: -17} 2506 | m_Pivot: {x: 1, y: 1} 2507 | --- !u!114 &1012370948 2508 | MonoBehaviour: 2509 | m_ObjectHideFlags: 0 2510 | m_CorrespondingSourceObject: {fileID: 0} 2511 | m_PrefabInstance: {fileID: 0} 2512 | m_PrefabAsset: {fileID: 0} 2513 | m_GameObject: {fileID: 1012370945} 2514 | m_Enabled: 1 2515 | m_EditorHideFlags: 0 2516 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 2517 | m_Name: 2518 | m_EditorClassIdentifier: 2519 | m_Material: {fileID: 0} 2520 | m_Color: {r: 1, g: 1, b: 1, a: 1} 2521 | m_RaycastTarget: 1 2522 | m_Maskable: 1 2523 | m_OnCullStateChanged: 2524 | m_PersistentCalls: 2525 | m_Calls: [] 2526 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 2527 | m_Type: 1 2528 | m_PreserveAspect: 0 2529 | m_FillCenter: 1 2530 | m_FillMethod: 4 2531 | m_FillAmount: 1 2532 | m_FillClockwise: 1 2533 | m_FillOrigin: 0 2534 | m_UseSpriteMesh: 0 2535 | m_PixelsPerUnitMultiplier: 1 2536 | --- !u!222 &1012370949 2537 | CanvasRenderer: 2538 | m_ObjectHideFlags: 0 2539 | m_CorrespondingSourceObject: {fileID: 0} 2540 | m_PrefabInstance: {fileID: 0} 2541 | m_PrefabAsset: {fileID: 0} 2542 | m_GameObject: {fileID: 1012370945} 2543 | m_CullTransparentMesh: 0 2544 | --- !u!1 &1032946123 2545 | GameObject: 2546 | m_ObjectHideFlags: 0 2547 | m_CorrespondingSourceObject: {fileID: 0} 2548 | m_PrefabInstance: {fileID: 0} 2549 | m_PrefabAsset: {fileID: 0} 2550 | serializedVersion: 6 2551 | m_Component: 2552 | - component: {fileID: 1032946125} 2553 | - component: {fileID: 1032946124} 2554 | m_Layer: 0 2555 | m_Name: Client 2556 | m_TagString: Untagged 2557 | m_Icon: {fileID: 0} 2558 | m_NavMeshLayer: 0 2559 | m_StaticEditorFlags: 0 2560 | m_IsActive: 1 2561 | --- !u!114 &1032946124 2562 | MonoBehaviour: 2563 | m_ObjectHideFlags: 0 2564 | m_CorrespondingSourceObject: {fileID: 0} 2565 | m_PrefabInstance: {fileID: 0} 2566 | m_PrefabAsset: {fileID: 0} 2567 | m_GameObject: {fileID: 1032946123} 2568 | m_Enabled: 1 2569 | m_EditorHideFlags: 0 2570 | m_Script: {fileID: 11500000, guid: b7335399a3425ee4998f08ce9a7d87e2, type: 3} 2571 | m_Name: 2572 | m_EditorClassIdentifier: 2573 | ipAdress: 127.0.0.1 2574 | port: 54010 2575 | waitingMessagesFrequency: 1 2576 | m_StartClientButton: {fileID: 1165316077} 2577 | m_SendToServerButton: {fileID: 17587048} 2578 | m_SendToServerInputField: {fileID: 218421686} 2579 | m_SendCloseButton: {fileID: 1467206379} 2580 | m_ClientLoggerScrollRect: {fileID: 1315929536} 2581 | --- !u!4 &1032946125 2582 | Transform: 2583 | m_ObjectHideFlags: 0 2584 | m_CorrespondingSourceObject: {fileID: 0} 2585 | m_PrefabInstance: {fileID: 0} 2586 | m_PrefabAsset: {fileID: 0} 2587 | m_GameObject: {fileID: 1032946123} 2588 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2589 | m_LocalPosition: {x: 349.83594, y: 218.61807, z: 0} 2590 | m_LocalScale: {x: 1, y: 1, z: 1} 2591 | m_Children: [] 2592 | m_Father: {fileID: 0} 2593 | m_RootOrder: 3 2594 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2595 | --- !u!1 &1083526385 2596 | GameObject: 2597 | m_ObjectHideFlags: 0 2598 | m_CorrespondingSourceObject: {fileID: 0} 2599 | m_PrefabInstance: {fileID: 0} 2600 | m_PrefabAsset: {fileID: 0} 2601 | serializedVersion: 6 2602 | m_Component: 2603 | - component: {fileID: 1083526386} 2604 | - component: {fileID: 1083526388} 2605 | - component: {fileID: 1083526387} 2606 | m_Layer: 5 2607 | m_Name: Text 2608 | m_TagString: Untagged 2609 | m_Icon: {fileID: 0} 2610 | m_NavMeshLayer: 0 2611 | m_StaticEditorFlags: 0 2612 | m_IsActive: 1 2613 | --- !u!224 &1083526386 2614 | RectTransform: 2615 | m_ObjectHideFlags: 0 2616 | m_CorrespondingSourceObject: {fileID: 0} 2617 | m_PrefabInstance: {fileID: 0} 2618 | m_PrefabAsset: {fileID: 0} 2619 | m_GameObject: {fileID: 1083526385} 2620 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2621 | m_LocalPosition: {x: 0, y: 0, z: 0} 2622 | m_LocalScale: {x: 1, y: 1, z: 1} 2623 | m_Children: [] 2624 | m_Father: {fileID: 218421683} 2625 | m_RootOrder: 1 2626 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2627 | m_AnchorMin: {x: 0, y: 0} 2628 | m_AnchorMax: {x: 1, y: 1} 2629 | m_AnchoredPosition: {x: 0, y: -0.5} 2630 | m_SizeDelta: {x: -20, y: -13} 2631 | m_Pivot: {x: 0.5, y: 0.5} 2632 | --- !u!114 &1083526387 2633 | MonoBehaviour: 2634 | m_ObjectHideFlags: 0 2635 | m_CorrespondingSourceObject: {fileID: 0} 2636 | m_PrefabInstance: {fileID: 0} 2637 | m_PrefabAsset: {fileID: 0} 2638 | m_GameObject: {fileID: 1083526385} 2639 | m_Enabled: 1 2640 | m_EditorHideFlags: 0 2641 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2642 | m_Name: 2643 | m_EditorClassIdentifier: 2644 | m_Material: {fileID: 0} 2645 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 2646 | m_RaycastTarget: 1 2647 | m_Maskable: 1 2648 | m_OnCullStateChanged: 2649 | m_PersistentCalls: 2650 | m_Calls: [] 2651 | m_FontData: 2652 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2653 | m_FontSize: 14 2654 | m_FontStyle: 0 2655 | m_BestFit: 0 2656 | m_MinSize: 10 2657 | m_MaxSize: 40 2658 | m_Alignment: 3 2659 | m_AlignByGeometry: 0 2660 | m_RichText: 0 2661 | m_HorizontalOverflow: 1 2662 | m_VerticalOverflow: 0 2663 | m_LineSpacing: 1 2664 | m_Text: 2665 | --- !u!222 &1083526388 2666 | CanvasRenderer: 2667 | m_ObjectHideFlags: 0 2668 | m_CorrespondingSourceObject: {fileID: 0} 2669 | m_PrefabInstance: {fileID: 0} 2670 | m_PrefabAsset: {fileID: 0} 2671 | m_GameObject: {fileID: 1083526385} 2672 | m_CullTransparentMesh: 0 2673 | --- !u!1 &1126948795 2674 | GameObject: 2675 | m_ObjectHideFlags: 0 2676 | m_CorrespondingSourceObject: {fileID: 0} 2677 | m_PrefabInstance: {fileID: 0} 2678 | m_PrefabAsset: {fileID: 0} 2679 | serializedVersion: 6 2680 | m_Component: 2681 | - component: {fileID: 1126948796} 2682 | - component: {fileID: 1126948798} 2683 | - component: {fileID: 1126948797} 2684 | m_Layer: 5 2685 | m_Name: Text 2686 | m_TagString: Untagged 2687 | m_Icon: {fileID: 0} 2688 | m_NavMeshLayer: 0 2689 | m_StaticEditorFlags: 0 2690 | m_IsActive: 1 2691 | --- !u!224 &1126948796 2692 | RectTransform: 2693 | m_ObjectHideFlags: 0 2694 | m_CorrespondingSourceObject: {fileID: 0} 2695 | m_PrefabInstance: {fileID: 0} 2696 | m_PrefabAsset: {fileID: 0} 2697 | m_GameObject: {fileID: 1126948795} 2698 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2699 | m_LocalPosition: {x: 0, y: 0, z: 0} 2700 | m_LocalScale: {x: 1, y: 1, z: 1} 2701 | m_Children: [] 2702 | m_Father: {fileID: 898017723} 2703 | m_RootOrder: 0 2704 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2705 | m_AnchorMin: {x: 0, y: 0} 2706 | m_AnchorMax: {x: 1, y: 1} 2707 | m_AnchoredPosition: {x: 0, y: 0} 2708 | m_SizeDelta: {x: 0, y: 0} 2709 | m_Pivot: {x: 0.5, y: 0.5} 2710 | --- !u!114 &1126948797 2711 | MonoBehaviour: 2712 | m_ObjectHideFlags: 0 2713 | m_CorrespondingSourceObject: {fileID: 0} 2714 | m_PrefabInstance: {fileID: 0} 2715 | m_PrefabAsset: {fileID: 0} 2716 | m_GameObject: {fileID: 1126948795} 2717 | m_Enabled: 1 2718 | m_EditorHideFlags: 0 2719 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2720 | m_Name: 2721 | m_EditorClassIdentifier: 2722 | m_Material: {fileID: 0} 2723 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 2724 | m_RaycastTarget: 1 2725 | m_Maskable: 1 2726 | m_OnCullStateChanged: 2727 | m_PersistentCalls: 2728 | m_Calls: [] 2729 | m_FontData: 2730 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2731 | m_FontSize: 14 2732 | m_FontStyle: 0 2733 | m_BestFit: 0 2734 | m_MinSize: 10 2735 | m_MaxSize: 40 2736 | m_Alignment: 4 2737 | m_AlignByGeometry: 0 2738 | m_RichText: 1 2739 | m_HorizontalOverflow: 0 2740 | m_VerticalOverflow: 0 2741 | m_LineSpacing: 1 2742 | m_Text: Send to Client 2743 | --- !u!222 &1126948798 2744 | CanvasRenderer: 2745 | m_ObjectHideFlags: 0 2746 | m_CorrespondingSourceObject: {fileID: 0} 2747 | m_PrefabInstance: {fileID: 0} 2748 | m_PrefabAsset: {fileID: 0} 2749 | m_GameObject: {fileID: 1126948795} 2750 | m_CullTransparentMesh: 0 2751 | --- !u!1 &1147770385 2752 | GameObject: 2753 | m_ObjectHideFlags: 0 2754 | m_CorrespondingSourceObject: {fileID: 0} 2755 | m_PrefabInstance: {fileID: 0} 2756 | m_PrefabAsset: {fileID: 0} 2757 | serializedVersion: 6 2758 | m_Component: 2759 | - component: {fileID: 1147770386} 2760 | - component: {fileID: 1147770388} 2761 | - component: {fileID: 1147770387} 2762 | m_Layer: 5 2763 | m_Name: Handle 2764 | m_TagString: Untagged 2765 | m_Icon: {fileID: 0} 2766 | m_NavMeshLayer: 0 2767 | m_StaticEditorFlags: 0 2768 | m_IsActive: 1 2769 | --- !u!224 &1147770386 2770 | RectTransform: 2771 | m_ObjectHideFlags: 0 2772 | m_CorrespondingSourceObject: {fileID: 0} 2773 | m_PrefabInstance: {fileID: 0} 2774 | m_PrefabAsset: {fileID: 0} 2775 | m_GameObject: {fileID: 1147770385} 2776 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 2777 | m_LocalPosition: {x: 0, y: 0, z: 0} 2778 | m_LocalScale: {x: 1, y: 1, z: 1} 2779 | m_Children: [] 2780 | m_Father: {fileID: 305585436} 2781 | m_RootOrder: 0 2782 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2783 | m_AnchorMin: {x: 0, y: 0} 2784 | m_AnchorMax: {x: 0, y: 0} 2785 | m_AnchoredPosition: {x: 0, y: 0} 2786 | m_SizeDelta: {x: 20, y: 20} 2787 | m_Pivot: {x: 0.5, y: 0.5} 2788 | --- !u!114 &1147770387 2789 | MonoBehaviour: 2790 | m_ObjectHideFlags: 0 2791 | m_CorrespondingSourceObject: {fileID: 0} 2792 | m_PrefabInstance: {fileID: 0} 2793 | m_PrefabAsset: {fileID: 0} 2794 | m_GameObject: {fileID: 1147770385} 2795 | m_Enabled: 1 2796 | m_EditorHideFlags: 0 2797 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 2798 | m_Name: 2799 | m_EditorClassIdentifier: 2800 | m_Material: {fileID: 0} 2801 | m_Color: {r: 1, g: 1, b: 1, a: 1} 2802 | m_RaycastTarget: 1 2803 | m_Maskable: 1 2804 | m_OnCullStateChanged: 2805 | m_PersistentCalls: 2806 | m_Calls: [] 2807 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 2808 | m_Type: 1 2809 | m_PreserveAspect: 0 2810 | m_FillCenter: 1 2811 | m_FillMethod: 4 2812 | m_FillAmount: 1 2813 | m_FillClockwise: 1 2814 | m_FillOrigin: 0 2815 | m_UseSpriteMesh: 0 2816 | m_PixelsPerUnitMultiplier: 1 2817 | --- !u!222 &1147770388 2818 | CanvasRenderer: 2819 | m_ObjectHideFlags: 0 2820 | m_CorrespondingSourceObject: {fileID: 0} 2821 | m_PrefabInstance: {fileID: 0} 2822 | m_PrefabAsset: {fileID: 0} 2823 | m_GameObject: {fileID: 1147770385} 2824 | m_CullTransparentMesh: 0 2825 | --- !u!1 &1165316073 2826 | GameObject: 2827 | m_ObjectHideFlags: 0 2828 | m_CorrespondingSourceObject: {fileID: 0} 2829 | m_PrefabInstance: {fileID: 0} 2830 | m_PrefabAsset: {fileID: 0} 2831 | serializedVersion: 6 2832 | m_Component: 2833 | - component: {fileID: 1165316074} 2834 | - component: {fileID: 1165316076} 2835 | - component: {fileID: 1165316075} 2836 | - component: {fileID: 1165316077} 2837 | m_Layer: 5 2838 | m_Name: StartClient_btn 2839 | m_TagString: Untagged 2840 | m_Icon: {fileID: 0} 2841 | m_NavMeshLayer: 0 2842 | m_StaticEditorFlags: 0 2843 | m_IsActive: 1 2844 | --- !u!224 &1165316074 2845 | RectTransform: 2846 | m_ObjectHideFlags: 0 2847 | m_CorrespondingSourceObject: {fileID: 0} 2848 | m_PrefabInstance: {fileID: 0} 2849 | m_PrefabAsset: {fileID: 0} 2850 | m_GameObject: {fileID: 1165316073} 2851 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 2852 | m_LocalPosition: {x: 0, y: 0, z: 0} 2853 | m_LocalScale: {x: 1, y: 1, z: 1} 2854 | m_Children: 2855 | - {fileID: 826585012} 2856 | m_Father: {fileID: 53837260} 2857 | m_RootOrder: 0 2858 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2859 | m_AnchorMin: {x: 0, y: 0.6267855} 2860 | m_AnchorMax: {x: 0.6303359, y: 0.82364357} 2861 | m_AnchoredPosition: {x: 0, y: 0.0076904297} 2862 | m_SizeDelta: {x: 1, y: 1} 2863 | m_Pivot: {x: 0, y: 0.5} 2864 | --- !u!114 &1165316075 2865 | MonoBehaviour: 2866 | m_ObjectHideFlags: 0 2867 | m_CorrespondingSourceObject: {fileID: 0} 2868 | m_PrefabInstance: {fileID: 0} 2869 | m_PrefabAsset: {fileID: 0} 2870 | m_GameObject: {fileID: 1165316073} 2871 | m_Enabled: 1 2872 | m_EditorHideFlags: 0 2873 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 2874 | m_Name: 2875 | m_EditorClassIdentifier: 2876 | m_Material: {fileID: 0} 2877 | m_Color: {r: 1, g: 1, b: 1, a: 1} 2878 | m_RaycastTarget: 1 2879 | m_Maskable: 1 2880 | m_OnCullStateChanged: 2881 | m_PersistentCalls: 2882 | m_Calls: [] 2883 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 2884 | m_Type: 1 2885 | m_PreserveAspect: 0 2886 | m_FillCenter: 1 2887 | m_FillMethod: 4 2888 | m_FillAmount: 1 2889 | m_FillClockwise: 1 2890 | m_FillOrigin: 0 2891 | m_UseSpriteMesh: 0 2892 | m_PixelsPerUnitMultiplier: 1 2893 | --- !u!222 &1165316076 2894 | CanvasRenderer: 2895 | m_ObjectHideFlags: 0 2896 | m_CorrespondingSourceObject: {fileID: 0} 2897 | m_PrefabInstance: {fileID: 0} 2898 | m_PrefabAsset: {fileID: 0} 2899 | m_GameObject: {fileID: 1165316073} 2900 | m_CullTransparentMesh: 0 2901 | --- !u!114 &1165316077 2902 | MonoBehaviour: 2903 | m_ObjectHideFlags: 0 2904 | m_CorrespondingSourceObject: {fileID: 0} 2905 | m_PrefabInstance: {fileID: 0} 2906 | m_PrefabAsset: {fileID: 0} 2907 | m_GameObject: {fileID: 1165316073} 2908 | m_Enabled: 1 2909 | m_EditorHideFlags: 0 2910 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 2911 | m_Name: 2912 | m_EditorClassIdentifier: 2913 | m_Navigation: 2914 | m_Mode: 3 2915 | m_SelectOnUp: {fileID: 0} 2916 | m_SelectOnDown: {fileID: 0} 2917 | m_SelectOnLeft: {fileID: 0} 2918 | m_SelectOnRight: {fileID: 0} 2919 | m_Transition: 1 2920 | m_Colors: 2921 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 2922 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2923 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 2924 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 2925 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 2926 | m_ColorMultiplier: 1 2927 | m_FadeDuration: 0.1 2928 | m_SpriteState: 2929 | m_HighlightedSprite: {fileID: 0} 2930 | m_PressedSprite: {fileID: 0} 2931 | m_SelectedSprite: {fileID: 0} 2932 | m_DisabledSprite: {fileID: 0} 2933 | m_AnimationTriggers: 2934 | m_NormalTrigger: Normal 2935 | m_HighlightedTrigger: Highlighted 2936 | m_PressedTrigger: Pressed 2937 | m_SelectedTrigger: Highlighted 2938 | m_DisabledTrigger: Disabled 2939 | m_Interactable: 1 2940 | m_TargetGraphic: {fileID: 1165316075} 2941 | m_OnClick: 2942 | m_PersistentCalls: 2943 | m_Calls: 2944 | - m_Target: {fileID: 424903499} 2945 | m_MethodName: 2946 | m_Mode: 1 2947 | m_Arguments: 2948 | m_ObjectArgument: {fileID: 0} 2949 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 2950 | m_IntArgument: 0 2951 | m_FloatArgument: 0 2952 | m_StringArgument: 2953 | m_BoolArgument: 0 2954 | m_CallState: 2 2955 | --- !u!1 &1194465307 2956 | GameObject: 2957 | m_ObjectHideFlags: 0 2958 | m_CorrespondingSourceObject: {fileID: 0} 2959 | m_PrefabInstance: {fileID: 0} 2960 | m_PrefabAsset: {fileID: 0} 2961 | serializedVersion: 6 2962 | m_Component: 2963 | - component: {fileID: 1194465308} 2964 | - component: {fileID: 1194465311} 2965 | - component: {fileID: 1194465310} 2966 | - component: {fileID: 1194465309} 2967 | m_Layer: 5 2968 | m_Name: CloseServer_btn 2969 | m_TagString: Untagged 2970 | m_Icon: {fileID: 0} 2971 | m_NavMeshLayer: 0 2972 | m_StaticEditorFlags: 0 2973 | m_IsActive: 1 2974 | --- !u!224 &1194465308 2975 | RectTransform: 2976 | m_ObjectHideFlags: 0 2977 | m_CorrespondingSourceObject: {fileID: 0} 2978 | m_PrefabInstance: {fileID: 0} 2979 | m_PrefabAsset: {fileID: 0} 2980 | m_GameObject: {fileID: 1194465307} 2981 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 2982 | m_LocalPosition: {x: 0, y: 0, z: 0} 2983 | m_LocalScale: {x: 1, y: 1, z: 1} 2984 | m_Children: 2985 | - {fileID: 520946705} 2986 | m_Father: {fileID: 983091628} 2987 | m_RootOrder: 2 2988 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2989 | m_AnchorMin: {x: 0, y: 0.16035663} 2990 | m_AnchorMax: {x: 0.63467103, y: 0.36400002} 2991 | m_AnchoredPosition: {x: 0, y: 0.5076904} 2992 | m_SizeDelta: {x: 0, y: 0} 2993 | m_Pivot: {x: 0, y: 0.5} 2994 | --- !u!114 &1194465309 2995 | MonoBehaviour: 2996 | m_ObjectHideFlags: 0 2997 | m_CorrespondingSourceObject: {fileID: 0} 2998 | m_PrefabInstance: {fileID: 0} 2999 | m_PrefabAsset: {fileID: 0} 3000 | m_GameObject: {fileID: 1194465307} 3001 | m_Enabled: 1 3002 | m_EditorHideFlags: 0 3003 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 3004 | m_Name: 3005 | m_EditorClassIdentifier: 3006 | m_Navigation: 3007 | m_Mode: 3 3008 | m_SelectOnUp: {fileID: 0} 3009 | m_SelectOnDown: {fileID: 0} 3010 | m_SelectOnLeft: {fileID: 0} 3011 | m_SelectOnRight: {fileID: 0} 3012 | m_Transition: 1 3013 | m_Colors: 3014 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 3015 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3016 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 3017 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3018 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 3019 | m_ColorMultiplier: 1 3020 | m_FadeDuration: 0.1 3021 | m_SpriteState: 3022 | m_HighlightedSprite: {fileID: 0} 3023 | m_PressedSprite: {fileID: 0} 3024 | m_SelectedSprite: {fileID: 0} 3025 | m_DisabledSprite: {fileID: 0} 3026 | m_AnimationTriggers: 3027 | m_NormalTrigger: Normal 3028 | m_HighlightedTrigger: Highlighted 3029 | m_PressedTrigger: Pressed 3030 | m_SelectedTrigger: Highlighted 3031 | m_DisabledTrigger: Disabled 3032 | m_Interactable: 1 3033 | m_TargetGraphic: {fileID: 1194465310} 3034 | m_OnClick: 3035 | m_PersistentCalls: 3036 | m_Calls: 3037 | - m_Target: {fileID: 0} 3038 | m_MethodName: CloseServer 3039 | m_Mode: 1 3040 | m_Arguments: 3041 | m_ObjectArgument: {fileID: 0} 3042 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 3043 | m_IntArgument: 0 3044 | m_FloatArgument: 0 3045 | m_StringArgument: 3046 | m_BoolArgument: 0 3047 | m_CallState: 2 3048 | --- !u!114 &1194465310 3049 | MonoBehaviour: 3050 | m_ObjectHideFlags: 0 3051 | m_CorrespondingSourceObject: {fileID: 0} 3052 | m_PrefabInstance: {fileID: 0} 3053 | m_PrefabAsset: {fileID: 0} 3054 | m_GameObject: {fileID: 1194465307} 3055 | m_Enabled: 1 3056 | m_EditorHideFlags: 0 3057 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 3058 | m_Name: 3059 | m_EditorClassIdentifier: 3060 | m_Material: {fileID: 0} 3061 | m_Color: {r: 1, g: 1, b: 1, a: 1} 3062 | m_RaycastTarget: 1 3063 | m_Maskable: 1 3064 | m_OnCullStateChanged: 3065 | m_PersistentCalls: 3066 | m_Calls: [] 3067 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 3068 | m_Type: 1 3069 | m_PreserveAspect: 0 3070 | m_FillCenter: 1 3071 | m_FillMethod: 4 3072 | m_FillAmount: 1 3073 | m_FillClockwise: 1 3074 | m_FillOrigin: 0 3075 | m_UseSpriteMesh: 0 3076 | m_PixelsPerUnitMultiplier: 1 3077 | --- !u!222 &1194465311 3078 | CanvasRenderer: 3079 | m_ObjectHideFlags: 0 3080 | m_CorrespondingSourceObject: {fileID: 0} 3081 | m_PrefabInstance: {fileID: 0} 3082 | m_PrefabAsset: {fileID: 0} 3083 | m_GameObject: {fileID: 1194465307} 3084 | m_CullTransparentMesh: 0 3085 | --- !u!1 &1315929535 3086 | GameObject: 3087 | m_ObjectHideFlags: 0 3088 | m_CorrespondingSourceObject: {fileID: 0} 3089 | m_PrefabInstance: {fileID: 0} 3090 | m_PrefabAsset: {fileID: 0} 3091 | serializedVersion: 6 3092 | m_Component: 3093 | - component: {fileID: 1315929537} 3094 | - component: {fileID: 1315929538} 3095 | - component: {fileID: 1315929536} 3096 | m_Layer: 5 3097 | m_Name: Scroll View 3098 | m_TagString: Untagged 3099 | m_Icon: {fileID: 0} 3100 | m_NavMeshLayer: 0 3101 | m_StaticEditorFlags: 0 3102 | m_IsActive: 1 3103 | --- !u!114 &1315929536 3104 | MonoBehaviour: 3105 | m_ObjectHideFlags: 0 3106 | m_CorrespondingSourceObject: {fileID: 0} 3107 | m_PrefabInstance: {fileID: 0} 3108 | m_PrefabAsset: {fileID: 0} 3109 | m_GameObject: {fileID: 1315929535} 3110 | m_Enabled: 1 3111 | m_EditorHideFlags: 0 3112 | m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} 3113 | m_Name: 3114 | m_EditorClassIdentifier: 3115 | m_Content: {fileID: 1854101312} 3116 | m_Horizontal: 0 3117 | m_Vertical: 1 3118 | m_MovementType: 1 3119 | m_Elasticity: 0.1 3120 | m_Inertia: 1 3121 | m_DecelerationRate: 0.135 3122 | m_ScrollSensitivity: 1 3123 | m_Viewport: {fileID: 573462075} 3124 | m_HorizontalScrollbar: {fileID: 93246479} 3125 | m_VerticalScrollbar: {fileID: 1012370946} 3126 | m_HorizontalScrollbarVisibility: 1 3127 | m_VerticalScrollbarVisibility: 1 3128 | m_HorizontalScrollbarSpacing: -3 3129 | m_VerticalScrollbarSpacing: -3 3130 | m_OnValueChanged: 3131 | m_PersistentCalls: 3132 | m_Calls: [] 3133 | --- !u!224 &1315929537 3134 | RectTransform: 3135 | m_ObjectHideFlags: 0 3136 | m_CorrespondingSourceObject: {fileID: 0} 3137 | m_PrefabInstance: {fileID: 0} 3138 | m_PrefabAsset: {fileID: 0} 3139 | m_GameObject: {fileID: 1315929535} 3140 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 3141 | m_LocalPosition: {x: 0, y: 0, z: 0} 3142 | m_LocalScale: {x: 1, y: 1, z: 1} 3143 | m_Children: 3144 | - {fileID: 573462075} 3145 | - {fileID: 93246476} 3146 | - {fileID: 1012370947} 3147 | m_Father: {fileID: 1591457256} 3148 | m_RootOrder: 1 3149 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3150 | m_AnchorMin: {x: 0, y: 0} 3151 | m_AnchorMax: {x: 1, y: 1} 3152 | m_AnchoredPosition: {x: 5, y: -4.9999695} 3153 | m_SizeDelta: {x: -9.999985, y: -10} 3154 | m_Pivot: {x: 0.5, y: 0.5} 3155 | --- !u!222 &1315929538 3156 | CanvasRenderer: 3157 | m_ObjectHideFlags: 0 3158 | m_CorrespondingSourceObject: {fileID: 0} 3159 | m_PrefabInstance: {fileID: 0} 3160 | m_PrefabAsset: {fileID: 0} 3161 | m_GameObject: {fileID: 1315929535} 3162 | m_CullTransparentMesh: 0 3163 | --- !u!1 &1342787544 3164 | GameObject: 3165 | m_ObjectHideFlags: 0 3166 | m_CorrespondingSourceObject: {fileID: 0} 3167 | m_PrefabInstance: {fileID: 0} 3168 | m_PrefabAsset: {fileID: 0} 3169 | serializedVersion: 6 3170 | m_Component: 3171 | - component: {fileID: 1342787545} 3172 | m_Layer: 5 3173 | m_Name: Server_UI 3174 | m_TagString: Untagged 3175 | m_Icon: {fileID: 0} 3176 | m_NavMeshLayer: 0 3177 | m_StaticEditorFlags: 0 3178 | m_IsActive: 1 3179 | --- !u!224 &1342787545 3180 | RectTransform: 3181 | m_ObjectHideFlags: 0 3182 | m_CorrespondingSourceObject: {fileID: 0} 3183 | m_PrefabInstance: {fileID: 0} 3184 | m_PrefabAsset: {fileID: 0} 3185 | m_GameObject: {fileID: 1342787544} 3186 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 3187 | m_LocalPosition: {x: 0, y: 0, z: 0} 3188 | m_LocalScale: {x: 1, y: 1, z: 1} 3189 | m_Children: 3190 | - {fileID: 1485788382} 3191 | - {fileID: 983091628} 3192 | - {fileID: 2140781251} 3193 | m_Father: {fileID: 641806909} 3194 | m_RootOrder: 0 3195 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3196 | m_AnchorMin: {x: 0, y: 0} 3197 | m_AnchorMax: {x: 0.5, y: 1} 3198 | m_AnchoredPosition: {x: 0.5, y: 0} 3199 | m_SizeDelta: {x: -1, y: 0} 3200 | m_Pivot: {x: 0.5, y: 0.5} 3201 | --- !u!1 &1387791853 3202 | GameObject: 3203 | m_ObjectHideFlags: 0 3204 | m_CorrespondingSourceObject: {fileID: 0} 3205 | m_PrefabInstance: {fileID: 0} 3206 | m_PrefabAsset: {fileID: 0} 3207 | serializedVersion: 6 3208 | m_Component: 3209 | - component: {fileID: 1387791854} 3210 | - component: {fileID: 1387791856} 3211 | - component: {fileID: 1387791855} 3212 | m_Layer: 5 3213 | m_Name: Handle 3214 | m_TagString: Untagged 3215 | m_Icon: {fileID: 0} 3216 | m_NavMeshLayer: 0 3217 | m_StaticEditorFlags: 0 3218 | m_IsActive: 1 3219 | --- !u!224 &1387791854 3220 | RectTransform: 3221 | m_ObjectHideFlags: 0 3222 | m_CorrespondingSourceObject: {fileID: 0} 3223 | m_PrefabInstance: {fileID: 0} 3224 | m_PrefabAsset: {fileID: 0} 3225 | m_GameObject: {fileID: 1387791853} 3226 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3227 | m_LocalPosition: {x: 0, y: 0, z: 0} 3228 | m_LocalScale: {x: 1, y: 1, z: 1} 3229 | m_Children: [] 3230 | m_Father: {fileID: 2089604401} 3231 | m_RootOrder: 0 3232 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3233 | m_AnchorMin: {x: 0, y: 0} 3234 | m_AnchorMax: {x: 0, y: 0} 3235 | m_AnchoredPosition: {x: 0, y: 0} 3236 | m_SizeDelta: {x: 20, y: 20} 3237 | m_Pivot: {x: 0.5, y: 0.5} 3238 | --- !u!114 &1387791855 3239 | MonoBehaviour: 3240 | m_ObjectHideFlags: 0 3241 | m_CorrespondingSourceObject: {fileID: 0} 3242 | m_PrefabInstance: {fileID: 0} 3243 | m_PrefabAsset: {fileID: 0} 3244 | m_GameObject: {fileID: 1387791853} 3245 | m_Enabled: 1 3246 | m_EditorHideFlags: 0 3247 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 3248 | m_Name: 3249 | m_EditorClassIdentifier: 3250 | m_Material: {fileID: 0} 3251 | m_Color: {r: 1, g: 1, b: 1, a: 1} 3252 | m_RaycastTarget: 1 3253 | m_Maskable: 1 3254 | m_OnCullStateChanged: 3255 | m_PersistentCalls: 3256 | m_Calls: [] 3257 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 3258 | m_Type: 1 3259 | m_PreserveAspect: 0 3260 | m_FillCenter: 1 3261 | m_FillMethod: 4 3262 | m_FillAmount: 1 3263 | m_FillClockwise: 1 3264 | m_FillOrigin: 0 3265 | m_UseSpriteMesh: 0 3266 | m_PixelsPerUnitMultiplier: 1 3267 | --- !u!222 &1387791856 3268 | CanvasRenderer: 3269 | m_ObjectHideFlags: 0 3270 | m_CorrespondingSourceObject: {fileID: 0} 3271 | m_PrefabInstance: {fileID: 0} 3272 | m_PrefabAsset: {fileID: 0} 3273 | m_GameObject: {fileID: 1387791853} 3274 | m_CullTransparentMesh: 0 3275 | --- !u!1 &1467206375 3276 | GameObject: 3277 | m_ObjectHideFlags: 0 3278 | m_CorrespondingSourceObject: {fileID: 0} 3279 | m_PrefabInstance: {fileID: 0} 3280 | m_PrefabAsset: {fileID: 0} 3281 | serializedVersion: 6 3282 | m_Component: 3283 | - component: {fileID: 1467206376} 3284 | - component: {fileID: 1467206378} 3285 | - component: {fileID: 1467206377} 3286 | - component: {fileID: 1467206379} 3287 | m_Layer: 5 3288 | m_Name: SendClose_btn 3289 | m_TagString: Untagged 3290 | m_Icon: {fileID: 0} 3291 | m_NavMeshLayer: 0 3292 | m_StaticEditorFlags: 0 3293 | m_IsActive: 1 3294 | --- !u!224 &1467206376 3295 | RectTransform: 3296 | m_ObjectHideFlags: 0 3297 | m_CorrespondingSourceObject: {fileID: 0} 3298 | m_PrefabInstance: {fileID: 0} 3299 | m_PrefabAsset: {fileID: 0} 3300 | m_GameObject: {fileID: 1467206375} 3301 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3302 | m_LocalPosition: {x: 0, y: 0, z: 0} 3303 | m_LocalScale: {x: 1, y: 1, z: 1} 3304 | m_Children: 3305 | - {fileID: 1641955505} 3306 | m_Father: {fileID: 53837260} 3307 | m_RootOrder: 2 3308 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3309 | m_AnchorMin: {x: 0, y: 0.16035663} 3310 | m_AnchorMax: {x: 0.63467103, y: 0.36400002} 3311 | m_AnchoredPosition: {x: 0, y: 0.5076904} 3312 | m_SizeDelta: {x: 0, y: 0} 3313 | m_Pivot: {x: 0, y: 0.5} 3314 | --- !u!114 &1467206377 3315 | MonoBehaviour: 3316 | m_ObjectHideFlags: 0 3317 | m_CorrespondingSourceObject: {fileID: 0} 3318 | m_PrefabInstance: {fileID: 0} 3319 | m_PrefabAsset: {fileID: 0} 3320 | m_GameObject: {fileID: 1467206375} 3321 | m_Enabled: 1 3322 | m_EditorHideFlags: 0 3323 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 3324 | m_Name: 3325 | m_EditorClassIdentifier: 3326 | m_Material: {fileID: 0} 3327 | m_Color: {r: 1, g: 1, b: 1, a: 1} 3328 | m_RaycastTarget: 1 3329 | m_Maskable: 1 3330 | m_OnCullStateChanged: 3331 | m_PersistentCalls: 3332 | m_Calls: [] 3333 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 3334 | m_Type: 1 3335 | m_PreserveAspect: 0 3336 | m_FillCenter: 1 3337 | m_FillMethod: 4 3338 | m_FillAmount: 1 3339 | m_FillClockwise: 1 3340 | m_FillOrigin: 0 3341 | m_UseSpriteMesh: 0 3342 | m_PixelsPerUnitMultiplier: 1 3343 | --- !u!222 &1467206378 3344 | CanvasRenderer: 3345 | m_ObjectHideFlags: 0 3346 | m_CorrespondingSourceObject: {fileID: 0} 3347 | m_PrefabInstance: {fileID: 0} 3348 | m_PrefabAsset: {fileID: 0} 3349 | m_GameObject: {fileID: 1467206375} 3350 | m_CullTransparentMesh: 0 3351 | --- !u!114 &1467206379 3352 | MonoBehaviour: 3353 | m_ObjectHideFlags: 0 3354 | m_CorrespondingSourceObject: {fileID: 0} 3355 | m_PrefabInstance: {fileID: 0} 3356 | m_PrefabAsset: {fileID: 0} 3357 | m_GameObject: {fileID: 1467206375} 3358 | m_Enabled: 1 3359 | m_EditorHideFlags: 0 3360 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 3361 | m_Name: 3362 | m_EditorClassIdentifier: 3363 | m_Navigation: 3364 | m_Mode: 3 3365 | m_SelectOnUp: {fileID: 0} 3366 | m_SelectOnDown: {fileID: 0} 3367 | m_SelectOnLeft: {fileID: 0} 3368 | m_SelectOnRight: {fileID: 0} 3369 | m_Transition: 1 3370 | m_Colors: 3371 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 3372 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3373 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 3374 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3375 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 3376 | m_ColorMultiplier: 1 3377 | m_FadeDuration: 0.1 3378 | m_SpriteState: 3379 | m_HighlightedSprite: {fileID: 0} 3380 | m_PressedSprite: {fileID: 0} 3381 | m_SelectedSprite: {fileID: 0} 3382 | m_DisabledSprite: {fileID: 0} 3383 | m_AnimationTriggers: 3384 | m_NormalTrigger: Normal 3385 | m_HighlightedTrigger: Highlighted 3386 | m_PressedTrigger: Pressed 3387 | m_SelectedTrigger: Highlighted 3388 | m_DisabledTrigger: Disabled 3389 | m_Interactable: 1 3390 | m_TargetGraphic: {fileID: 1467206377} 3391 | m_OnClick: 3392 | m_PersistentCalls: 3393 | m_Calls: 3394 | - m_Target: {fileID: 0} 3395 | m_MethodName: CloseServer 3396 | m_Mode: 1 3397 | m_Arguments: 3398 | m_ObjectArgument: {fileID: 0} 3399 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 3400 | m_IntArgument: 0 3401 | m_FloatArgument: 0 3402 | m_StringArgument: 3403 | m_BoolArgument: 0 3404 | m_CallState: 2 3405 | --- !u!1 &1473209674 3406 | GameObject: 3407 | m_ObjectHideFlags: 0 3408 | m_CorrespondingSourceObject: {fileID: 0} 3409 | m_PrefabInstance: {fileID: 0} 3410 | m_PrefabAsset: {fileID: 0} 3411 | serializedVersion: 6 3412 | m_Component: 3413 | - component: {fileID: 1473209676} 3414 | - component: {fileID: 1473209675} 3415 | m_Layer: 0 3416 | m_Name: Directional Light 3417 | m_TagString: Untagged 3418 | m_Icon: {fileID: 0} 3419 | m_NavMeshLayer: 0 3420 | m_StaticEditorFlags: 0 3421 | m_IsActive: 1 3422 | --- !u!108 &1473209675 3423 | Light: 3424 | m_ObjectHideFlags: 0 3425 | m_CorrespondingSourceObject: {fileID: 0} 3426 | m_PrefabInstance: {fileID: 0} 3427 | m_PrefabAsset: {fileID: 0} 3428 | m_GameObject: {fileID: 1473209674} 3429 | m_Enabled: 1 3430 | serializedVersion: 10 3431 | m_Type: 1 3432 | m_Shape: 0 3433 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 3434 | m_Intensity: 1 3435 | m_Range: 10 3436 | m_SpotAngle: 30 3437 | m_InnerSpotAngle: 21.80208 3438 | m_CookieSize: 10 3439 | m_Shadows: 3440 | m_Type: 2 3441 | m_Resolution: -1 3442 | m_CustomResolution: -1 3443 | m_Strength: 1 3444 | m_Bias: 0.05 3445 | m_NormalBias: 0.4 3446 | m_NearPlane: 0.2 3447 | m_CullingMatrixOverride: 3448 | e00: 1 3449 | e01: 0 3450 | e02: 0 3451 | e03: 0 3452 | e10: 0 3453 | e11: 1 3454 | e12: 0 3455 | e13: 0 3456 | e20: 0 3457 | e21: 0 3458 | e22: 1 3459 | e23: 0 3460 | e30: 0 3461 | e31: 0 3462 | e32: 0 3463 | e33: 1 3464 | m_UseCullingMatrixOverride: 0 3465 | m_Cookie: {fileID: 0} 3466 | m_DrawHalo: 0 3467 | m_Flare: {fileID: 0} 3468 | m_RenderMode: 0 3469 | m_CullingMask: 3470 | serializedVersion: 2 3471 | m_Bits: 4294967295 3472 | m_RenderingLayerMask: 1 3473 | m_Lightmapping: 4 3474 | m_LightShadowCasterMode: 0 3475 | m_AreaSize: {x: 1, y: 1} 3476 | m_BounceIntensity: 1 3477 | m_ColorTemperature: 6570 3478 | m_UseColorTemperature: 0 3479 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 3480 | m_UseBoundingSphereOverride: 0 3481 | m_ShadowRadius: 0 3482 | m_ShadowAngle: 0 3483 | --- !u!4 &1473209676 3484 | Transform: 3485 | m_ObjectHideFlags: 0 3486 | m_CorrespondingSourceObject: {fileID: 0} 3487 | m_PrefabInstance: {fileID: 0} 3488 | m_PrefabAsset: {fileID: 0} 3489 | m_GameObject: {fileID: 1473209674} 3490 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 3491 | m_LocalPosition: {x: -349.83594, y: -215.61807, z: 0} 3492 | m_LocalScale: {x: 1, y: 1, z: 1} 3493 | m_Children: [] 3494 | m_Father: {fileID: 29507516} 3495 | m_RootOrder: 2 3496 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 3497 | --- !u!1 &1485788381 3498 | GameObject: 3499 | m_ObjectHideFlags: 0 3500 | m_CorrespondingSourceObject: {fileID: 0} 3501 | m_PrefabInstance: {fileID: 0} 3502 | m_PrefabAsset: {fileID: 0} 3503 | serializedVersion: 6 3504 | m_Component: 3505 | - component: {fileID: 1485788382} 3506 | m_Layer: 5 3507 | m_Name: Header 3508 | m_TagString: Untagged 3509 | m_Icon: {fileID: 0} 3510 | m_NavMeshLayer: 0 3511 | m_StaticEditorFlags: 0 3512 | m_IsActive: 1 3513 | --- !u!224 &1485788382 3514 | RectTransform: 3515 | m_ObjectHideFlags: 0 3516 | m_CorrespondingSourceObject: {fileID: 0} 3517 | m_PrefabInstance: {fileID: 0} 3518 | m_PrefabAsset: {fileID: 0} 3519 | m_GameObject: {fileID: 1485788381} 3520 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 3521 | m_LocalPosition: {x: 0, y: 0, z: 0} 3522 | m_LocalScale: {x: 1, y: 1, z: 1} 3523 | m_Children: 3524 | - {fileID: 644992238} 3525 | m_Father: {fileID: 1342787545} 3526 | m_RootOrder: 0 3527 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3528 | m_AnchorMin: {x: 0, y: 0.92254853} 3529 | m_AnchorMax: {x: 1, y: 1} 3530 | m_AnchoredPosition: {x: 0, y: 0} 3531 | m_SizeDelta: {x: 0, y: 0} 3532 | m_Pivot: {x: 0.5, y: 0.5} 3533 | --- !u!1 &1515171186 3534 | GameObject: 3535 | m_ObjectHideFlags: 0 3536 | m_CorrespondingSourceObject: {fileID: 0} 3537 | m_PrefabInstance: {fileID: 0} 3538 | m_PrefabAsset: {fileID: 0} 3539 | serializedVersion: 6 3540 | m_Component: 3541 | - component: {fileID: 1515171187} 3542 | - component: {fileID: 1515171190} 3543 | - component: {fileID: 1515171189} 3544 | - component: {fileID: 1515171188} 3545 | m_Layer: 5 3546 | m_Name: StartServer_btn 3547 | m_TagString: Untagged 3548 | m_Icon: {fileID: 0} 3549 | m_NavMeshLayer: 0 3550 | m_StaticEditorFlags: 0 3551 | m_IsActive: 1 3552 | --- !u!224 &1515171187 3553 | RectTransform: 3554 | m_ObjectHideFlags: 0 3555 | m_CorrespondingSourceObject: {fileID: 0} 3556 | m_PrefabInstance: {fileID: 0} 3557 | m_PrefabAsset: {fileID: 0} 3558 | m_GameObject: {fileID: 1515171186} 3559 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3560 | m_LocalPosition: {x: 0, y: 0, z: 0} 3561 | m_LocalScale: {x: 1, y: 1, z: 1} 3562 | m_Children: 3563 | - {fileID: 668147667} 3564 | m_Father: {fileID: 983091628} 3565 | m_RootOrder: 0 3566 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3567 | m_AnchorMin: {x: 0, y: 0.6267855} 3568 | m_AnchorMax: {x: 0.6303359, y: 0.82364357} 3569 | m_AnchoredPosition: {x: 0, y: 0.0076904297} 3570 | m_SizeDelta: {x: 1, y: 1} 3571 | m_Pivot: {x: 0, y: 0.5} 3572 | --- !u!114 &1515171188 3573 | MonoBehaviour: 3574 | m_ObjectHideFlags: 0 3575 | m_CorrespondingSourceObject: {fileID: 0} 3576 | m_PrefabInstance: {fileID: 0} 3577 | m_PrefabAsset: {fileID: 0} 3578 | m_GameObject: {fileID: 1515171186} 3579 | m_Enabled: 1 3580 | m_EditorHideFlags: 0 3581 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 3582 | m_Name: 3583 | m_EditorClassIdentifier: 3584 | m_Navigation: 3585 | m_Mode: 3 3586 | m_SelectOnUp: {fileID: 0} 3587 | m_SelectOnDown: {fileID: 0} 3588 | m_SelectOnLeft: {fileID: 0} 3589 | m_SelectOnRight: {fileID: 0} 3590 | m_Transition: 1 3591 | m_Colors: 3592 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 3593 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3594 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 3595 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 3596 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 3597 | m_ColorMultiplier: 1 3598 | m_FadeDuration: 0.1 3599 | m_SpriteState: 3600 | m_HighlightedSprite: {fileID: 0} 3601 | m_PressedSprite: {fileID: 0} 3602 | m_SelectedSprite: {fileID: 0} 3603 | m_DisabledSprite: {fileID: 0} 3604 | m_AnimationTriggers: 3605 | m_NormalTrigger: Normal 3606 | m_HighlightedTrigger: Highlighted 3607 | m_PressedTrigger: Pressed 3608 | m_SelectedTrigger: Highlighted 3609 | m_DisabledTrigger: Disabled 3610 | m_Interactable: 1 3611 | m_TargetGraphic: {fileID: 1515171189} 3612 | m_OnClick: 3613 | m_PersistentCalls: 3614 | m_Calls: 3615 | - m_Target: {fileID: 424903499} 3616 | m_MethodName: 3617 | m_Mode: 1 3618 | m_Arguments: 3619 | m_ObjectArgument: {fileID: 0} 3620 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 3621 | m_IntArgument: 0 3622 | m_FloatArgument: 0 3623 | m_StringArgument: 3624 | m_BoolArgument: 0 3625 | m_CallState: 2 3626 | --- !u!114 &1515171189 3627 | MonoBehaviour: 3628 | m_ObjectHideFlags: 0 3629 | m_CorrespondingSourceObject: {fileID: 0} 3630 | m_PrefabInstance: {fileID: 0} 3631 | m_PrefabAsset: {fileID: 0} 3632 | m_GameObject: {fileID: 1515171186} 3633 | m_Enabled: 1 3634 | m_EditorHideFlags: 0 3635 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 3636 | m_Name: 3637 | m_EditorClassIdentifier: 3638 | m_Material: {fileID: 0} 3639 | m_Color: {r: 1, g: 1, b: 1, a: 1} 3640 | m_RaycastTarget: 1 3641 | m_Maskable: 1 3642 | m_OnCullStateChanged: 3643 | m_PersistentCalls: 3644 | m_Calls: [] 3645 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 3646 | m_Type: 1 3647 | m_PreserveAspect: 0 3648 | m_FillCenter: 1 3649 | m_FillMethod: 4 3650 | m_FillAmount: 1 3651 | m_FillClockwise: 1 3652 | m_FillOrigin: 0 3653 | m_UseSpriteMesh: 0 3654 | m_PixelsPerUnitMultiplier: 1 3655 | --- !u!222 &1515171190 3656 | CanvasRenderer: 3657 | m_ObjectHideFlags: 0 3658 | m_CorrespondingSourceObject: {fileID: 0} 3659 | m_PrefabInstance: {fileID: 0} 3660 | m_PrefabAsset: {fileID: 0} 3661 | m_GameObject: {fileID: 1515171186} 3662 | m_CullTransparentMesh: 0 3663 | --- !u!1 &1576023164 3664 | GameObject: 3665 | m_ObjectHideFlags: 0 3666 | m_CorrespondingSourceObject: {fileID: 0} 3667 | m_PrefabInstance: {fileID: 0} 3668 | m_PrefabAsset: {fileID: 0} 3669 | serializedVersion: 6 3670 | m_Component: 3671 | - component: {fileID: 1576023165} 3672 | - component: {fileID: 1576023166} 3673 | - component: {fileID: 1576023167} 3674 | m_Layer: 5 3675 | m_Name: Handle 3676 | m_TagString: Untagged 3677 | m_Icon: {fileID: 0} 3678 | m_NavMeshLayer: 0 3679 | m_StaticEditorFlags: 0 3680 | m_IsActive: 1 3681 | --- !u!224 &1576023165 3682 | RectTransform: 3683 | m_ObjectHideFlags: 0 3684 | m_CorrespondingSourceObject: {fileID: 0} 3685 | m_PrefabInstance: {fileID: 0} 3686 | m_PrefabAsset: {fileID: 0} 3687 | m_GameObject: {fileID: 1576023164} 3688 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3689 | m_LocalPosition: {x: 0, y: 0, z: 0} 3690 | m_LocalScale: {x: 1, y: 1, z: 1} 3691 | m_Children: [] 3692 | m_Father: {fileID: 1619757866} 3693 | m_RootOrder: 0 3694 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3695 | m_AnchorMin: {x: 0, y: 0} 3696 | m_AnchorMax: {x: 0, y: 0} 3697 | m_AnchoredPosition: {x: 0, y: 0} 3698 | m_SizeDelta: {x: 20, y: 20} 3699 | m_Pivot: {x: 0.5, y: 0.5} 3700 | --- !u!222 &1576023166 3701 | CanvasRenderer: 3702 | m_ObjectHideFlags: 0 3703 | m_CorrespondingSourceObject: {fileID: 0} 3704 | m_PrefabInstance: {fileID: 0} 3705 | m_PrefabAsset: {fileID: 0} 3706 | m_GameObject: {fileID: 1576023164} 3707 | m_CullTransparentMesh: 0 3708 | --- !u!114 &1576023167 3709 | MonoBehaviour: 3710 | m_ObjectHideFlags: 0 3711 | m_CorrespondingSourceObject: {fileID: 0} 3712 | m_PrefabInstance: {fileID: 0} 3713 | m_PrefabAsset: {fileID: 0} 3714 | m_GameObject: {fileID: 1576023164} 3715 | m_Enabled: 1 3716 | m_EditorHideFlags: 0 3717 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 3718 | m_Name: 3719 | m_EditorClassIdentifier: 3720 | m_Material: {fileID: 0} 3721 | m_Color: {r: 1, g: 1, b: 1, a: 1} 3722 | m_RaycastTarget: 1 3723 | m_Maskable: 1 3724 | m_OnCullStateChanged: 3725 | m_PersistentCalls: 3726 | m_Calls: [] 3727 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 3728 | m_Type: 1 3729 | m_PreserveAspect: 0 3730 | m_FillCenter: 1 3731 | m_FillMethod: 4 3732 | m_FillAmount: 1 3733 | m_FillClockwise: 1 3734 | m_FillOrigin: 0 3735 | m_UseSpriteMesh: 0 3736 | m_PixelsPerUnitMultiplier: 1 3737 | --- !u!1 &1578584001 3738 | GameObject: 3739 | m_ObjectHideFlags: 0 3740 | m_CorrespondingSourceObject: {fileID: 0} 3741 | m_PrefabInstance: {fileID: 0} 3742 | m_PrefabAsset: {fileID: 0} 3743 | serializedVersion: 6 3744 | m_Component: 3745 | - component: {fileID: 1578584002} 3746 | - component: {fileID: 1578584004} 3747 | - component: {fileID: 1578584003} 3748 | m_Layer: 5 3749 | m_Name: Placeholder 3750 | m_TagString: Untagged 3751 | m_Icon: {fileID: 0} 3752 | m_NavMeshLayer: 0 3753 | m_StaticEditorFlags: 0 3754 | m_IsActive: 1 3755 | --- !u!224 &1578584002 3756 | RectTransform: 3757 | m_ObjectHideFlags: 0 3758 | m_CorrespondingSourceObject: {fileID: 0} 3759 | m_PrefabInstance: {fileID: 0} 3760 | m_PrefabAsset: {fileID: 0} 3761 | m_GameObject: {fileID: 1578584001} 3762 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 3763 | m_LocalPosition: {x: 0, y: 0, z: 0} 3764 | m_LocalScale: {x: 1, y: 1, z: 1} 3765 | m_Children: [] 3766 | m_Father: {fileID: 218421683} 3767 | m_RootOrder: 0 3768 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3769 | m_AnchorMin: {x: 0, y: 0} 3770 | m_AnchorMax: {x: 1, y: 1} 3771 | m_AnchoredPosition: {x: 0, y: -0.5} 3772 | m_SizeDelta: {x: -20, y: -13} 3773 | m_Pivot: {x: 0.5, y: 0.5} 3774 | --- !u!114 &1578584003 3775 | MonoBehaviour: 3776 | m_ObjectHideFlags: 0 3777 | m_CorrespondingSourceObject: {fileID: 0} 3778 | m_PrefabInstance: {fileID: 0} 3779 | m_PrefabAsset: {fileID: 0} 3780 | m_GameObject: {fileID: 1578584001} 3781 | m_Enabled: 1 3782 | m_EditorHideFlags: 0 3783 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 3784 | m_Name: 3785 | m_EditorClassIdentifier: 3786 | m_Material: {fileID: 0} 3787 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} 3788 | m_RaycastTarget: 1 3789 | m_Maskable: 1 3790 | m_OnCullStateChanged: 3791 | m_PersistentCalls: 3792 | m_Calls: [] 3793 | m_FontData: 3794 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 3795 | m_FontSize: 14 3796 | m_FontStyle: 2 3797 | m_BestFit: 0 3798 | m_MinSize: 10 3799 | m_MaxSize: 40 3800 | m_Alignment: 3 3801 | m_AlignByGeometry: 0 3802 | m_RichText: 1 3803 | m_HorizontalOverflow: 0 3804 | m_VerticalOverflow: 0 3805 | m_LineSpacing: 1 3806 | m_Text: Enter text... 3807 | --- !u!222 &1578584004 3808 | CanvasRenderer: 3809 | m_ObjectHideFlags: 0 3810 | m_CorrespondingSourceObject: {fileID: 0} 3811 | m_PrefabInstance: {fileID: 0} 3812 | m_PrefabAsset: {fileID: 0} 3813 | m_GameObject: {fileID: 1578584001} 3814 | m_CullTransparentMesh: 0 3815 | --- !u!1 &1591457255 3816 | GameObject: 3817 | m_ObjectHideFlags: 0 3818 | m_CorrespondingSourceObject: {fileID: 0} 3819 | m_PrefabInstance: {fileID: 0} 3820 | m_PrefabAsset: {fileID: 0} 3821 | serializedVersion: 6 3822 | m_Component: 3823 | - component: {fileID: 1591457256} 3824 | - component: {fileID: 1591457257} 3825 | m_Layer: 5 3826 | m_Name: ClientLogger 3827 | m_TagString: Untagged 3828 | m_Icon: {fileID: 0} 3829 | m_NavMeshLayer: 0 3830 | m_StaticEditorFlags: 0 3831 | m_IsActive: 1 3832 | --- !u!224 &1591457256 3833 | RectTransform: 3834 | m_ObjectHideFlags: 0 3835 | m_CorrespondingSourceObject: {fileID: 0} 3836 | m_PrefabInstance: {fileID: 0} 3837 | m_PrefabAsset: {fileID: 0} 3838 | m_GameObject: {fileID: 1591457255} 3839 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3840 | m_LocalPosition: {x: 0, y: 0, z: 0} 3841 | m_LocalScale: {x: 1, y: 1, z: 0} 3842 | m_Children: 3843 | - {fileID: 429689809} 3844 | - {fileID: 1315929537} 3845 | m_Father: {fileID: 1697541020} 3846 | m_RootOrder: 2 3847 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3848 | m_AnchorMin: {x: 0, y: 0} 3849 | m_AnchorMax: {x: 1, y: 0.705105} 3850 | m_AnchoredPosition: {x: 0, y: -0.012451172} 3851 | m_SizeDelta: {x: 0.000030517578, y: 0.025024414} 3852 | m_Pivot: {x: 0.5, y: 0.5} 3853 | --- !u!222 &1591457257 3854 | CanvasRenderer: 3855 | m_ObjectHideFlags: 0 3856 | m_CorrespondingSourceObject: {fileID: 0} 3857 | m_PrefabInstance: {fileID: 0} 3858 | m_PrefabAsset: {fileID: 0} 3859 | m_GameObject: {fileID: 1591457255} 3860 | m_CullTransparentMesh: 0 3861 | --- !u!1 &1619757865 3862 | GameObject: 3863 | m_ObjectHideFlags: 0 3864 | m_CorrespondingSourceObject: {fileID: 0} 3865 | m_PrefabInstance: {fileID: 0} 3866 | m_PrefabAsset: {fileID: 0} 3867 | serializedVersion: 6 3868 | m_Component: 3869 | - component: {fileID: 1619757866} 3870 | m_Layer: 5 3871 | m_Name: Sliding Area 3872 | m_TagString: Untagged 3873 | m_Icon: {fileID: 0} 3874 | m_NavMeshLayer: 0 3875 | m_StaticEditorFlags: 0 3876 | m_IsActive: 1 3877 | --- !u!224 &1619757866 3878 | RectTransform: 3879 | m_ObjectHideFlags: 0 3880 | m_CorrespondingSourceObject: {fileID: 0} 3881 | m_PrefabInstance: {fileID: 0} 3882 | m_PrefabAsset: {fileID: 0} 3883 | m_GameObject: {fileID: 1619757865} 3884 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 3885 | m_LocalPosition: {x: 0, y: 0, z: 0} 3886 | m_LocalScale: {x: 1, y: 1, z: 1} 3887 | m_Children: 3888 | - {fileID: 1576023165} 3889 | m_Father: {fileID: 1012370947} 3890 | m_RootOrder: 0 3891 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3892 | m_AnchorMin: {x: 0, y: 0} 3893 | m_AnchorMax: {x: 1, y: 1} 3894 | m_AnchoredPosition: {x: 0, y: 0} 3895 | m_SizeDelta: {x: -20, y: -20} 3896 | m_Pivot: {x: 0.5, y: 0.5} 3897 | --- !u!1 &1636111362 3898 | GameObject: 3899 | m_ObjectHideFlags: 0 3900 | m_CorrespondingSourceObject: {fileID: 0} 3901 | m_PrefabInstance: {fileID: 0} 3902 | m_PrefabAsset: {fileID: 0} 3903 | serializedVersion: 6 3904 | m_Component: 3905 | - component: {fileID: 1636111363} 3906 | - component: {fileID: 1636111366} 3907 | - component: {fileID: 1636111364} 3908 | m_Layer: 5 3909 | m_Name: Scroll View 3910 | m_TagString: Untagged 3911 | m_Icon: {fileID: 0} 3912 | m_NavMeshLayer: 0 3913 | m_StaticEditorFlags: 0 3914 | m_IsActive: 1 3915 | --- !u!224 &1636111363 3916 | RectTransform: 3917 | m_ObjectHideFlags: 0 3918 | m_CorrespondingSourceObject: {fileID: 0} 3919 | m_PrefabInstance: {fileID: 0} 3920 | m_PrefabAsset: {fileID: 0} 3921 | m_GameObject: {fileID: 1636111362} 3922 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 3923 | m_LocalPosition: {x: 0, y: 0, z: 0} 3924 | m_LocalScale: {x: 1, y: 1, z: 1} 3925 | m_Children: 3926 | - {fileID: 325365753} 3927 | - {fileID: 1649121704} 3928 | - {fileID: 198872070} 3929 | m_Father: {fileID: 2140781251} 3930 | m_RootOrder: 1 3931 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 3932 | m_AnchorMin: {x: 0, y: 0} 3933 | m_AnchorMax: {x: 1, y: 1} 3934 | m_AnchoredPosition: {x: 5, y: -4.9999695} 3935 | m_SizeDelta: {x: -9.999985, y: -10} 3936 | m_Pivot: {x: 0.5, y: 0.5} 3937 | --- !u!114 &1636111364 3938 | MonoBehaviour: 3939 | m_ObjectHideFlags: 0 3940 | m_CorrespondingSourceObject: {fileID: 0} 3941 | m_PrefabInstance: {fileID: 0} 3942 | m_PrefabAsset: {fileID: 0} 3943 | m_GameObject: {fileID: 1636111362} 3944 | m_Enabled: 1 3945 | m_EditorHideFlags: 0 3946 | m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} 3947 | m_Name: 3948 | m_EditorClassIdentifier: 3949 | m_Content: {fileID: 358682906} 3950 | m_Horizontal: 0 3951 | m_Vertical: 1 3952 | m_MovementType: 1 3953 | m_Elasticity: 0.1 3954 | m_Inertia: 1 3955 | m_DecelerationRate: 0.135 3956 | m_ScrollSensitivity: 1 3957 | m_Viewport: {fileID: 325365753} 3958 | m_HorizontalScrollbar: {fileID: 1649121705} 3959 | m_VerticalScrollbar: {fileID: 198872071} 3960 | m_HorizontalScrollbarVisibility: 1 3961 | m_VerticalScrollbarVisibility: 1 3962 | m_HorizontalScrollbarSpacing: -3 3963 | m_VerticalScrollbarSpacing: -3 3964 | m_OnValueChanged: 3965 | m_PersistentCalls: 3966 | m_Calls: [] 3967 | --- !u!222 &1636111366 3968 | CanvasRenderer: 3969 | m_ObjectHideFlags: 0 3970 | m_CorrespondingSourceObject: {fileID: 0} 3971 | m_PrefabInstance: {fileID: 0} 3972 | m_PrefabAsset: {fileID: 0} 3973 | m_GameObject: {fileID: 1636111362} 3974 | m_CullTransparentMesh: 0 3975 | --- !u!1 &1641955504 3976 | GameObject: 3977 | m_ObjectHideFlags: 0 3978 | m_CorrespondingSourceObject: {fileID: 0} 3979 | m_PrefabInstance: {fileID: 0} 3980 | m_PrefabAsset: {fileID: 0} 3981 | serializedVersion: 6 3982 | m_Component: 3983 | - component: {fileID: 1641955505} 3984 | - component: {fileID: 1641955507} 3985 | - component: {fileID: 1641955506} 3986 | m_Layer: 5 3987 | m_Name: Text 3988 | m_TagString: Untagged 3989 | m_Icon: {fileID: 0} 3990 | m_NavMeshLayer: 0 3991 | m_StaticEditorFlags: 0 3992 | m_IsActive: 1 3993 | --- !u!224 &1641955505 3994 | RectTransform: 3995 | m_ObjectHideFlags: 0 3996 | m_CorrespondingSourceObject: {fileID: 0} 3997 | m_PrefabInstance: {fileID: 0} 3998 | m_PrefabAsset: {fileID: 0} 3999 | m_GameObject: {fileID: 1641955504} 4000 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 4001 | m_LocalPosition: {x: 0, y: 0, z: 0} 4002 | m_LocalScale: {x: 1, y: 1, z: 1} 4003 | m_Children: [] 4004 | m_Father: {fileID: 1467206376} 4005 | m_RootOrder: 0 4006 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4007 | m_AnchorMin: {x: 0, y: 0} 4008 | m_AnchorMax: {x: 1, y: 1} 4009 | m_AnchoredPosition: {x: 0, y: 0} 4010 | m_SizeDelta: {x: 0, y: 0} 4011 | m_Pivot: {x: 0.5, y: 0.5} 4012 | --- !u!114 &1641955506 4013 | MonoBehaviour: 4014 | m_ObjectHideFlags: 0 4015 | m_CorrespondingSourceObject: {fileID: 0} 4016 | m_PrefabInstance: {fileID: 0} 4017 | m_PrefabAsset: {fileID: 0} 4018 | m_GameObject: {fileID: 1641955504} 4019 | m_Enabled: 1 4020 | m_EditorHideFlags: 0 4021 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 4022 | m_Name: 4023 | m_EditorClassIdentifier: 4024 | m_Material: {fileID: 0} 4025 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 4026 | m_RaycastTarget: 1 4027 | m_Maskable: 1 4028 | m_OnCullStateChanged: 4029 | m_PersistentCalls: 4030 | m_Calls: [] 4031 | m_FontData: 4032 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 4033 | m_FontSize: 14 4034 | m_FontStyle: 0 4035 | m_BestFit: 0 4036 | m_MinSize: 10 4037 | m_MaxSize: 40 4038 | m_Alignment: 4 4039 | m_AlignByGeometry: 0 4040 | m_RichText: 1 4041 | m_HorizontalOverflow: 0 4042 | m_VerticalOverflow: 0 4043 | m_LineSpacing: 1 4044 | m_Text: 'Send Close to Server 4045 | 4046 | (and Close Client)' 4047 | --- !u!222 &1641955507 4048 | CanvasRenderer: 4049 | m_ObjectHideFlags: 0 4050 | m_CorrespondingSourceObject: {fileID: 0} 4051 | m_PrefabInstance: {fileID: 0} 4052 | m_PrefabAsset: {fileID: 0} 4053 | m_GameObject: {fileID: 1641955504} 4054 | m_CullTransparentMesh: 0 4055 | --- !u!1 &1649121703 4056 | GameObject: 4057 | m_ObjectHideFlags: 0 4058 | m_CorrespondingSourceObject: {fileID: 0} 4059 | m_PrefabInstance: {fileID: 0} 4060 | m_PrefabAsset: {fileID: 0} 4061 | serializedVersion: 6 4062 | m_Component: 4063 | - component: {fileID: 1649121704} 4064 | - component: {fileID: 1649121707} 4065 | - component: {fileID: 1649121706} 4066 | - component: {fileID: 1649121705} 4067 | m_Layer: 5 4068 | m_Name: Scrollbar Horizontal 4069 | m_TagString: Untagged 4070 | m_Icon: {fileID: 0} 4071 | m_NavMeshLayer: 0 4072 | m_StaticEditorFlags: 0 4073 | m_IsActive: 1 4074 | --- !u!224 &1649121704 4075 | RectTransform: 4076 | m_ObjectHideFlags: 0 4077 | m_CorrespondingSourceObject: {fileID: 0} 4078 | m_PrefabInstance: {fileID: 0} 4079 | m_PrefabAsset: {fileID: 0} 4080 | m_GameObject: {fileID: 1649121703} 4081 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4082 | m_LocalPosition: {x: 0, y: 0, z: 0} 4083 | m_LocalScale: {x: 1, y: 1, z: 1} 4084 | m_Children: 4085 | - {fileID: 305585436} 4086 | m_Father: {fileID: 1636111363} 4087 | m_RootOrder: 1 4088 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4089 | m_AnchorMin: {x: 0, y: 0} 4090 | m_AnchorMax: {x: 1, y: 0} 4091 | m_AnchoredPosition: {x: 0, y: 0} 4092 | m_SizeDelta: {x: -17, y: 14} 4093 | m_Pivot: {x: 0, y: 0} 4094 | --- !u!114 &1649121705 4095 | MonoBehaviour: 4096 | m_ObjectHideFlags: 0 4097 | m_CorrespondingSourceObject: {fileID: 0} 4098 | m_PrefabInstance: {fileID: 0} 4099 | m_PrefabAsset: {fileID: 0} 4100 | m_GameObject: {fileID: 1649121703} 4101 | m_Enabled: 1 4102 | m_EditorHideFlags: 0 4103 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 4104 | m_Name: 4105 | m_EditorClassIdentifier: 4106 | m_Navigation: 4107 | m_Mode: 3 4108 | m_SelectOnUp: {fileID: 0} 4109 | m_SelectOnDown: {fileID: 0} 4110 | m_SelectOnLeft: {fileID: 0} 4111 | m_SelectOnRight: {fileID: 0} 4112 | m_Transition: 1 4113 | m_Colors: 4114 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 4115 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 4116 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 4117 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 4118 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 4119 | m_ColorMultiplier: 1 4120 | m_FadeDuration: 0.1 4121 | m_SpriteState: 4122 | m_HighlightedSprite: {fileID: 0} 4123 | m_PressedSprite: {fileID: 0} 4124 | m_SelectedSprite: {fileID: 0} 4125 | m_DisabledSprite: {fileID: 0} 4126 | m_AnimationTriggers: 4127 | m_NormalTrigger: Normal 4128 | m_HighlightedTrigger: Highlighted 4129 | m_PressedTrigger: Pressed 4130 | m_SelectedTrigger: Selected 4131 | m_DisabledTrigger: Disabled 4132 | m_Interactable: 1 4133 | m_TargetGraphic: {fileID: 1147770387} 4134 | m_HandleRect: {fileID: 1147770386} 4135 | m_Direction: 0 4136 | m_Value: 0 4137 | m_Size: 1 4138 | m_NumberOfSteps: 0 4139 | m_OnValueChanged: 4140 | m_PersistentCalls: 4141 | m_Calls: [] 4142 | --- !u!114 &1649121706 4143 | MonoBehaviour: 4144 | m_ObjectHideFlags: 0 4145 | m_CorrespondingSourceObject: {fileID: 0} 4146 | m_PrefabInstance: {fileID: 0} 4147 | m_PrefabAsset: {fileID: 0} 4148 | m_GameObject: {fileID: 1649121703} 4149 | m_Enabled: 1 4150 | m_EditorHideFlags: 0 4151 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 4152 | m_Name: 4153 | m_EditorClassIdentifier: 4154 | m_Material: {fileID: 0} 4155 | m_Color: {r: 1, g: 1, b: 1, a: 1} 4156 | m_RaycastTarget: 1 4157 | m_Maskable: 1 4158 | m_OnCullStateChanged: 4159 | m_PersistentCalls: 4160 | m_Calls: [] 4161 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 4162 | m_Type: 1 4163 | m_PreserveAspect: 0 4164 | m_FillCenter: 1 4165 | m_FillMethod: 4 4166 | m_FillAmount: 1 4167 | m_FillClockwise: 1 4168 | m_FillOrigin: 0 4169 | m_UseSpriteMesh: 0 4170 | m_PixelsPerUnitMultiplier: 1 4171 | --- !u!222 &1649121707 4172 | CanvasRenderer: 4173 | m_ObjectHideFlags: 0 4174 | m_CorrespondingSourceObject: {fileID: 0} 4175 | m_PrefabInstance: {fileID: 0} 4176 | m_PrefabAsset: {fileID: 0} 4177 | m_GameObject: {fileID: 1649121703} 4178 | m_CullTransparentMesh: 0 4179 | --- !u!1 &1697541019 4180 | GameObject: 4181 | m_ObjectHideFlags: 0 4182 | m_CorrespondingSourceObject: {fileID: 0} 4183 | m_PrefabInstance: {fileID: 0} 4184 | m_PrefabAsset: {fileID: 0} 4185 | serializedVersion: 6 4186 | m_Component: 4187 | - component: {fileID: 1697541020} 4188 | m_Layer: 5 4189 | m_Name: Client_UI 4190 | m_TagString: Untagged 4191 | m_Icon: {fileID: 0} 4192 | m_NavMeshLayer: 0 4193 | m_StaticEditorFlags: 0 4194 | m_IsActive: 1 4195 | --- !u!224 &1697541020 4196 | RectTransform: 4197 | m_ObjectHideFlags: 0 4198 | m_CorrespondingSourceObject: {fileID: 0} 4199 | m_PrefabInstance: {fileID: 0} 4200 | m_PrefabAsset: {fileID: 0} 4201 | m_GameObject: {fileID: 1697541019} 4202 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 4203 | m_LocalPosition: {x: 0, y: 0, z: 0} 4204 | m_LocalScale: {x: 1, y: 1, z: 1} 4205 | m_Children: 4206 | - {fileID: 1865169435} 4207 | - {fileID: 53837260} 4208 | - {fileID: 1591457256} 4209 | m_Father: {fileID: 641806909} 4210 | m_RootOrder: 1 4211 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4212 | m_AnchorMin: {x: 0.5, y: 0} 4213 | m_AnchorMax: {x: 1, y: 1} 4214 | m_AnchoredPosition: {x: 0.5, y: 0} 4215 | m_SizeDelta: {x: -1, y: 0} 4216 | m_Pivot: {x: 0.5, y: 0.5} 4217 | --- !u!1 &1854101311 4218 | GameObject: 4219 | m_ObjectHideFlags: 0 4220 | m_CorrespondingSourceObject: {fileID: 0} 4221 | m_PrefabInstance: {fileID: 0} 4222 | m_PrefabAsset: {fileID: 0} 4223 | serializedVersion: 6 4224 | m_Component: 4225 | - component: {fileID: 1854101312} 4226 | - component: {fileID: 1854101315} 4227 | - component: {fileID: 1854101314} 4228 | - component: {fileID: 1854101313} 4229 | m_Layer: 5 4230 | m_Name: Content 4231 | m_TagString: Untagged 4232 | m_Icon: {fileID: 0} 4233 | m_NavMeshLayer: 0 4234 | m_StaticEditorFlags: 0 4235 | m_IsActive: 1 4236 | --- !u!224 &1854101312 4237 | RectTransform: 4238 | m_ObjectHideFlags: 0 4239 | m_CorrespondingSourceObject: {fileID: 0} 4240 | m_PrefabInstance: {fileID: 0} 4241 | m_PrefabAsset: {fileID: 0} 4242 | m_GameObject: {fileID: 1854101311} 4243 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4244 | m_LocalPosition: {x: 0, y: 0, z: 0} 4245 | m_LocalScale: {x: 1, y: 1, z: 1} 4246 | m_Children: [] 4247 | m_Father: {fileID: 573462075} 4248 | m_RootOrder: 0 4249 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4250 | m_AnchorMin: {x: 0, y: 1} 4251 | m_AnchorMax: {x: 0.94649935, y: 1} 4252 | m_AnchoredPosition: {x: 0, y: 0} 4253 | m_SizeDelta: {x: -14.525864, y: 0} 4254 | m_Pivot: {x: 0, y: 1} 4255 | --- !u!114 &1854101313 4256 | MonoBehaviour: 4257 | m_ObjectHideFlags: 0 4258 | m_CorrespondingSourceObject: {fileID: 0} 4259 | m_PrefabInstance: {fileID: 0} 4260 | m_PrefabAsset: {fileID: 0} 4261 | m_GameObject: {fileID: 1854101311} 4262 | m_Enabled: 1 4263 | m_EditorHideFlags: 0 4264 | m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} 4265 | m_Name: 4266 | m_EditorClassIdentifier: 4267 | m_HorizontalFit: 0 4268 | m_VerticalFit: 2 4269 | --- !u!114 &1854101314 4270 | MonoBehaviour: 4271 | m_ObjectHideFlags: 0 4272 | m_CorrespondingSourceObject: {fileID: 0} 4273 | m_PrefabInstance: {fileID: 0} 4274 | m_PrefabAsset: {fileID: 0} 4275 | m_GameObject: {fileID: 1854101311} 4276 | m_Enabled: 1 4277 | m_EditorHideFlags: 0 4278 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 4279 | m_Name: 4280 | m_EditorClassIdentifier: 4281 | m_Material: {fileID: 0} 4282 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 4283 | m_RaycastTarget: 1 4284 | m_Maskable: 1 4285 | m_OnCullStateChanged: 4286 | m_PersistentCalls: 4287 | m_Calls: [] 4288 | m_FontData: 4289 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 4290 | m_FontSize: 14 4291 | m_FontStyle: 0 4292 | m_BestFit: 0 4293 | m_MinSize: 10 4294 | m_MaxSize: 40 4295 | m_Alignment: 0 4296 | m_AlignByGeometry: 0 4297 | m_RichText: 1 4298 | m_HorizontalOverflow: 0 4299 | m_VerticalOverflow: 0 4300 | m_LineSpacing: 1 4301 | m_Text: ' Client Logs: 4302 | 4303 | ' 4304 | --- !u!222 &1854101315 4305 | CanvasRenderer: 4306 | m_ObjectHideFlags: 0 4307 | m_CorrespondingSourceObject: {fileID: 0} 4308 | m_PrefabInstance: {fileID: 0} 4309 | m_PrefabAsset: {fileID: 0} 4310 | m_GameObject: {fileID: 1854101311} 4311 | m_CullTransparentMesh: 0 4312 | --- !u!1 &1865169434 4313 | GameObject: 4314 | m_ObjectHideFlags: 0 4315 | m_CorrespondingSourceObject: {fileID: 0} 4316 | m_PrefabInstance: {fileID: 0} 4317 | m_PrefabAsset: {fileID: 0} 4318 | serializedVersion: 6 4319 | m_Component: 4320 | - component: {fileID: 1865169435} 4321 | m_Layer: 5 4322 | m_Name: Header 4323 | m_TagString: Untagged 4324 | m_Icon: {fileID: 0} 4325 | m_NavMeshLayer: 0 4326 | m_StaticEditorFlags: 0 4327 | m_IsActive: 1 4328 | --- !u!224 &1865169435 4329 | RectTransform: 4330 | m_ObjectHideFlags: 0 4331 | m_CorrespondingSourceObject: {fileID: 0} 4332 | m_PrefabInstance: {fileID: 0} 4333 | m_PrefabAsset: {fileID: 0} 4334 | m_GameObject: {fileID: 1865169434} 4335 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 4336 | m_LocalPosition: {x: 0, y: 0, z: 0} 4337 | m_LocalScale: {x: 1, y: 1, z: 1} 4338 | m_Children: 4339 | - {fileID: 300588219} 4340 | m_Father: {fileID: 1697541020} 4341 | m_RootOrder: 0 4342 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4343 | m_AnchorMin: {x: 0, y: 0.92254853} 4344 | m_AnchorMax: {x: 1, y: 1} 4345 | m_AnchoredPosition: {x: 0, y: 0} 4346 | m_SizeDelta: {x: 0, y: 0} 4347 | m_Pivot: {x: 0.5, y: 0.5} 4348 | --- !u!1 &2089604400 4349 | GameObject: 4350 | m_ObjectHideFlags: 0 4351 | m_CorrespondingSourceObject: {fileID: 0} 4352 | m_PrefabInstance: {fileID: 0} 4353 | m_PrefabAsset: {fileID: 0} 4354 | serializedVersion: 6 4355 | m_Component: 4356 | - component: {fileID: 2089604401} 4357 | m_Layer: 5 4358 | m_Name: Sliding Area 4359 | m_TagString: Untagged 4360 | m_Icon: {fileID: 0} 4361 | m_NavMeshLayer: 0 4362 | m_StaticEditorFlags: 0 4363 | m_IsActive: 1 4364 | --- !u!224 &2089604401 4365 | RectTransform: 4366 | m_ObjectHideFlags: 0 4367 | m_CorrespondingSourceObject: {fileID: 0} 4368 | m_PrefabInstance: {fileID: 0} 4369 | m_PrefabAsset: {fileID: 0} 4370 | m_GameObject: {fileID: 2089604400} 4371 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4372 | m_LocalPosition: {x: 0, y: 0, z: 0} 4373 | m_LocalScale: {x: 1, y: 1, z: 1} 4374 | m_Children: 4375 | - {fileID: 1387791854} 4376 | m_Father: {fileID: 93246476} 4377 | m_RootOrder: 0 4378 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4379 | m_AnchorMin: {x: 0, y: 0} 4380 | m_AnchorMax: {x: 1, y: 1} 4381 | m_AnchoredPosition: {x: 0, y: 0} 4382 | m_SizeDelta: {x: -20, y: -20} 4383 | m_Pivot: {x: 0.5, y: 0.5} 4384 | --- !u!1 &2095598109 4385 | GameObject: 4386 | m_ObjectHideFlags: 0 4387 | m_CorrespondingSourceObject: {fileID: 0} 4388 | m_PrefabInstance: {fileID: 0} 4389 | m_PrefabAsset: {fileID: 0} 4390 | serializedVersion: 6 4391 | m_Component: 4392 | - component: {fileID: 2095598110} 4393 | m_Layer: 5 4394 | m_Name: SendClient 4395 | m_TagString: Untagged 4396 | m_Icon: {fileID: 0} 4397 | m_NavMeshLayer: 0 4398 | m_StaticEditorFlags: 0 4399 | m_IsActive: 1 4400 | --- !u!224 &2095598110 4401 | RectTransform: 4402 | m_ObjectHideFlags: 0 4403 | m_CorrespondingSourceObject: {fileID: 0} 4404 | m_PrefabInstance: {fileID: 0} 4405 | m_PrefabAsset: {fileID: 0} 4406 | m_GameObject: {fileID: 2095598109} 4407 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4408 | m_LocalPosition: {x: 0, y: 0, z: 0} 4409 | m_LocalScale: {x: 1, y: 1, z: 1} 4410 | m_Children: 4411 | - {fileID: 898017723} 4412 | - {fileID: 2098098882} 4413 | m_Father: {fileID: 983091628} 4414 | m_RootOrder: 1 4415 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4416 | m_AnchorMin: {x: 0, y: 0.3911422} 4417 | m_AnchorMax: {x: 0.9568198, y: 0.5922145} 4418 | m_AnchoredPosition: {x: 0, y: -0.49230957} 4419 | m_SizeDelta: {x: 0, y: 0} 4420 | m_Pivot: {x: 0, y: 0.5} 4421 | --- !u!1 &2098098881 4422 | GameObject: 4423 | m_ObjectHideFlags: 0 4424 | m_CorrespondingSourceObject: {fileID: 0} 4425 | m_PrefabInstance: {fileID: 0} 4426 | m_PrefabAsset: {fileID: 0} 4427 | serializedVersion: 6 4428 | m_Component: 4429 | - component: {fileID: 2098098882} 4430 | - component: {fileID: 2098098885} 4431 | - component: {fileID: 2098098884} 4432 | - component: {fileID: 2098098883} 4433 | m_Layer: 5 4434 | m_Name: InputField 4435 | m_TagString: Untagged 4436 | m_Icon: {fileID: 0} 4437 | m_NavMeshLayer: 0 4438 | m_StaticEditorFlags: 0 4439 | m_IsActive: 1 4440 | --- !u!224 &2098098882 4441 | RectTransform: 4442 | m_ObjectHideFlags: 0 4443 | m_CorrespondingSourceObject: {fileID: 0} 4444 | m_PrefabInstance: {fileID: 0} 4445 | m_PrefabAsset: {fileID: 0} 4446 | m_GameObject: {fileID: 2098098881} 4447 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4448 | m_LocalPosition: {x: 0, y: 0, z: 0} 4449 | m_LocalScale: {x: 1, y: 1, z: 1} 4450 | m_Children: 4451 | - {fileID: 129645020} 4452 | - {fileID: 117483918} 4453 | m_Father: {fileID: 2095598110} 4454 | m_RootOrder: 1 4455 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4456 | m_AnchorMin: {x: 0.665, y: 0} 4457 | m_AnchorMax: {x: 1, y: 1} 4458 | m_AnchoredPosition: {x: 0.23010254, y: 0} 4459 | m_SizeDelta: {x: -0.4610672, y: 0} 4460 | m_Pivot: {x: 0.5, y: 0.5} 4461 | --- !u!114 &2098098883 4462 | MonoBehaviour: 4463 | m_ObjectHideFlags: 0 4464 | m_CorrespondingSourceObject: {fileID: 0} 4465 | m_PrefabInstance: {fileID: 0} 4466 | m_PrefabAsset: {fileID: 0} 4467 | m_GameObject: {fileID: 2098098881} 4468 | m_Enabled: 1 4469 | m_EditorHideFlags: 0 4470 | m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} 4471 | m_Name: 4472 | m_EditorClassIdentifier: 4473 | m_Navigation: 4474 | m_Mode: 3 4475 | m_SelectOnUp: {fileID: 0} 4476 | m_SelectOnDown: {fileID: 0} 4477 | m_SelectOnLeft: {fileID: 0} 4478 | m_SelectOnRight: {fileID: 0} 4479 | m_Transition: 1 4480 | m_Colors: 4481 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 4482 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 4483 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 4484 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 4485 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 4486 | m_ColorMultiplier: 1 4487 | m_FadeDuration: 0.1 4488 | m_SpriteState: 4489 | m_HighlightedSprite: {fileID: 0} 4490 | m_PressedSprite: {fileID: 0} 4491 | m_SelectedSprite: {fileID: 0} 4492 | m_DisabledSprite: {fileID: 0} 4493 | m_AnimationTriggers: 4494 | m_NormalTrigger: Normal 4495 | m_HighlightedTrigger: Highlighted 4496 | m_PressedTrigger: Pressed 4497 | m_SelectedTrigger: Selected 4498 | m_DisabledTrigger: Disabled 4499 | m_Interactable: 1 4500 | m_TargetGraphic: {fileID: 2098098884} 4501 | m_TextComponent: {fileID: 117483919} 4502 | m_Placeholder: {fileID: 129645021} 4503 | m_ContentType: 0 4504 | m_InputType: 0 4505 | m_AsteriskChar: 42 4506 | m_KeyboardType: 0 4507 | m_LineType: 0 4508 | m_HideMobileInput: 0 4509 | m_CharacterValidation: 0 4510 | m_CharacterLimit: 0 4511 | m_OnEndEdit: 4512 | m_PersistentCalls: 4513 | m_Calls: [] 4514 | m_OnValueChanged: 4515 | m_PersistentCalls: 4516 | m_Calls: [] 4517 | m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 4518 | m_CustomCaretColor: 0 4519 | m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} 4520 | m_Text: 4521 | m_CaretBlinkRate: 0.85 4522 | m_CaretWidth: 1 4523 | m_ReadOnly: 0 4524 | --- !u!114 &2098098884 4525 | MonoBehaviour: 4526 | m_ObjectHideFlags: 0 4527 | m_CorrespondingSourceObject: {fileID: 0} 4528 | m_PrefabInstance: {fileID: 0} 4529 | m_PrefabAsset: {fileID: 0} 4530 | m_GameObject: {fileID: 2098098881} 4531 | m_Enabled: 1 4532 | m_EditorHideFlags: 0 4533 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 4534 | m_Name: 4535 | m_EditorClassIdentifier: 4536 | m_Material: {fileID: 0} 4537 | m_Color: {r: 1, g: 1, b: 1, a: 1} 4538 | m_RaycastTarget: 1 4539 | m_Maskable: 1 4540 | m_OnCullStateChanged: 4541 | m_PersistentCalls: 4542 | m_Calls: [] 4543 | m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} 4544 | m_Type: 1 4545 | m_PreserveAspect: 0 4546 | m_FillCenter: 1 4547 | m_FillMethod: 4 4548 | m_FillAmount: 1 4549 | m_FillClockwise: 1 4550 | m_FillOrigin: 0 4551 | m_UseSpriteMesh: 0 4552 | m_PixelsPerUnitMultiplier: 1 4553 | --- !u!222 &2098098885 4554 | CanvasRenderer: 4555 | m_ObjectHideFlags: 0 4556 | m_CorrespondingSourceObject: {fileID: 0} 4557 | m_PrefabInstance: {fileID: 0} 4558 | m_PrefabAsset: {fileID: 0} 4559 | m_GameObject: {fileID: 2098098881} 4560 | m_CullTransparentMesh: 0 4561 | --- !u!1 &2140781250 4562 | GameObject: 4563 | m_ObjectHideFlags: 0 4564 | m_CorrespondingSourceObject: {fileID: 0} 4565 | m_PrefabInstance: {fileID: 0} 4566 | m_PrefabAsset: {fileID: 0} 4567 | serializedVersion: 6 4568 | m_Component: 4569 | - component: {fileID: 2140781251} 4570 | - component: {fileID: 2140781252} 4571 | m_Layer: 5 4572 | m_Name: ServerLogger 4573 | m_TagString: Untagged 4574 | m_Icon: {fileID: 0} 4575 | m_NavMeshLayer: 0 4576 | m_StaticEditorFlags: 0 4577 | m_IsActive: 1 4578 | --- !u!224 &2140781251 4579 | RectTransform: 4580 | m_ObjectHideFlags: 0 4581 | m_CorrespondingSourceObject: {fileID: 0} 4582 | m_PrefabInstance: {fileID: 0} 4583 | m_PrefabAsset: {fileID: 0} 4584 | m_GameObject: {fileID: 2140781250} 4585 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 4586 | m_LocalPosition: {x: 0, y: 0, z: 0} 4587 | m_LocalScale: {x: 1, y: 1, z: 0} 4588 | m_Children: 4589 | - {fileID: 577058273} 4590 | - {fileID: 1636111363} 4591 | m_Father: {fileID: 1342787545} 4592 | m_RootOrder: 2 4593 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 4594 | m_AnchorMin: {x: 0, y: 0} 4595 | m_AnchorMax: {x: 1, y: 0.705105} 4596 | m_AnchoredPosition: {x: 0, y: -0.012451172} 4597 | m_SizeDelta: {x: 0.000030517578, y: 0.025024414} 4598 | m_Pivot: {x: 0.5, y: 0.5} 4599 | --- !u!222 &2140781252 4600 | CanvasRenderer: 4601 | m_ObjectHideFlags: 0 4602 | m_CorrespondingSourceObject: {fileID: 0} 4603 | m_PrefabInstance: {fileID: 0} 4604 | m_PrefabAsset: {fileID: 0} 4605 | m_GameObject: {fileID: 2140781250} 4606 | m_CullTransparentMesh: 0 4607 | -------------------------------------------------------------------------------- /Assets/Main_SimpleTCP.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcb74d7ddf2ee3e4cb480e9ea2d850db 3 | timeCreated: 1544011328 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 249128b4da9d83f48ab8f9e89f43a696 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Client.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Net.Sockets; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | /// 8 | /// Client class shows how to implement and use TcpClient in Unity. 9 | /// 10 | public class Client : MonoBehaviour 11 | { 12 | #region Public Variables 13 | [Header("Network")] 14 | public string ipAdress = "127.0.0.1"; 15 | public int port = 54010; 16 | public float waitingMessagesFrequency = 1; 17 | #endregion 18 | 19 | #region Private m_Variables 20 | private TcpClient m_Client; 21 | private NetworkStream m_NetStream = null; 22 | private byte[] m_Buffer = new byte[49152]; 23 | private int m_BytesReceived = 0; 24 | private string m_ReceivedMessage = ""; 25 | private IEnumerator m_ListenServerMsgsCoroutine = null; 26 | 27 | [Tooltip("This value should be >= to Server waitingMessagesFrequency")] 28 | [Min(0)] private float m_DelayedCloseTime = 0.5f; 29 | #endregion 30 | 31 | #region Delegate Variables 32 | protected Action OnClientStarted = null; //Delegate triggered when client start 33 | protected Action OnClientClosed = null; //Delegate triggered when client close 34 | #endregion 35 | 36 | //Start client and stablish connection with server 37 | protected void StartClient() 38 | { 39 | //Early out 40 | if (m_Client != null) 41 | { 42 | ClientLog($"There is already a runing client on {ipAdress}::{port}", Color.red); 43 | return; 44 | } 45 | 46 | try 47 | { 48 | //Create new client 49 | m_Client = new TcpClient(); 50 | //Set and enable client 51 | m_Client.Connect(ipAdress, port); 52 | ClientLog($"Client Started on {ipAdress}::{port}", Color.green); 53 | OnClientStarted?.Invoke(); 54 | m_ListenServerMsgsCoroutine = ListenServerMessages(); 55 | StartCoroutine(m_ListenServerMsgsCoroutine); 56 | } 57 | catch (SocketException) 58 | { 59 | ClientLog("Socket Exception: Start Server first", Color.red); 60 | CloseClient(); 61 | } 62 | } 63 | 64 | #region Communication Client<->Server 65 | //Coroutine waiting server messages 66 | private IEnumerator ListenServerMessages() 67 | { 68 | //early out if there is nothing connected 69 | if (!m_Client.Connected) 70 | yield break; 71 | 72 | //Stablish Client NetworkStream information 73 | m_NetStream = m_Client.GetStream(); 74 | 75 | //Start Async Reading from Server and manage the response on MessageReceived function 76 | do 77 | { 78 | ClientLog("Client is listening server msg...", Color.yellow); 79 | //Start Async Reading from Server and manage the response on MessageReceived function 80 | m_NetStream.BeginRead(m_Buffer, 0, m_Buffer.Length, MessageReceived, null); 81 | 82 | if (m_BytesReceived > 0) 83 | { 84 | OnMessageReceived(m_ReceivedMessage); 85 | m_BytesReceived = 0; 86 | } 87 | 88 | yield return new WaitForSeconds(waitingMessagesFrequency); 89 | 90 | } while (m_BytesReceived >= 0 && m_NetStream != null && m_Client != null); 91 | //Communication is over 92 | } 93 | 94 | //What to do with the received message on client 95 | protected virtual void OnMessageReceived(string receivedMessage) 96 | { 97 | ClientLog($"Msg recived on Client: {receivedMessage}", Color.green); 98 | switch (receivedMessage) 99 | { 100 | case "Close": 101 | CloseClient(); 102 | break; 103 | default: 104 | ClientLog($"Received message {receivedMessage}, has no special behaviuor", Color.red); 105 | break; 106 | } 107 | } 108 | 109 | //Send custom string msg to server 110 | protected virtual void SendMessageToServer(string messageToSend) 111 | { 112 | try 113 | { 114 | m_NetStream = m_Client.GetStream(); 115 | } 116 | catch (Exception) 117 | { 118 | ClientLog("Non-Connected Socket exception", Color.red); 119 | CloseClient(); 120 | return; 121 | } 122 | 123 | //early out if there is nothing connected 124 | if (!m_Client.Connected) 125 | { 126 | ClientLog("Socket Error: Stablish Server connection first", Color.red); 127 | return; 128 | } 129 | 130 | //Build message to server 131 | byte[] encodedMessage = Encoding.ASCII.GetBytes(messageToSend); //Encode message as bytes 132 | 133 | //Start Sync Writing 134 | m_NetStream.Write(encodedMessage, 0, encodedMessage.Length); 135 | ClientLog($"Msg sended to Server: {messageToSend}", Color.blue); 136 | 137 | //In case client informs the server that closes the connection 138 | if (messageToSend == "Close") 139 | { 140 | //Stop listening server messages 141 | StopCoroutine(m_ListenServerMsgsCoroutine); 142 | //It has to wait before closing, to ensure Close message is sended 143 | StartCoroutine(DelayedCloseClient(waitingMessagesFrequency + m_DelayedCloseTime)); 144 | } 145 | } 146 | 147 | //AsyncCallback called when "BeginRead" is ended, waiting the message response from server 148 | private void MessageReceived(IAsyncResult result) 149 | { 150 | if (result.IsCompleted && m_Client.Connected) 151 | { 152 | //build message received from server 153 | m_BytesReceived = m_NetStream.EndRead(result); 154 | m_ReceivedMessage = Encoding.ASCII.GetString(m_Buffer, 0, m_BytesReceived); 155 | } 156 | } 157 | #endregion 158 | 159 | #region Close Client 160 | //Close client connection 161 | private void CloseClient() 162 | { 163 | ClientLog("Client Closed", Color.red); 164 | 165 | //Reset everything to defaults 166 | if (m_Client.Connected) 167 | m_Client.Close(); 168 | 169 | if (m_Client != null) 170 | m_Client = null; 171 | 172 | OnClientClosed?.Invoke(); 173 | } 174 | private IEnumerator DelayedCloseClient(float delayedTime) 175 | { 176 | yield return new WaitForSeconds(delayedTime); 177 | CloseClient(); 178 | } 179 | #endregion 180 | 181 | #region ClientLog 182 | //Custom Client Log - With Text Color 183 | protected virtual void ClientLog(string msg, Color color) 184 | { 185 | Debug.Log($"Client: {msg}"); 186 | } 187 | //Custom Client Log - Without Text Color 188 | protected virtual void ClientLog(string msg) 189 | { 190 | Debug.Log($"Client: {msg}"); 191 | } 192 | #endregion 193 | 194 | } -------------------------------------------------------------------------------- /Assets/Scripts/Client.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d93f2ed314ef3354eb55b9200bf57877 3 | timeCreated: 1544011308 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Server.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Net; 4 | using System.Net.Sockets; 5 | using System.Text; 6 | using UnityEngine; 7 | 8 | /// 9 | /// Server class shows how to implement and use TcpListener in Unity. 10 | /// 11 | public class Server : MonoBehaviour 12 | { 13 | #region Public Variables 14 | [Header("Network")] 15 | public string ipAdress = "127.0.0.1"; 16 | public int port = 54010; 17 | [Min(0)] public float waitingMessagesFrequency = 1f; 18 | [Tooltip("0 means time out is disabled")] 19 | [Min(0)] public float receivingTimeOut = 0f; 20 | #endregion 21 | 22 | #region Private m_Variables 23 | private TcpListener m_Server = null; 24 | private TcpClient m_Client = null; 25 | private NetworkStream m_NetStream = null; 26 | private byte[] m_Buffer = new byte[49152]; 27 | private int m_BytesReceived = 0; 28 | private float m_EllapsedTime = 0f; 29 | private bool m_TimeOutReached = false; 30 | //ToDo: Check if I can do the same without this property 31 | [SerializeField] [TextArea] private string m_ReceivedMessage = ""; 32 | protected string ReceivedMessage 33 | { 34 | get { return m_ReceivedMessage; } 35 | set 36 | { 37 | m_ReceivedMessage = value; 38 | OnRecivedMessageChange(); 39 | } 40 | } 41 | private IEnumerator m_ListenClientMsgsCoroutine = null; 42 | 43 | #endregion 44 | 45 | #region Delegate Variables 46 | protected Action OnServerStarted = null; //Delegate triggered when server start 47 | protected Action OnServerClosed = null; //Delegate triggered when server close 48 | protected Action OnClientConnected = null; //Delegate triggered when the server stablish connection with client 49 | protected Action OnClientDisconnected = null; //Delegate triggered when the server stablish connection with client 50 | protected Action OnUnsuccessfulStart = null; //Delegate triggered when the server fails the start 51 | #endregion 52 | 53 | protected virtual void OnRecivedMessageChange() { } 54 | 55 | //Start server and wait for clients 56 | protected virtual void StartServer() 57 | { 58 | try 59 | { 60 | //Set and enable Server 61 | IPAddress ip = IPAddress.Parse(ipAdress); 62 | m_Server = new TcpListener(ip, port); 63 | m_Server.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); 64 | m_Server.Start(); 65 | ServerLog($"Server Started on {ipAdress}::{port}", Color.green); 66 | //Wait for async client connection 67 | m_Server.BeginAcceptTcpClient(ClientConnected, null); 68 | OnServerStarted?.Invoke(); 69 | } 70 | catch (Exception) 71 | { 72 | OnUnsuccessfulStart?.Invoke(); 73 | ServerLog("Socket or Format Exception: Port or IP not available", Color.red); 74 | } 75 | } 76 | 77 | //Check if any client trys to connect 78 | protected virtual void Update() 79 | { 80 | //If some client stablish connection 81 | if (m_Client != null && m_ListenClientMsgsCoroutine == null) 82 | { 83 | //Start Listening Client Messages coroutine 84 | m_ListenClientMsgsCoroutine = ListenClientMessages(); 85 | StartCoroutine(m_ListenClientMsgsCoroutine); 86 | } 87 | } 88 | 89 | //Callback called when "BeginAcceptTcpClient" detects new client connection 90 | private void ClientConnected(IAsyncResult res) 91 | { 92 | //set the client reference 93 | m_Client = m_Server.EndAcceptTcpClient(res); 94 | OnClientConnected?.Invoke(); 95 | } 96 | 97 | #region Communication Server<->Client 98 | //Coroutine waiting client messages while client is connected to the server 99 | private IEnumerator ListenClientMessages() 100 | { 101 | //Restart values in case there are more than one client connections 102 | m_BytesReceived = 0; 103 | m_Buffer = new byte[49152]; 104 | 105 | //Stablish Client NetworkStream information 106 | m_NetStream = m_Client.GetStream(); 107 | m_EllapsedTime = 0f; 108 | m_TimeOutReached = false; 109 | 110 | //While there is a connection with the client, await for messages 111 | do 112 | { 113 | ServerLog("Server is listening client msg...", Color.yellow); 114 | //Start Async Reading from Client and manage the response on MessageReceived function 115 | m_NetStream.BeginRead(m_Buffer, 0, m_Buffer.Length, MessageReceived, m_NetStream); 116 | 117 | //If there is any msg, do something 118 | if (m_BytesReceived > 0) 119 | { 120 | OnMessageReceived(m_ReceivedMessage); 121 | m_BytesReceived = 0; 122 | } 123 | 124 | yield return new WaitForSeconds(waitingMessagesFrequency); 125 | //Check TimeOut 126 | m_EllapsedTime += waitingMessagesFrequency; 127 | if (m_EllapsedTime >= receivingTimeOut && receivingTimeOut != 0) 128 | { 129 | ServerLog("Receiving Messages TimeOut", Color.red); 130 | ServerLog("Remember to close Client!", Color.black); 131 | CloseClientConnection(); 132 | m_TimeOutReached = true; 133 | } 134 | } while ((m_BytesReceived >= 0 && m_NetStream != null && m_Client != null) && (!m_TimeOutReached)); 135 | //Communication is over 136 | } 137 | 138 | //What to do with the received message on server 139 | protected virtual void OnMessageReceived(string receivedMessage) 140 | { 141 | ServerLog($"Msg recived on Server: {receivedMessage}", Color.green); 142 | switch (receivedMessage) 143 | { 144 | case "Close": 145 | //Close client connection 146 | CloseClientConnection(); 147 | break; 148 | default: 149 | ServerLog($"Received message {receivedMessage}, has no special behaviuor", Color.red); 150 | break; 151 | } 152 | } 153 | 154 | //Send custom string msg to client 155 | protected void SendMessageToClient(string messageToSend) 156 | { 157 | //early out if there is nothing connected 158 | if (m_NetStream == null) 159 | { 160 | ServerLog("Socket Error: Start at least one client first", Color.red); 161 | return; 162 | } 163 | 164 | //Build message to client 165 | byte[] encodedMessage = Encoding.ASCII.GetBytes(messageToSend); //Encode message as bytes 166 | 167 | //Start Sync Writing 168 | m_NetStream.Write(encodedMessage, 0, encodedMessage.Length); 169 | ServerLog($"Msg sended to Client: {messageToSend}", Color.blue); 170 | } 171 | 172 | //AsyncCallback called when "BeginRead" is ended, waiting the message response from client 173 | private void MessageReceived(IAsyncResult result) 174 | { 175 | if (result.IsCompleted && m_Client.Connected) 176 | { 177 | //build message received from client 178 | m_BytesReceived = m_NetStream.EndRead(result); //End async reading 179 | ReceivedMessage = Encoding.ASCII.GetString(m_Buffer, 0, m_BytesReceived); //De-encode message as string 180 | } 181 | } 182 | #endregion 183 | 184 | #region Close Server/ClientConnection 185 | //Close client connection and disables the server 186 | protected virtual void CloseServer() 187 | { 188 | ServerLog("Server Closed", Color.red); 189 | //Close client connection 190 | if (m_Client != null) 191 | { 192 | ServerLog("Remember to close Client!", Color.black); 193 | m_NetStream?.Close(); 194 | m_NetStream = null; 195 | m_Client.Close(); 196 | m_Client = null; 197 | OnClientDisconnected?.Invoke(); 198 | } 199 | //Close server connection 200 | if (m_Server != null) 201 | { 202 | m_Server.Stop(); 203 | m_Server = null; 204 | } 205 | 206 | if (m_ListenClientMsgsCoroutine != null) 207 | { 208 | StopCoroutine(m_ListenClientMsgsCoroutine); 209 | m_ListenClientMsgsCoroutine = null; 210 | } 211 | 212 | OnServerClosed?.Invoke(); 213 | } 214 | 215 | //Close connection with the client 216 | protected virtual void CloseClientConnection() 217 | { 218 | ServerLog("Close Connection with Client", Color.red); 219 | //Reset everything to defaults 220 | if (m_ListenClientMsgsCoroutine != null) 221 | { 222 | StopCoroutine(m_ListenClientMsgsCoroutine); 223 | m_ListenClientMsgsCoroutine = null; 224 | } 225 | 226 | m_Client.Close(); 227 | m_Client = null; 228 | 229 | OnClientDisconnected?.Invoke(); 230 | 231 | //Waiting to Accept a new Client 232 | m_Server.BeginAcceptTcpClient(ClientConnected, null); 233 | } 234 | #endregion 235 | 236 | #region ServerLog 237 | //Custom Server Log - With Text Color 238 | protected virtual void ServerLog(string msg, Color color) 239 | { 240 | Debug.Log($"Server: {msg}"); 241 | } 242 | //Custom Server Log - Without Text Color 243 | protected virtual void ServerLog(string msg) 244 | { 245 | Debug.Log($"Server: {msg}"); 246 | } 247 | #endregion 248 | 249 | } -------------------------------------------------------------------------------- /Assets/Scripts/Server.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80f16ff733833af408de5a338ce97b78 3 | timeCreated: 1544011308 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Eric 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Thu Sep 19 12:08:09 2019 3 | 4 | Packages were changed. 5 | Update Mode: resetToDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.analytics@3.3.2 9 | com.unity.purchasing@2.0.6 10 | com.unity.ads@2.0.8 11 | com.unity.textmeshpro@2.0.0 12 | com.unity.package-manager-ui@2.1.2 13 | com.unity.collab-proxy@1.2.16 14 | com.unity.timeline@1.0.0 15 | com.unity.modules.ai@1.0.0 16 | com.unity.modules.animation@1.0.0 17 | com.unity.modules.assetbundle@1.0.0 18 | com.unity.modules.audio@1.0.0 19 | com.unity.modules.cloth@1.0.0 20 | com.unity.modules.director@1.0.0 21 | com.unity.modules.imageconversion@1.0.0 22 | com.unity.modules.imgui@1.0.0 23 | com.unity.modules.jsonserialize@1.0.0 24 | com.unity.modules.particlesystem@1.0.0 25 | com.unity.modules.physics@1.0.0 26 | com.unity.modules.physics2d@1.0.0 27 | com.unity.modules.screencapture@1.0.0 28 | com.unity.modules.terrain@1.0.0 29 | com.unity.modules.terrainphysics@1.0.0 30 | com.unity.modules.tilemap@1.0.0 31 | com.unity.modules.ui@1.0.0 32 | com.unity.modules.uielements@1.0.0 33 | com.unity.modules.umbra@1.0.0 34 | com.unity.modules.unityanalytics@1.0.0 35 | com.unity.modules.unitywebrequest@1.0.0 36 | com.unity.modules.unitywebrequestassetbundle@1.0.0 37 | com.unity.modules.unitywebrequestaudio@1.0.0 38 | com.unity.modules.unitywebrequesttexture@1.0.0 39 | com.unity.modules.unitywebrequestwww@1.0.0 40 | com.unity.modules.vehicles@1.0.0 41 | com.unity.modules.video@1.0.0 42 | com.unity.modules.vr@1.0.0 43 | com.unity.modules.wind@1.0.0 44 | com.unity.modules.xr@1.0.0 45 | 46 | === Sat Jun 19 10:55:26 2021 47 | 48 | Packages were changed. 49 | Update Mode: updateDependencies 50 | 51 | The following packages were added: 52 | com.unity.2d.sprite@1.0.0 53 | com.unity.2d.tilemap@1.0.0 54 | com.unity.ide.rider@1.1.4 55 | com.unity.ide.vscode@1.2.0 56 | com.unity.modules.androidjni@1.0.0 57 | com.unity.test-framework@1.1.13 58 | com.unity.ugui@1.0.0 59 | The following packages were updated: 60 | com.unity.ads from version 2.0.8 to 3.4.4 61 | com.unity.analytics from version 3.3.2 to 3.3.5 62 | com.unity.textmeshpro from version 2.0.0 to 2.0.1 63 | com.unity.timeline from version 1.0.0 to 1.2.6 64 | The following packages were removed: 65 | com.unity.package-manager-ui@2.1.2 66 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.ads": "3.4.4", 6 | "com.unity.analytics": "3.3.5", 7 | "com.unity.collab-proxy": "1.2.16", 8 | "com.unity.ide.rider": "1.1.4", 9 | "com.unity.ide.vscode": "1.2.0", 10 | "com.unity.purchasing": "2.0.6", 11 | "com.unity.test-framework": "1.1.13", 12 | "com.unity.textmeshpro": "2.0.1", 13 | "com.unity.timeline": "1.2.6", 14 | "com.unity.ugui": "1.0.0", 15 | "com.unity.modules.ai": "1.0.0", 16 | "com.unity.modules.androidjni": "1.0.0", 17 | "com.unity.modules.animation": "1.0.0", 18 | "com.unity.modules.assetbundle": "1.0.0", 19 | "com.unity.modules.audio": "1.0.0", 20 | "com.unity.modules.cloth": "1.0.0", 21 | "com.unity.modules.director": "1.0.0", 22 | "com.unity.modules.imageconversion": "1.0.0", 23 | "com.unity.modules.imgui": "1.0.0", 24 | "com.unity.modules.jsonserialize": "1.0.0", 25 | "com.unity.modules.particlesystem": "1.0.0", 26 | "com.unity.modules.physics": "1.0.0", 27 | "com.unity.modules.physics2d": "1.0.0", 28 | "com.unity.modules.screencapture": "1.0.0", 29 | "com.unity.modules.terrain": "1.0.0", 30 | "com.unity.modules.terrainphysics": "1.0.0", 31 | "com.unity.modules.tilemap": "1.0.0", 32 | "com.unity.modules.ui": "1.0.0", 33 | "com.unity.modules.uielements": "1.0.0", 34 | "com.unity.modules.umbra": "1.0.0", 35 | "com.unity.modules.unityanalytics": "1.0.0", 36 | "com.unity.modules.unitywebrequest": "1.0.0", 37 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 38 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 39 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 40 | "com.unity.modules.unitywebrequestwww": "1.0.0", 41 | "com.unity.modules.vehicles": "1.0.0", 42 | "com.unity.modules.video": "1.0.0", 43 | "com.unity.modules.vr": "1.0.0", 44 | "com.unity.modules.wind": "1.0.0", 45 | "com.unity.modules.xr": "1.0.0" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 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 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 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_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 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: 8 | - enabled: 1 9 | path: Assets/Main_SimpleTCP.unity 10 | guid: bcb74d7ddf2ee3e4cb480e9ea2d850db 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 0 10 | m_SpritePackerMode: 0 11 | m_SpritePackerPaddingPower: 1 12 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 13 | m_ProjectGenerationRootNamespace: 14 | m_UserGeneratedProjectSuffix: 15 | m_CollabEditorSettings: 16 | inProgressEnabled: 1 17 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 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: 16000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} 40 | - {fileID: 17000, 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 65 | m_LogWhenShaderIsCompiled: 0 66 | m_AllowEnlightenSupportForUpgradedProject: 1 67 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 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 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 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 | m_SettingNames: 89 | - Humanoid 90 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 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: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 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_AlwaysShowColliders: 0 28 | m_ShowColliderSleep: 1 29 | m_ShowColliderContacts: 0 30 | m_ShowColliderAABB: 0 31 | m_ContactArrowScale: 0.2 32 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 33 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 34 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 35 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 36 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 37 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 20 7 | productGUID: b02b6f56adcd3be4598d7684ea60352f 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: Eric 16 | productName: SimpleTCP 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosUseCustomAppBackgroundBehavior: 0 56 | iosAllowHTTPDownload: 1 57 | allowedAutorotateToPortrait: 1 58 | allowedAutorotateToPortraitUpsideDown: 1 59 | allowedAutorotateToLandscapeRight: 1 60 | allowedAutorotateToLandscapeLeft: 1 61 | useOSAutorotation: 1 62 | use32BitDisplayBuffer: 1 63 | preserveFramebufferAlpha: 0 64 | disableDepthAndStencilBuffers: 0 65 | androidStartInFullscreen: 1 66 | androidRenderOutsideSafeArea: 1 67 | androidUseSwappy: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 0 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | useFlipModelSwapchain: 1 83 | resizableWindow: 1 84 | useMacAppStoreValidation: 0 85 | macAppStoreCategory: public.app-category.games 86 | gpuSkinning: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | fullscreenMode: 3 95 | xboxSpeechDB: 0 96 | xboxEnableHeadOrientation: 0 97 | xboxEnableGuest: 0 98 | xboxEnablePIXSampling: 0 99 | metalFramebufferOnly: 0 100 | xboxOneResolution: 0 101 | xboxOneSResolution: 0 102 | xboxOneXResolution: 3 103 | xboxOneMonoLoggingLevel: 0 104 | xboxOneLoggingLevel: 1 105 | xboxOneDisableEsram: 0 106 | xboxOneEnableTypeOptimization: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 1048576 109 | switchQueueControlMemory: 16384 110 | switchQueueComputeMemory: 262144 111 | switchNVNShaderPoolsGranularity: 33554432 112 | switchNVNDefaultPoolsGranularity: 16777216 113 | switchNVNOtherPoolsGranularity: 16777216 114 | vulkanNumSwapchainBuffers: 3 115 | vulkanEnableSetSRGBWrite: 0 116 | m_SupportedAspectRatios: 117 | 4:3: 1 118 | 5:4: 1 119 | 16:10: 1 120 | 16:9: 1 121 | Others: 1 122 | bundleVersion: 1.0 123 | preloadedAssets: [] 124 | metroInputSource: 0 125 | wsaTransparentSwapchain: 0 126 | m_HolographicPauseOnTrackingLoss: 1 127 | xboxOneDisableKinectGpuReservation: 0 128 | xboxOneEnable7thCore: 0 129 | vrSettings: 130 | cardboard: 131 | depthFormat: 0 132 | enableTransitionView: 0 133 | daydream: 134 | depthFormat: 0 135 | useSustainedPerformanceMode: 0 136 | enableVideoLayer: 0 137 | useProtectedVideoMemory: 0 138 | minimumSupportedHeadTracking: 0 139 | maximumSupportedHeadTracking: 1 140 | hololens: 141 | depthFormat: 1 142 | depthBufferSharingEnabled: 1 143 | lumin: 144 | depthFormat: 0 145 | frameTiming: 2 146 | enableGLCache: 0 147 | glCacheMaxBlobSize: 524288 148 | glCacheMaxFileSize: 8388608 149 | oculus: 150 | sharedDepthBuffer: 1 151 | dashSupport: 1 152 | lowOverheadMode: 0 153 | protectedContext: 0 154 | v2Signing: 1 155 | enable360StereoCapture: 0 156 | isWsaHolographicRemotingEnabled: 0 157 | enableFrameTimingStats: 0 158 | useHDRDisplay: 0 159 | D3DHDRBitDepth: 0 160 | m_ColorGamuts: 00000000 161 | targetPixelDensity: 30 162 | resolutionScalingMode: 0 163 | androidSupportedAspectRatio: 1 164 | androidMaxAspectRatio: 2.1 165 | applicationIdentifier: {} 166 | buildNumber: {} 167 | AndroidBundleVersionCode: 1 168 | AndroidMinSdkVersion: 19 169 | AndroidTargetSdkVersion: 0 170 | AndroidPreferredInstallLocation: 1 171 | aotOptions: 172 | stripEngineCode: 1 173 | iPhoneStrippingLevel: 0 174 | iPhoneScriptCallOptimization: 0 175 | ForceInternetPermission: 0 176 | ForceSDCardPermission: 0 177 | CreateWallpaper: 0 178 | APKExpansionFiles: 0 179 | keepLoadedShadersAlive: 0 180 | StripUnusedMeshComponents: 0 181 | VertexChannelCompressionMask: 214 182 | iPhoneSdkVersion: 988 183 | iOSTargetOSVersionString: 10.0 184 | tvOSSdkVersion: 0 185 | tvOSRequireExtendedGameController: 0 186 | tvOSTargetOSVersionString: 10.0 187 | uIPrerenderedIcon: 0 188 | uIRequiresPersistentWiFi: 0 189 | uIRequiresFullScreen: 1 190 | uIStatusBarHidden: 1 191 | uIExitOnSuspend: 0 192 | uIStatusBarStyle: 0 193 | iPhoneSplashScreen: {fileID: 0} 194 | iPhoneHighResSplashScreen: {fileID: 0} 195 | iPhoneTallHighResSplashScreen: {fileID: 0} 196 | iPhone47inSplashScreen: {fileID: 0} 197 | iPhone55inPortraitSplashScreen: {fileID: 0} 198 | iPhone55inLandscapeSplashScreen: {fileID: 0} 199 | iPhone58inPortraitSplashScreen: {fileID: 0} 200 | iPhone58inLandscapeSplashScreen: {fileID: 0} 201 | iPadPortraitSplashScreen: {fileID: 0} 202 | iPadHighResPortraitSplashScreen: {fileID: 0} 203 | iPadLandscapeSplashScreen: {fileID: 0} 204 | iPadHighResLandscapeSplashScreen: {fileID: 0} 205 | iPhone65inPortraitSplashScreen: {fileID: 0} 206 | iPhone65inLandscapeSplashScreen: {fileID: 0} 207 | iPhone61inPortraitSplashScreen: {fileID: 0} 208 | iPhone61inLandscapeSplashScreen: {fileID: 0} 209 | appleTVSplashScreen: {fileID: 0} 210 | appleTVSplashScreen2x: {fileID: 0} 211 | tvOSSmallIconLayers: [] 212 | tvOSSmallIconLayers2x: [] 213 | tvOSLargeIconLayers: [] 214 | tvOSLargeIconLayers2x: [] 215 | tvOSTopShelfImageLayers: [] 216 | tvOSTopShelfImageLayers2x: [] 217 | tvOSTopShelfImageWideLayers: [] 218 | tvOSTopShelfImageWideLayers2x: [] 219 | iOSLaunchScreenType: 0 220 | iOSLaunchScreenPortrait: {fileID: 0} 221 | iOSLaunchScreenLandscape: {fileID: 0} 222 | iOSLaunchScreenBackgroundColor: 223 | serializedVersion: 2 224 | rgba: 0 225 | iOSLaunchScreenFillPct: 100 226 | iOSLaunchScreenSize: 100 227 | iOSLaunchScreenCustomXibPath: 228 | iOSLaunchScreeniPadType: 0 229 | iOSLaunchScreeniPadImage: {fileID: 0} 230 | iOSLaunchScreeniPadBackgroundColor: 231 | serializedVersion: 2 232 | rgba: 0 233 | iOSLaunchScreeniPadFillPct: 100 234 | iOSLaunchScreeniPadSize: 100 235 | iOSLaunchScreeniPadCustomXibPath: 236 | iOSUseLaunchScreenStoryboard: 0 237 | iOSLaunchScreenCustomStoryboardPath: 238 | iOSDeviceRequirements: [] 239 | iOSURLSchemes: [] 240 | iOSBackgroundModes: 0 241 | iOSMetalForceHardShadows: 0 242 | metalEditorSupport: 1 243 | metalAPIValidation: 1 244 | iOSRenderExtraFrameOnPause: 0 245 | appleDeveloperTeamID: 246 | iOSManualSigningProvisioningProfileID: 247 | tvOSManualSigningProvisioningProfileID: 248 | iOSManualSigningProvisioningProfileType: 0 249 | tvOSManualSigningProvisioningProfileType: 0 250 | appleEnableAutomaticSigning: 0 251 | iOSRequireARKit: 0 252 | iOSAutomaticallyDetectAndAddCapabilities: 1 253 | appleEnableProMotion: 0 254 | clonedFromGUID: 00000000000000000000000000000000 255 | templatePackageId: 256 | templateDefaultScene: 257 | AndroidTargetArchitectures: 5 258 | AndroidSplashScreenScale: 0 259 | androidSplashScreen: {fileID: 0} 260 | AndroidKeystoreName: '{inproject}: ' 261 | AndroidKeyaliasName: 262 | AndroidBuildApkPerCpuArchitecture: 0 263 | AndroidTVCompatibility: 1 264 | AndroidIsGame: 1 265 | AndroidEnableTango: 0 266 | androidEnableBanner: 1 267 | androidUseLowAccuracyLocation: 0 268 | androidUseCustomKeystore: 0 269 | m_AndroidBanners: 270 | - width: 320 271 | height: 180 272 | banner: {fileID: 0} 273 | androidGamepadSupportLevel: 0 274 | AndroidValidateAppBundleSize: 1 275 | AndroidAppBundleSizeToValidate: 150 276 | m_BuildTargetIcons: [] 277 | m_BuildTargetPlatformIcons: [] 278 | m_BuildTargetBatching: [] 279 | m_BuildTargetGraphicsJobs: 280 | - m_BuildTarget: MacStandaloneSupport 281 | m_GraphicsJobs: 0 282 | - m_BuildTarget: Switch 283 | m_GraphicsJobs: 0 284 | - m_BuildTarget: MetroSupport 285 | m_GraphicsJobs: 0 286 | - m_BuildTarget: AppleTVSupport 287 | m_GraphicsJobs: 0 288 | - m_BuildTarget: BJMSupport 289 | m_GraphicsJobs: 0 290 | - m_BuildTarget: LinuxStandaloneSupport 291 | m_GraphicsJobs: 0 292 | - m_BuildTarget: PS4Player 293 | m_GraphicsJobs: 0 294 | - m_BuildTarget: iOSSupport 295 | m_GraphicsJobs: 0 296 | - m_BuildTarget: WindowsStandaloneSupport 297 | m_GraphicsJobs: 0 298 | - m_BuildTarget: XboxOnePlayer 299 | m_GraphicsJobs: 0 300 | - m_BuildTarget: LuminSupport 301 | m_GraphicsJobs: 0 302 | - m_BuildTarget: AndroidPlayer 303 | m_GraphicsJobs: 0 304 | - m_BuildTarget: WebGLSupport 305 | m_GraphicsJobs: 0 306 | m_BuildTargetGraphicsJobMode: 307 | - m_BuildTarget: PS4Player 308 | m_GraphicsJobMode: 0 309 | - m_BuildTarget: XboxOnePlayer 310 | m_GraphicsJobMode: 0 311 | m_BuildTargetGraphicsAPIs: [] 312 | m_BuildTargetVRSettings: [] 313 | openGLRequireES31: 0 314 | openGLRequireES31AEP: 0 315 | openGLRequireES32: 0 316 | m_TemplateCustomTags: {} 317 | mobileMTRendering: 318 | iPhone: 1 319 | tvOS: 1 320 | m_BuildTargetGroupLightmapEncodingQuality: 321 | - m_BuildTarget: Standalone 322 | m_EncodingQuality: 1 323 | - m_BuildTarget: XboxOne 324 | m_EncodingQuality: 1 325 | - m_BuildTarget: PS4 326 | m_EncodingQuality: 1 327 | m_BuildTargetGroupLightmapSettings: [] 328 | playModeTestRunnerEnabled: 0 329 | runPlayModeTestAsEditModeTest: 0 330 | actionOnDotNetUnhandledException: 1 331 | enableInternalProfiler: 0 332 | logObjCUncaughtExceptions: 1 333 | enableCrashReportAPI: 0 334 | cameraUsageDescription: 335 | locationUsageDescription: 336 | microphoneUsageDescription: 337 | switchNetLibKey: 338 | switchSocketMemoryPoolSize: 6144 339 | switchSocketAllocatorPoolSize: 128 340 | switchSocketConcurrencyLimit: 14 341 | switchScreenResolutionBehavior: 2 342 | switchUseCPUProfiler: 0 343 | switchApplicationID: 0x01004b9000490000 344 | switchNSODependencies: 345 | switchTitleNames_0: 346 | switchTitleNames_1: 347 | switchTitleNames_2: 348 | switchTitleNames_3: 349 | switchTitleNames_4: 350 | switchTitleNames_5: 351 | switchTitleNames_6: 352 | switchTitleNames_7: 353 | switchTitleNames_8: 354 | switchTitleNames_9: 355 | switchTitleNames_10: 356 | switchTitleNames_11: 357 | switchTitleNames_12: 358 | switchTitleNames_13: 359 | switchTitleNames_14: 360 | switchPublisherNames_0: 361 | switchPublisherNames_1: 362 | switchPublisherNames_2: 363 | switchPublisherNames_3: 364 | switchPublisherNames_4: 365 | switchPublisherNames_5: 366 | switchPublisherNames_6: 367 | switchPublisherNames_7: 368 | switchPublisherNames_8: 369 | switchPublisherNames_9: 370 | switchPublisherNames_10: 371 | switchPublisherNames_11: 372 | switchPublisherNames_12: 373 | switchPublisherNames_13: 374 | switchPublisherNames_14: 375 | switchIcons_0: {fileID: 0} 376 | switchIcons_1: {fileID: 0} 377 | switchIcons_2: {fileID: 0} 378 | switchIcons_3: {fileID: 0} 379 | switchIcons_4: {fileID: 0} 380 | switchIcons_5: {fileID: 0} 381 | switchIcons_6: {fileID: 0} 382 | switchIcons_7: {fileID: 0} 383 | switchIcons_8: {fileID: 0} 384 | switchIcons_9: {fileID: 0} 385 | switchIcons_10: {fileID: 0} 386 | switchIcons_11: {fileID: 0} 387 | switchIcons_12: {fileID: 0} 388 | switchIcons_13: {fileID: 0} 389 | switchIcons_14: {fileID: 0} 390 | switchSmallIcons_0: {fileID: 0} 391 | switchSmallIcons_1: {fileID: 0} 392 | switchSmallIcons_2: {fileID: 0} 393 | switchSmallIcons_3: {fileID: 0} 394 | switchSmallIcons_4: {fileID: 0} 395 | switchSmallIcons_5: {fileID: 0} 396 | switchSmallIcons_6: {fileID: 0} 397 | switchSmallIcons_7: {fileID: 0} 398 | switchSmallIcons_8: {fileID: 0} 399 | switchSmallIcons_9: {fileID: 0} 400 | switchSmallIcons_10: {fileID: 0} 401 | switchSmallIcons_11: {fileID: 0} 402 | switchSmallIcons_12: {fileID: 0} 403 | switchSmallIcons_13: {fileID: 0} 404 | switchSmallIcons_14: {fileID: 0} 405 | switchManualHTML: 406 | switchAccessibleURLs: 407 | switchLegalInformation: 408 | switchMainThreadStackSize: 1048576 409 | switchPresenceGroupId: 410 | switchLogoHandling: 0 411 | switchReleaseVersion: 0 412 | switchDisplayVersion: 1.0.0 413 | switchStartupUserAccount: 0 414 | switchTouchScreenUsage: 0 415 | switchSupportedLanguagesMask: 0 416 | switchLogoType: 0 417 | switchApplicationErrorCodeCategory: 418 | switchUserAccountSaveDataSize: 0 419 | switchUserAccountSaveDataJournalSize: 0 420 | switchApplicationAttribute: 0 421 | switchCardSpecSize: -1 422 | switchCardSpecClock: -1 423 | switchRatingsMask: 0 424 | switchRatingsInt_0: 0 425 | switchRatingsInt_1: 0 426 | switchRatingsInt_2: 0 427 | switchRatingsInt_3: 0 428 | switchRatingsInt_4: 0 429 | switchRatingsInt_5: 0 430 | switchRatingsInt_6: 0 431 | switchRatingsInt_7: 0 432 | switchRatingsInt_8: 0 433 | switchRatingsInt_9: 0 434 | switchRatingsInt_10: 0 435 | switchRatingsInt_11: 0 436 | switchRatingsInt_12: 0 437 | switchLocalCommunicationIds_0: 438 | switchLocalCommunicationIds_1: 439 | switchLocalCommunicationIds_2: 440 | switchLocalCommunicationIds_3: 441 | switchLocalCommunicationIds_4: 442 | switchLocalCommunicationIds_5: 443 | switchLocalCommunicationIds_6: 444 | switchLocalCommunicationIds_7: 445 | switchParentalControl: 0 446 | switchAllowsScreenshot: 1 447 | switchAllowsVideoCapturing: 1 448 | switchAllowsRuntimeAddOnContentInstall: 0 449 | switchDataLossConfirmation: 0 450 | switchUserAccountLockEnabled: 0 451 | switchSystemResourceMemory: 16777216 452 | switchSupportedNpadStyles: 3 453 | switchNativeFsCacheSize: 32 454 | switchIsHoldTypeHorizontal: 0 455 | switchSupportedNpadCount: 8 456 | switchSocketConfigEnabled: 0 457 | switchTcpInitialSendBufferSize: 32 458 | switchTcpInitialReceiveBufferSize: 64 459 | switchTcpAutoSendBufferSizeMax: 256 460 | switchTcpAutoReceiveBufferSizeMax: 256 461 | switchUdpSendBufferSize: 9 462 | switchUdpReceiveBufferSize: 42 463 | switchSocketBufferEfficiency: 4 464 | switchSocketInitializeEnabled: 1 465 | switchNetworkInterfaceManagerInitializeEnabled: 1 466 | switchPlayerConnectionEnabled: 1 467 | ps4NPAgeRating: 12 468 | ps4NPTitleSecret: 469 | ps4NPTrophyPackPath: 470 | ps4ParentalLevel: 11 471 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 472 | ps4Category: 0 473 | ps4MasterVersion: 01.00 474 | ps4AppVersion: 01.00 475 | ps4AppType: 0 476 | ps4ParamSfxPath: 477 | ps4VideoOutPixelFormat: 0 478 | ps4VideoOutInitialWidth: 1920 479 | ps4VideoOutBaseModeInitialWidth: 1920 480 | ps4VideoOutReprojectionRate: 120 481 | ps4PronunciationXMLPath: 482 | ps4PronunciationSIGPath: 483 | ps4BackgroundImagePath: 484 | ps4StartupImagePath: 485 | ps4StartupImagesFolder: 486 | ps4IconImagesFolder: 487 | ps4SaveDataImagePath: 488 | ps4SdkOverride: 489 | ps4BGMPath: 490 | ps4ShareFilePath: 491 | ps4ShareOverlayImagePath: 492 | ps4PrivacyGuardImagePath: 493 | ps4NPtitleDatPath: 494 | ps4RemotePlayKeyAssignment: -1 495 | ps4RemotePlayKeyMappingDir: 496 | ps4PlayTogetherPlayerCount: 0 497 | ps4EnterButtonAssignment: 1 498 | ps4ApplicationParam1: 0 499 | ps4ApplicationParam2: 0 500 | ps4ApplicationParam3: 0 501 | ps4ApplicationParam4: 0 502 | ps4DownloadDataSize: 0 503 | ps4GarlicHeapSize: 2048 504 | ps4ProGarlicHeapSize: 2560 505 | playerPrefsMaxSize: 32768 506 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 507 | ps4pnSessions: 1 508 | ps4pnPresence: 1 509 | ps4pnFriends: 1 510 | ps4pnGameCustomData: 1 511 | playerPrefsSupport: 0 512 | enableApplicationExit: 0 513 | resetTempFolder: 1 514 | restrictedAudioUsageRights: 0 515 | ps4UseResolutionFallback: 0 516 | ps4ReprojectionSupport: 0 517 | ps4UseAudio3dBackend: 0 518 | ps4UseLowGarlicFragmentationMode: 1 519 | ps4SocialScreenEnabled: 0 520 | ps4ScriptOptimizationLevel: 0 521 | ps4Audio3dVirtualSpeakerCount: 14 522 | ps4attribCpuUsage: 0 523 | ps4PatchPkgPath: 524 | ps4PatchLatestPkgPath: 525 | ps4PatchChangeinfoPath: 526 | ps4PatchDayOne: 0 527 | ps4attribUserManagement: 0 528 | ps4attribMoveSupport: 0 529 | ps4attrib3DSupport: 0 530 | ps4attribShareSupport: 0 531 | ps4attribExclusiveVR: 0 532 | ps4disableAutoHideSplash: 0 533 | ps4videoRecordingFeaturesUsed: 0 534 | ps4contentSearchFeaturesUsed: 0 535 | ps4attribEyeToEyeDistanceSettingVR: 0 536 | ps4IncludedModules: [] 537 | ps4attribVROutputEnabled: 0 538 | monoEnv: 539 | splashScreenBackgroundSourceLandscape: {fileID: 0} 540 | splashScreenBackgroundSourcePortrait: {fileID: 0} 541 | blurSplashScreenBackground: 1 542 | spritePackerPolicy: 543 | webGLMemorySize: 256 544 | webGLExceptionSupport: 1 545 | webGLNameFilesAsHashes: 0 546 | webGLDataCaching: 0 547 | webGLDebugSymbols: 0 548 | webGLEmscriptenArgs: 549 | webGLModulesDirectory: 550 | webGLTemplate: APPLICATION:Default 551 | webGLAnalyzeBuildSize: 0 552 | webGLUseEmbeddedResources: 0 553 | webGLCompressionFormat: 1 554 | webGLLinkerTarget: 1 555 | webGLThreadsSupport: 0 556 | webGLWasmStreaming: 0 557 | scriptingDefineSymbols: {} 558 | platformArchitecture: {} 559 | scriptingBackend: {} 560 | il2cppCompilerConfiguration: {} 561 | managedStrippingLevel: {} 562 | incrementalIl2cppBuild: {} 563 | allowUnsafeCode: 0 564 | additionalIl2CppArgs: 565 | scriptingRuntimeVersion: 1 566 | gcIncremental: 0 567 | gcWBarrierValidation: 0 568 | apiCompatibilityLevelPerPlatform: {} 569 | m_RenderingPath: 1 570 | m_MobileRenderingPath: 1 571 | metroPackageName: SimpleTCP 572 | metroPackageVersion: 573 | metroCertificatePath: 574 | metroCertificatePassword: 575 | metroCertificateSubject: 576 | metroCertificateIssuer: 577 | metroCertificateNotAfter: 0000000000000000 578 | metroApplicationDescription: SimpleTCP 579 | wsaImages: {} 580 | metroTileShortName: 581 | metroTileShowName: 0 582 | metroMediumTileShowName: 0 583 | metroLargeTileShowName: 0 584 | metroWideTileShowName: 0 585 | metroSupportStreamingInstall: 0 586 | metroLastRequiredScene: 0 587 | metroDefaultTileSize: 1 588 | metroTileForegroundText: 2 589 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 590 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 591 | a: 1} 592 | metroSplashScreenUseBackgroundColor: 0 593 | platformCapabilities: {} 594 | metroTargetDeviceFamilies: {} 595 | metroFTAName: 596 | metroFTAFileTypes: [] 597 | metroProtocolName: 598 | XboxOneProductId: 599 | XboxOneUpdateKey: 600 | XboxOneSandboxId: 601 | XboxOneContentId: 602 | XboxOneTitleId: 603 | XboxOneSCId: 604 | XboxOneGameOsOverridePath: 605 | XboxOnePackagingOverridePath: 606 | XboxOneAppManifestOverridePath: 607 | XboxOneVersion: 1.0.0.0 608 | XboxOnePackageEncryption: 0 609 | XboxOnePackageUpdateGranularity: 2 610 | XboxOneDescription: 611 | XboxOneLanguage: 612 | - enus 613 | XboxOneCapability: [] 614 | XboxOneGameRating: {} 615 | XboxOneIsContentPackage: 0 616 | XboxOneEnableGPUVariability: 0 617 | XboxOneSockets: {} 618 | XboxOneSplashScreen: {fileID: 0} 619 | XboxOneAllowedProductIds: [] 620 | XboxOnePersistentLocalStorageSize: 0 621 | XboxOneXTitleMemory: 8 622 | XboxOneOverrideIdentityName: 623 | XboxOneOverrideIdentityPublisher: 624 | vrEditorSettings: 625 | daydream: 626 | daydreamIconForeground: {fileID: 0} 627 | daydreamIconBackground: {fileID: 0} 628 | cloudServicesEnabled: {} 629 | luminIcon: 630 | m_Name: 631 | m_ModelFolderPath: 632 | m_PortalFolderPath: 633 | luminCert: 634 | m_CertPath: 635 | m_SignPackage: 1 636 | luminIsChannelApp: 0 637 | luminVersion: 638 | m_VersionCode: 1 639 | m_VersionName: 640 | apiCompatibilityLevel: 6 641 | cloudProjectId: 642 | framebufferDepthMemorylessMode: 0 643 | projectName: 644 | organizationId: 645 | cloudEnabled: 0 646 | enableNativePlatformBackendsForNewInputSystem: 0 647 | disableOldInputManagerSupport: 0 648 | legacyClampBlendShapeWeights: 1 649 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.3.13f1 2 | m_EditorVersionWithRevision: 2019.3.13f1 (d4ddf0d95db9) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 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 | Samsung TV: 2 185 | Standalone: 5 186 | Tizen: 2 187 | Web: 5 188 | WebGL: 3 189 | WiiU: 5 190 | Windows Store Apps: 5 191 | XboxOne: 5 192 | iPhone: 2 193 | tvOS: 2 194 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 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 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 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 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 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_Enabled: 0 14 | m_CaptureEditorExceptions: 1 15 | UnityPurchasingSettings: 16 | m_Enabled: 0 17 | m_TestMode: 0 18 | UnityAnalyticsSettings: 19 | m_Enabled: 0 20 | m_InitializeOnStartup: 1 21 | m_TestMode: 0 22 | m_TestEventUrl: 23 | m_TestConfigUrl: 24 | UnityAdsSettings: 25 | m_Enabled: 0 26 | m_InitializeOnStartup: 1 27 | m_TestMode: 0 28 | m_EnabledPlatforms: 4294967295 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SimpleUnityTCP 🖧 2 | *Created by Eric Batlle Clavero* 3 | 4 | 5 | A simple **demo-project** to show how **TCP** communication works on **Unity** environment, builded with **C#** and using [System.Net.Sockets](https://docs.microsoft.com/es-es/dotnet/api/system.net.sockets?view=netframework-4.7.2). 6 | 7 | The main porpouse of this repo is to show the TCP communication on runtime, but also to provide a pretty commented and clear code so everyone else that wants to implement that kind of communication will be able without wasting a lot of time. 8 | 9 | ## Video-Example 📲 10 | 11 |

12 | example_app gif 13 |

14 | 15 | ## Donations are appreciated! 💸 16 | *Remember that are many ways to say thank you.* 17 | 18 | If this repository has been helpful remember to star it and consider buying me a coffee! 😀 19 |

20 | Buy Me A Coffee 21 |

22 | 23 | If you like my general work and contributions consider [sponsoring me on Github](https://github.com/sponsors/EricBatlle). 24 | 25 | But if you just want to donate straightforward, I also have [PayPal.me](https://paypal.me/EricBatlleClavero?locale.x=es_ES). 26 | 27 | ## How to Use 💻 28 | If you only want to see the app working, just run the ``SimpleTCP.exe`` which is located on the ``build`` directory. 29 | 30 | If you want to open the project, you will need to have **Unity** installed with the **version 2017 or higher**. 31 | 32 | If you only want to scratch the code, either inside the unity project or simply dragging the **.cs** classes on your editor, you have to watch on to this classes, which are located on ``Assets\Scripts``: 33 | 34 | * ``Server.cs`` 35 | * ``Client.cs`` 36 | 37 | ## More Explanations 📡 38 | **Note:** Unity do not allow the *save-use* of **Multi-Threading**, so the application is using **Co-routines** instead. 39 | 40 | The stablished communication and workflow stablished right now follows the next order: 41 | 42 | * **Start the Server** and let it waiting for client connections. 43 | * **Start the Client** and connect it to the server. 44 | * **Server/Client waits** for client/server messages... 45 | * **Client/Server sends** any type of message to the server/client. 46 | * **Server/Client sends** recives the message from the client/server. 47 | * **Server/Client waits** for new client/server messages... 48 | 49 | * **In Case Client sends "Close" to Server** 50 | * **Client sends "Close" to Server**, and waits a timeOut to disconnect from it. 51 | * **Server recives** that *Close* message and **closes the connection** with the client. 52 | * **Server** waits for new incoming client connections. 53 | 54 | * **Server shuts down** (Optional) 55 | 56 | Keep in mind that this "Close" system is not the typical four-way handshake used in TCP, but it's builded like this to keep it simple and understandable. 57 | You can learn more about TCP Connection termination [here](https://en.wikipedia.org/wiki/Transmission_Control_Protocol#:~:text=The%20connection%20termination%20phase%20uses,end%20acknowledges%20with%20an%20ACK.). -------------------------------------------------------------------------------- /example_app.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EricBatlle/SimpleUnityTCP/d62613d8e5faa4e3598ef188e443b175deaa93b6/example_app.gif --------------------------------------------------------------------------------