├── SocketClient
├── ProjectSettings
│ ├── ProjectVersion.txt
│ ├── ClusterInputManager.asset
│ ├── PresetManager.asset
│ ├── XRSettings.asset
│ ├── TimeManager.asset
│ ├── EditorBuildSettings.asset
│ ├── VFXManager.asset
│ ├── AudioManager.asset
│ ├── TagManager.asset
│ ├── UnityConnectSettings.asset
│ ├── EditorSettings.asset
│ ├── DynamicsManager.asset
│ ├── NavMeshAreas.asset
│ ├── Physics2DSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── QualitySettings.asset
│ └── ProjectSettings.asset
└── Assets
│ ├── Scenes
│ ├── SampleScene.unity.meta
│ └── SampleScene.unity
│ ├── Scenes.meta
│ ├── Scripts.meta
│ └── Scripts
│ ├── Socket.meta
│ ├── Socket
│ ├── SocketEvent.cs
│ ├── DataBuffer.cs.meta
│ ├── SocketEvent.cs.meta
│ ├── SocketClient.cs.meta
│ ├── SocketDataPack.cs.meta
│ ├── DataBuffer.cs
│ ├── SocketDataPack.cs
│ └── SocketClient.cs
│ ├── Main.cs.meta
│ └── Main.cs
├── SocketServer
├── ProjectSettings
│ ├── ProjectVersion.txt
│ ├── ClusterInputManager.asset
│ ├── PresetManager.asset
│ ├── XRSettings.asset
│ ├── TimeManager.asset
│ ├── EditorBuildSettings.asset
│ ├── VFXManager.asset
│ ├── AudioManager.asset
│ ├── TagManager.asset
│ ├── UnityConnectSettings.asset
│ ├── EditorSettings.asset
│ ├── DynamicsManager.asset
│ ├── NavMeshAreas.asset
│ ├── Physics2DSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── QualitySettings.asset
│ └── ProjectSettings.asset
└── Assets
│ ├── Scenes
│ ├── SampleScene.unity.meta
│ └── SampleScene.unity
│ ├── Scenes.meta
│ ├── Scripts.meta
│ └── Scripts
│ ├── Socket.meta
│ ├── Socket
│ ├── SocketEvent.cs
│ ├── DataBuffer.cs.meta
│ ├── SocketEvent.cs.meta
│ ├── SocketDataPack.cs.meta
│ ├── SocketServer.cs.meta
│ ├── DataBuffer.cs
│ ├── SocketDataPack.cs
│ └── SocketServer.cs
│ ├── Main.cs.meta
│ └── Main.cs
├── .gitignore
└── README.md
/SocketClient/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.4.8f1
2 | m_EditorVersionWithRevision: 2019.4.8f1 (702a49318172)
3 |
--------------------------------------------------------------------------------
/SocketServer/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.4.8f1
2 | m_EditorVersionWithRevision: 2019.4.8f1 (702a49318172)
3 |
--------------------------------------------------------------------------------
/SocketClient/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 |
--------------------------------------------------------------------------------
/SocketServer/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 |
--------------------------------------------------------------------------------
/SocketClient/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 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/SocketServer/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 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 946982eb535a40943bb7781aaa600bf8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2e04a0e82198abe4fb1796dc44bc9e9d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e7f13a5f5a0851946a8a0bf2a30e992d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4dc01b245782bbd4a83290138f7e17df
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e3cdc884284e12f48a350017446975ca
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3d6c252842de8784b9d9b355be66093d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/SocketClient/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 | }
--------------------------------------------------------------------------------
/SocketServer/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 | }
--------------------------------------------------------------------------------
/SocketClient/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 |
--------------------------------------------------------------------------------
/SocketServer/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 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketEvent.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// 网络事件协议ID枚举
3 | ///
4 | public enum SocketEvent
5 | {
6 | sc_head = 0x0001, //心跳包
7 | sc_disconn = 0x0002, //客户端主动断开
8 | sc_kickout = 0x0003, //服务端踢出
9 |
10 | sc_test = 0x1001, //测试用
11 | }
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketEvent.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// 网络事件协议ID枚举
3 | ///
4 | public enum SocketEvent
5 | {
6 | sc_head = 0x0001, //心跳包
7 | sc_disconn = 0x0002, //客户端主动断开
8 | sc_kickout = 0x0003, //服务端踢出
9 |
10 | sc_test = 0x1001, //测试用
11 | }
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.sln
2 | *.csproj
3 | SocketClient/.vscode/
4 | SocketClient/Packages/
5 | SocketClient/Logs/
6 | SocketClient/Library/
7 | SocketServer/Packages/
8 | SocketServer/obj/
9 | SocketServer/Logs/
10 | SocketServer/Library/
11 | SocketServer/.vscode/
12 | SocketClient/obj/
13 | SocketClient/Temp/
14 | SocketServer/Temp/
15 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Main.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 052b8595da3036e4a94eabc9a5a2b95b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Main.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6b72333f2bc06a7428fb3c0eadeed0d1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/DataBuffer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e879d0a89aac39f4a8320fd3857d0012
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b1c8d60cbbc2c7547827955a371fda00
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/DataBuffer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 38b4e06522c0d5e4288cbd3e9ecc60bd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3e31095fdf89789458207d2188e0f4f2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketClient.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8e91098b3165d6b478e1a1ab72aeb94c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketDataPack.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cad0be70b592b594282e6606af8b3155
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketDataPack.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cad0be70b592b594282e6606af8b3155
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketServer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a2c6448e77af258458f5959d7e15c022
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/SocketClient/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/Scenes/SampleScene.unity
10 | guid: 9fc0d4010bbf28b4594072e72b8655ab
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/SocketServer/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/Scenes/SampleScene.unity
10 | guid: 9fc0d4010bbf28b4594072e72b8655ab
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/SocketClient/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_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 |
--------------------------------------------------------------------------------
/SocketServer/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_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 |
--------------------------------------------------------------------------------
/SocketClient/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 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 1024
20 |
--------------------------------------------------------------------------------
/SocketServer/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 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 1024
20 |
--------------------------------------------------------------------------------
/SocketClient/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 |
--------------------------------------------------------------------------------
/SocketServer/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 |
--------------------------------------------------------------------------------
/SocketClient/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 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_TestInitMode: 0
13 | CrashReportingSettings:
14 | m_EventUrl: https://perf-events.cloud.unity.cn
15 | m_Enabled: 0
16 | m_LogBufferSize: 10
17 | m_CaptureEditorExceptions: 1
18 | UnityPurchasingSettings:
19 | m_Enabled: 0
20 | m_TestMode: 0
21 | UnityAnalyticsSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | m_InitializeOnStartup: 1
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/SocketServer/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 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_TestInitMode: 0
13 | CrashReportingSettings:
14 | m_EventUrl: https://perf-events.cloud.unity.cn
15 | m_Enabled: 0
16 | m_LogBufferSize: 10
17 | m_CaptureEditorExceptions: 1
18 | UnityPurchasingSettings:
19 | m_Enabled: 0
20 | m_TestMode: 0
21 | UnityAnalyticsSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | m_InitializeOnStartup: 1
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/SocketClient/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: 9
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 0
10 | m_DefaultBehaviorMode: 0
11 | m_PrefabRegularEnvironment: {fileID: 0}
12 | m_PrefabUIEnvironment: {fileID: 0}
13 | m_SpritePackerMode: 0
14 | m_SpritePackerPaddingPower: 1
15 | m_EtcTextureCompressorBehavior: 1
16 | m_EtcTextureFastCompressor: 1
17 | m_EtcTextureNormalCompressor: 2
18 | m_EtcTextureBestCompressor: 4
19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref
20 | m_ProjectGenerationRootNamespace:
21 | m_CollabEditorSettings:
22 | inProgressEnabled: 1
23 | m_EnableTextureStreamingInEditMode: 1
24 | m_EnableTextureStreamingInPlayMode: 1
25 | m_AsyncShaderCompilation: 1
26 | m_EnterPlayModeOptionsEnabled: 0
27 | m_EnterPlayModeOptions: 3
28 | m_ShowLightmapResolutionOverlay: 1
29 | m_UseLegacyProbeSampleCount: 0
30 | m_AssetPipelineMode: 1
31 | m_CacheServerMode: 0
32 | m_CacheServerEndpoint:
33 | m_CacheServerNamespacePrefix: default
34 | m_CacheServerEnableDownload: 1
35 | m_CacheServerEnableUpload: 1
36 |
--------------------------------------------------------------------------------
/SocketServer/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: 9
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 0
10 | m_DefaultBehaviorMode: 0
11 | m_PrefabRegularEnvironment: {fileID: 0}
12 | m_PrefabUIEnvironment: {fileID: 0}
13 | m_SpritePackerMode: 0
14 | m_SpritePackerPaddingPower: 1
15 | m_EtcTextureCompressorBehavior: 1
16 | m_EtcTextureFastCompressor: 1
17 | m_EtcTextureNormalCompressor: 2
18 | m_EtcTextureBestCompressor: 4
19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref
20 | m_ProjectGenerationRootNamespace:
21 | m_CollabEditorSettings:
22 | inProgressEnabled: 1
23 | m_EnableTextureStreamingInEditMode: 1
24 | m_EnableTextureStreamingInPlayMode: 1
25 | m_AsyncShaderCompilation: 1
26 | m_EnterPlayModeOptionsEnabled: 0
27 | m_EnterPlayModeOptions: 3
28 | m_ShowLightmapResolutionOverlay: 1
29 | m_UseLegacyProbeSampleCount: 0
30 | m_AssetPipelineMode: 1
31 | m_CacheServerMode: 0
32 | m_CacheServerEndpoint:
33 | m_CacheServerNamespacePrefix: default
34 | m_CacheServerEnableDownload: 1
35 | m_CacheServerEnableUpload: 1
36 |
--------------------------------------------------------------------------------
/SocketClient/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: 11
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ContactPairsMode: 0
26 | m_BroadphaseType: 0
27 | m_WorldBounds:
28 | m_Center: {x: 0, y: 0, z: 0}
29 | m_Extent: {x: 250, y: 250, z: 250}
30 | m_WorldSubdivisions: 8
31 | m_FrictionType: 0
32 | m_EnableEnhancedDeterminism: 0
33 | m_EnableUnifiedHeightmaps: 1
34 | m_DefaultMaxAngluarSpeed: 7
35 |
--------------------------------------------------------------------------------
/SocketServer/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: 11
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ContactPairsMode: 0
26 | m_BroadphaseType: 0
27 | m_WorldBounds:
28 | m_Center: {x: 0, y: 0, z: 0}
29 | m_Extent: {x: 250, y: 250, z: 250}
30 | m_WorldSubdivisions: 8
31 | m_FrictionType: 0
32 | m_EnableEnhancedDeterminism: 0
33 | m_EnableUnifiedHeightmaps: 1
34 | m_DefaultMaxAngluarSpeed: 7
35 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Main.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class Main : MonoBehaviour
6 | {
7 | SocketServer _server;
8 | private void Awake()
9 | {
10 | _server = new SocketServer("127.0.0.1", 6854);
11 | _server.OnConnect += (client) =>
12 | {
13 | UnityEngine.Debug.LogFormat("连接成功 >> IP:{0}", client.LocalEndPoint.ToString());
14 | };
15 | _server.OnDisconnect += (client) =>
16 | {
17 | UnityEngine.Debug.LogFormat("连接断开 >> IP:{0}", client.LocalEndPoint.ToString());
18 | };
19 | _server.OnReceive += (client, data) =>
20 | {
21 | UnityEngine.Debug.LogFormat("[{0}]接收到数据>>>{1} {2}", client.LocalEndPoint.ToString(), (SocketEvent)data.Type, data.Buff.Length);
22 |
23 | switch ((SocketEvent)data.Type)
24 | {
25 | case SocketEvent.sc_test:
26 | UnityEngine.Debug.LogFormat("接收到测试数据 >>> {0}", System.Text.Encoding.UTF8.GetString(data.Data));
27 | break;
28 | }
29 | };
30 |
31 | }
32 | private void Update()
33 | {
34 | if (Input.GetKeyDown(KeyCode.A))
35 | {
36 | // 踢出连接
37 | foreach (var item in _server.ClientInfoDic.Keys)
38 | {
39 | _server.KickOutAll();
40 | }
41 |
42 | }
43 | }
44 | private void OnDestroy()
45 | {
46 | // 注意由于Unity编译器环境下,游戏开启/关闭只影响主线程的开关,游戏关闭回调时需要通过Close函数来关闭服务端/客户端的线程。
47 | if (_server != null)
48 | {
49 | _server.Close();
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/DataBuffer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | ///
3 | /// Socket传输过程的缓冲区,尝试拆包获得数据
4 | ///
5 | public class DataBuffer
6 | {
7 | // 缓存区长度
8 | private const int MIN_BUFF_LEN = 1024;
9 |
10 | private byte[] _buff;
11 | private int _buffLength = 0;
12 |
13 | public DataBuffer(int minBuffLen = MIN_BUFF_LEN)
14 | {
15 | if (minBuffLen <= 0)
16 | {
17 | minBuffLen = MIN_BUFF_LEN;
18 | }
19 | _buff = new byte[minBuffLen];
20 | }
21 |
22 | ///
23 | /// 添加缓存数据
24 | ///
25 | public void AddBuffer(byte[] data, int len)
26 | {
27 | byte[] buff = new byte[len];
28 | Array.Copy(data, buff, len);
29 | if (len > _buff.Length - _buffLength) //超过当前缓存
30 | {
31 | byte[] temp = new byte[_buffLength + len];
32 | Array.Copy(_buff, 0, temp, 0, _buffLength);
33 | Array.Copy(buff, 0, temp, _buffLength, len);
34 | _buff = temp;
35 | }
36 | else
37 | {
38 | Array.Copy(data, 0, _buff, _buffLength, len);
39 | }
40 | _buffLength += len;//修改当前数据标记
41 | }
42 |
43 | public bool TryUnpack(out SocketDataPack dataPack)
44 | {
45 | dataPack = SocketDataPack.Unpack(_buff);
46 | if (dataPack == null)
47 | {
48 | return false;
49 | }
50 | // 清理旧缓存
51 | _buffLength -= dataPack.BuffLength;
52 | byte[] temp = new byte[_buffLength < MIN_BUFF_LEN ? MIN_BUFF_LEN : _buffLength];
53 | Array.Copy(_buff, dataPack.BuffLength, temp, 0, _buffLength);
54 | _buff = temp;
55 | return true;
56 | }
57 | }
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/DataBuffer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | ///
3 | /// Socket传输过程的缓冲区,尝试拆包获得数据
4 | ///
5 | public class DataBuffer
6 | {
7 | // 缓存区长度
8 | private const int MIN_BUFF_LEN = 1024;
9 |
10 | private byte[] _buff;
11 | private int _buffLength = 0;
12 |
13 | public DataBuffer(int minBuffLen = MIN_BUFF_LEN)
14 | {
15 | if (minBuffLen <= 0)
16 | {
17 | minBuffLen = MIN_BUFF_LEN;
18 | }
19 | _buff = new byte[minBuffLen];
20 | }
21 |
22 | ///
23 | /// 添加缓存数据
24 | ///
25 | public void AddBuffer(byte[] data, int len)
26 | {
27 | byte[] buff = new byte[len];
28 | Array.Copy(data, buff, len);
29 | if (len > _buff.Length - _buffLength) //超过当前缓存
30 | {
31 | byte[] temp = new byte[_buffLength + len];
32 | Array.Copy(_buff, 0, temp, 0, _buffLength);
33 | Array.Copy(buff, 0, temp, _buffLength, len);
34 | _buff = temp;
35 | }
36 | else
37 | {
38 | Array.Copy(data, 0, _buff, _buffLength, len);
39 | }
40 | _buffLength += len;//修改当前数据标记
41 | }
42 |
43 | public bool TryUnpack(out SocketDataPack dataPack)
44 | {
45 | dataPack = SocketDataPack.Unpack(_buff);
46 | if (dataPack == null)
47 | {
48 | return false;
49 | }
50 | // 清理旧缓存
51 | _buffLength -= dataPack.BuffLength;
52 | byte[] temp = new byte[_buffLength < MIN_BUFF_LEN ? MIN_BUFF_LEN : _buffLength];
53 | Array.Copy(_buff, dataPack.BuffLength, temp, 0, _buffLength);
54 | _buff = temp;
55 | return true;
56 | }
57 | }
--------------------------------------------------------------------------------
/SocketClient/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 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/SocketServer/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 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Main.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class Main : MonoBehaviour
6 | {
7 | SocketClient _client;
8 | private void Awake()
9 | {
10 |
11 | _client = new SocketClient("127.0.0.1", 6854);
12 | _client.OnDisconnect += () =>
13 | {
14 | UnityEngine.Debug.Log("断开连接");
15 | };
16 |
17 | _client.OnReceive += (dataPack) =>
18 | {
19 | UnityEngine.Debug.LogFormat("接收数据>>>{0}", (SocketEvent)dataPack.Type);
20 | };
21 | _client.OnSend += (dataPack) =>
22 | {
23 | UnityEngine.Debug.LogFormat("发送数据>>>{0}", (SocketEvent)dataPack.Type);
24 | };
25 | _client.OnError += (ex) =>
26 | {
27 | UnityEngine.Debug.LogFormat("出现异常>>>{0}", ex);
28 | };
29 |
30 | _client.OnReConnectSuccess += (num) =>
31 | {
32 | UnityEngine.Debug.LogFormat("第{0}次重连成功", num);
33 | };
34 | _client.OnReConnectError += (num) =>
35 | {
36 | UnityEngine.Debug.LogFormat("第{0}次重连失败", num);
37 | };
38 | _client.OnReconnecting += (num) =>
39 | {
40 | UnityEngine.Debug.LogFormat("正在进行第{0}次重连", num);
41 | };
42 |
43 |
44 | _client.Connect(() =>
45 | {
46 | UnityEngine.Debug.Log("连接成功");
47 |
48 | // _client.DisConnect();
49 | }, () =>
50 | {
51 | UnityEngine.Debug.Log("连接失败");
52 | });
53 |
54 | }
55 |
56 | private void Update()
57 | {
58 | if (Input.GetKeyDown(KeyCode.A))
59 | {
60 | var bytes = System.Text.Encoding.UTF8.GetBytes("我是测试数据");
61 | _client.Send((System.UInt16)SocketEvent.sc_test, bytes);
62 | }
63 | if (Input.GetKeyDown(KeyCode.D))
64 | {
65 | _client.DisConnect();
66 | }
67 | }
68 |
69 | private void OnDestroy()
70 | {
71 | // 注意由于Unity编译器环境下,游戏开启/关闭只影响主线程的开关,游戏关闭回调时需要通过Close函数来关闭服务端/客户端的线程。
72 | if (_client != null)
73 | {
74 | _client.Close();
75 | }
76 |
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/SocketClient/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: 4
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_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_AutoSimulation: 1
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/SocketServer/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: 4
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_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_AutoSimulation: 1
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # UnitySocket
2 | 该项目是基于Unity平台 纯C#编写的Socket网络模块,包括客户端与服务端的实现
3 |
4 | (针对Unity对线程的不友好,做了部分处理,本质是还是纯粹的C#代码编写,可以随意移植)
5 |
6 | **基于NodeJs平台下的Socket网络通信模块** >>> [前往项目](https://github.com/GrayGuardian/NodeJsSocket)
7 |
8 | ## 环境依赖
9 |
10 | - 项目运行平台: Unity2019.4.8f1
11 |
12 | 该项目仅包含网络底层的几个C#脚本与一个测试脚本,可以随意选择Unity版本测试。
13 |
14 | ## 特点
15 | 1. 回调事件完善,包含服务器主动踢出、客户端主动断开、心跳包等底层功能逻辑。
16 | 2. 对象形式,非单例模式,一个项目可new多个连接
17 | 3. 代码量少,纯C#编写,未使用插件、DLL及工具类,便于二次封装,利于移植
18 | ## 报文组成
19 | - 通用
20 |
21 | 报文总长度(4byte) + 报文类型(2byte) + 数据(N byte)
22 |
23 | - 心跳包
24 |
25 | 报文总长度(4byte) + 报文类型-心跳包(2byte)
26 |
27 | - 客户端断开
28 |
29 | 报文总长度(4byte) + 报文类型-客户端断开(2byte)
30 |
31 | - 服务端踢出
32 |
33 | 报文总长度(4byte) + 报文类型-服务端踢出(2byte)
34 |
35 | ## 工作流
36 | - 建立连接
37 | 1. 服务端通过 new SocketServer(string ip,int port) 建立连接
38 | 2. 客户端通过 new SocketClient(string ip,int port) 建立实例,通过Connect函数尝试连接。
39 | 3. 客户端连接成功后,开始定时发送心跳包报文;服务端接收后记录时间,定时检测判断是否超时。
40 | 4. 如存在以下情况,则断开连接:
41 | - 服务端主动踢出连接,即时响应,回调DisConnect
42 | - 客户端主动断开连接,即时响应,回调DisConnect
43 | - 客户端关闭连接,即时响应,回调DisConnect
44 | - 服务端检测到客户端太久没有发送心跳包,此处需要响应时间,根据心跳包超时间隔、心跳包发送间隔及服务端心跳包超时检测间隔来决定,发现超时则回调DisConnect
45 | - 通信逻辑过程中报错,即时响应,自动重连,默认重连上限为三次,达到重连上限并未成功,则回调DisConnect
46 | - 接收数据
47 | 1. 接收线程收到数据,存放入DataBuff数据缓存区。
48 | 2. DataBuff中不断通过SocketDataPack尝试解包,解包成功后将报文发送到接收线程。
49 | 3. 接收线程收到报文后,触发OnReceive回调
50 | 4. 业务层通过OnReceive回调接收到报文后,反序列化报文体得到数据
51 | - 发送数据
52 | 1. 业务层序列化数据得到报文体字节集,通过Send函数发送数据。
53 | 2. Send函数中,通过SocketDataPack装包后,以字节集的形式发送出去。
54 |
55 | ## 代码说明
56 | - DataBuffer:Socket传输数据缓存区,此处主要处理Socket传输时粘包、分包的情况
57 | - SocketEvent:Socket报文类型枚举,此处只枚举了网络底层需要发送的报文类型,业务逻辑层所使用的报文类型,建议封装至报文体序列化类中
58 | - SocketDataPack:Socket报文类,处理具体的拆包、装包逻辑
59 | - SocketServer:Socket服务端
60 | - SocketClient:Socket客户端
61 |
62 | ## 回调事件
63 | - SocketServer 服务端
64 | - public event Action OnConnect; //客户端建立连接回调
65 | - public event Action OnDisconnect; // 客户端断开连接回调
66 | - public event Action OnReceive; // 接收报文回调
67 | - SocketClient 客户端
68 | - public event Action OnConnectSuccess; // 连接成功回调
69 | - public event Action OnConnectError; // 连接失败回调
70 | - public event Action OnDisconnect; // 断开回调
71 | - public event Action OnReceive; // 接收报文回调
72 | - public event Action OnError; // 异常捕获回调
73 | - public event Action OnReConnectSuccess; // 重连成功回调
74 | - public event Action OnReConnectError; // 单次重连失败回调
75 | - public event Action OnReconnecting; // 单次重连中回调
--------------------------------------------------------------------------------
/SocketClient/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: 16003, guid: 0000000000000000f000000000000000, type: 0}
41 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
42 | m_PreloadedShaders: []
43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
44 | type: 0}
45 | m_CustomRenderPipeline: {fileID: 0}
46 | m_TransparencySortMode: 0
47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
48 | m_DefaultRenderingPath: 1
49 | m_DefaultMobileRenderingPath: 1
50 | m_TierSettings: []
51 | m_LightmapStripping: 0
52 | m_FogStripping: 0
53 | m_InstancingStripping: 0
54 | m_LightmapKeepPlain: 1
55 | m_LightmapKeepDirCombined: 1
56 | m_LightmapKeepDynamicPlain: 1
57 | m_LightmapKeepDynamicDirCombined: 1
58 | m_LightmapKeepShadowMask: 1
59 | m_LightmapKeepSubtractive: 1
60 | m_FogKeepLinear: 1
61 | m_FogKeepExp: 1
62 | m_FogKeepExp2: 1
63 | m_AlbedoSwatchInfos: []
64 | m_LightsUseLinearIntensity: 0
65 | m_LightsUseColorTemperature: 0
66 | m_LogWhenShaderIsCompiled: 0
67 | m_AllowEnlightenSupportForUpgradedProject: 0
68 |
--------------------------------------------------------------------------------
/SocketServer/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: 16003, guid: 0000000000000000f000000000000000, type: 0}
41 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
42 | m_PreloadedShaders: []
43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
44 | type: 0}
45 | m_CustomRenderPipeline: {fileID: 0}
46 | m_TransparencySortMode: 0
47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
48 | m_DefaultRenderingPath: 1
49 | m_DefaultMobileRenderingPath: 1
50 | m_TierSettings: []
51 | m_LightmapStripping: 0
52 | m_FogStripping: 0
53 | m_InstancingStripping: 0
54 | m_LightmapKeepPlain: 1
55 | m_LightmapKeepDirCombined: 1
56 | m_LightmapKeepDynamicPlain: 1
57 | m_LightmapKeepDynamicDirCombined: 1
58 | m_LightmapKeepShadowMask: 1
59 | m_LightmapKeepSubtractive: 1
60 | m_FogKeepLinear: 1
61 | m_FogKeepExp: 1
62 | m_FogKeepExp2: 1
63 | m_AlbedoSwatchInfos: []
64 | m_LightsUseLinearIntensity: 0
65 | m_LightsUseColorTemperature: 0
66 | m_LogWhenShaderIsCompiled: 0
67 | m_AllowEnlightenSupportForUpgradedProject: 0
68 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketDataPack.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | ///
4 | /// Socket通信过程中的数据包 处理具体拆包装包逻辑
5 | ///
6 | public class SocketDataPack
7 | {
8 | // 消息:数据总长度(4byte) + 数据类型(2byte) + 数据(N byte)
9 | public static int HEAD_DATA_LEN = 4;
10 | public static int HEAD_TYPE_LEN = 2;
11 | public static int HEAD_LEN
12 | {
13 | get { return HEAD_DATA_LEN + HEAD_TYPE_LEN; }
14 | }
15 |
16 | ///
17 | /// 数据包类型
18 | ///
19 | public UInt16 Type;
20 | ///
21 | /// 数据包数据
22 | ///
23 | public byte[] Data;
24 | public byte[] Buff;
25 |
26 | public int BuffLength
27 | {
28 | get { return Buff.Length; }
29 | }
30 | public int DataLength
31 | {
32 | get { return Data.Length; }
33 | }
34 |
35 | public SocketDataPack()
36 | {
37 |
38 | }
39 | public SocketDataPack(UInt16 type, byte[] data)
40 | {
41 | Type = type;
42 | Data = data;
43 |
44 | Buff = GetBuff(Type, Data);
45 | }
46 |
47 | public static byte[] GetBuff(UInt16 type, byte[] data)
48 | {
49 | byte[] buff = new byte[data.Length + HEAD_LEN];
50 | byte[] temp;
51 | temp = BitConverter.GetBytes(buff.Length);
52 | Array.Copy(temp, 0, buff, 0, HEAD_DATA_LEN);
53 | temp = BitConverter.GetBytes(type);
54 | Array.Copy(temp, 0, buff, HEAD_DATA_LEN, HEAD_TYPE_LEN);
55 |
56 | Array.Copy(data, 0, buff, HEAD_LEN, data.Length);
57 |
58 | return buff;
59 | }
60 |
61 | public static SocketDataPack Unpack(byte[] buff)
62 | {
63 | try
64 | {
65 | if (buff.Length < HEAD_LEN)
66 | {
67 | // 头部没取完则返回
68 | return null;
69 | }
70 | byte[] temp;
71 | // 取数据长度
72 | temp = new byte[HEAD_DATA_LEN];
73 | Array.Copy(buff, 0, temp, 0, HEAD_DATA_LEN);
74 | int buffLength = BitConverter.ToInt32(temp, 0);
75 | if (buffLength <= 0) return null;
76 | if (buffLength > buff.Length)
77 | {
78 | // 数据没取完
79 | return null;
80 | }
81 | int dataLength = buffLength - HEAD_LEN;
82 | // 取数据类型
83 | temp = new byte[HEAD_TYPE_LEN];
84 | Array.Copy(buff, HEAD_DATA_LEN, temp, 0, HEAD_TYPE_LEN);
85 | UInt16 dataType = BitConverter.ToUInt16(temp, 0);
86 | // 取数据
87 | byte[] data = new byte[dataLength];
88 | Array.Copy(buff, HEAD_LEN, data, 0, dataLength);
89 |
90 | var dataPack = new SocketDataPack(dataType, data);
91 | // UnityEngine.Debug.LogFormat("buffLen:{0} type:{1} dataLength:{2}", buffLength, dataType, data.Length);
92 |
93 | return dataPack;
94 |
95 | }
96 | catch
97 | {
98 | // 存在不完整数据解包 则返回null
99 | return null;
100 | }
101 |
102 |
103 | }
104 | }
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketDataPack.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | ///
4 | /// Socket通信过程中的数据包 处理具体拆包装包逻辑
5 | ///
6 | public class SocketDataPack
7 | {
8 | // 消息:数据总长度(4byte) + 数据类型(2byte) + 数据(N byte)
9 | public static int HEAD_DATA_LEN = 4;
10 | public static int HEAD_TYPE_LEN = 2;
11 | public static int HEAD_LEN
12 | {
13 | get { return HEAD_DATA_LEN + HEAD_TYPE_LEN; }
14 | }
15 |
16 | ///
17 | /// 数据包类型
18 | ///
19 | public UInt16 Type;
20 | ///
21 | /// 数据包数据
22 | ///
23 | public byte[] Data;
24 | public byte[] Buff;
25 |
26 | public int BuffLength
27 | {
28 | get { return Buff.Length; }
29 | }
30 | public int DataLength
31 | {
32 | get { return Data.Length; }
33 | }
34 |
35 | public SocketDataPack()
36 | {
37 |
38 | }
39 | public SocketDataPack(UInt16 type, byte[] data)
40 | {
41 | Type = type;
42 | Data = data;
43 |
44 | Buff = GetBuff(Type, Data);
45 | }
46 |
47 | public static byte[] GetBuff(UInt16 type, byte[] data)
48 | {
49 | byte[] buff = new byte[data.Length + HEAD_LEN];
50 | byte[] temp;
51 | temp = BitConverter.GetBytes(buff.Length);
52 | Array.Copy(temp, 0, buff, 0, HEAD_DATA_LEN);
53 | temp = BitConverter.GetBytes(type);
54 | Array.Copy(temp, 0, buff, HEAD_DATA_LEN, HEAD_TYPE_LEN);
55 |
56 | Array.Copy(data, 0, buff, HEAD_LEN, data.Length);
57 |
58 | return buff;
59 | }
60 |
61 | public static SocketDataPack Unpack(byte[] buff)
62 | {
63 | try
64 | {
65 | if (buff.Length < HEAD_LEN)
66 | {
67 | // 头部没取完则返回
68 | return null;
69 | }
70 | byte[] temp;
71 | // 取数据长度
72 | temp = new byte[HEAD_DATA_LEN];
73 | Array.Copy(buff, 0, temp, 0, HEAD_DATA_LEN);
74 | int buffLength = BitConverter.ToInt32(temp, 0);
75 | if (buffLength <= 0) return null;
76 | if (buffLength > buff.Length)
77 | {
78 | // 数据没取完
79 | return null;
80 | }
81 | int dataLength = buffLength - HEAD_LEN;
82 | // 取数据类型
83 | temp = new byte[HEAD_TYPE_LEN];
84 | Array.Copy(buff, HEAD_DATA_LEN, temp, 0, HEAD_TYPE_LEN);
85 | UInt16 dataType = BitConverter.ToUInt16(temp, 0);
86 | // 取数据
87 | byte[] data = new byte[dataLength];
88 | Array.Copy(buff, HEAD_LEN, data, 0, dataLength);
89 |
90 | var dataPack = new SocketDataPack(dataType, data);
91 | // UnityEngine.Debug.LogFormat("buffLen:{0} type:{1} dataLength:{2}", buffLength, dataType, data.Length);
92 |
93 | return dataPack;
94 |
95 | }
96 | catch
97 | {
98 | // 存在不完整数据解包 则返回null
99 | return null;
100 | }
101 |
102 |
103 | }
104 | }
--------------------------------------------------------------------------------
/SocketClient/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 |
--------------------------------------------------------------------------------
/SocketServer/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 |
--------------------------------------------------------------------------------
/SocketClient/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 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 4
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | excludedTargetPlatforms: []
44 | - serializedVersion: 2
45 | name: Low
46 | pixelLightCount: 0
47 | shadows: 0
48 | shadowResolution: 0
49 | shadowProjection: 1
50 | shadowCascades: 1
51 | shadowDistance: 20
52 | shadowNearPlaneOffset: 3
53 | shadowCascade2Split: 0.33333334
54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
55 | shadowmaskMode: 0
56 | blendWeights: 2
57 | textureQuality: 0
58 | anisotropicTextures: 0
59 | antiAliasing: 0
60 | softParticles: 0
61 | softVegetation: 0
62 | realtimeReflectionProbes: 0
63 | billboardsFaceCameraPosition: 0
64 | vSyncCount: 0
65 | lodBias: 0.4
66 | maximumLODLevel: 0
67 | streamingMipmapsActive: 0
68 | streamingMipmapsAddAllCameras: 1
69 | streamingMipmapsMemoryBudget: 512
70 | streamingMipmapsRenderersPerFrame: 512
71 | streamingMipmapsMaxLevelReduction: 2
72 | streamingMipmapsMaxFileIORequests: 1024
73 | particleRaycastBudget: 16
74 | asyncUploadTimeSlice: 2
75 | asyncUploadBufferSize: 16
76 | asyncUploadPersistentBuffer: 1
77 | resolutionScalingFixedDPIFactor: 1
78 | excludedTargetPlatforms: []
79 | - serializedVersion: 2
80 | name: Medium
81 | pixelLightCount: 1
82 | shadows: 1
83 | shadowResolution: 0
84 | shadowProjection: 1
85 | shadowCascades: 1
86 | shadowDistance: 20
87 | shadowNearPlaneOffset: 3
88 | shadowCascade2Split: 0.33333334
89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
90 | shadowmaskMode: 0
91 | blendWeights: 2
92 | textureQuality: 0
93 | anisotropicTextures: 1
94 | antiAliasing: 0
95 | softParticles: 0
96 | softVegetation: 0
97 | realtimeReflectionProbes: 0
98 | billboardsFaceCameraPosition: 0
99 | vSyncCount: 1
100 | lodBias: 0.7
101 | maximumLODLevel: 0
102 | streamingMipmapsActive: 0
103 | streamingMipmapsAddAllCameras: 1
104 | streamingMipmapsMemoryBudget: 512
105 | streamingMipmapsRenderersPerFrame: 512
106 | streamingMipmapsMaxLevelReduction: 2
107 | streamingMipmapsMaxFileIORequests: 1024
108 | particleRaycastBudget: 64
109 | asyncUploadTimeSlice: 2
110 | asyncUploadBufferSize: 16
111 | asyncUploadPersistentBuffer: 1
112 | resolutionScalingFixedDPIFactor: 1
113 | excludedTargetPlatforms: []
114 | - serializedVersion: 2
115 | name: High
116 | pixelLightCount: 2
117 | shadows: 2
118 | shadowResolution: 1
119 | shadowProjection: 1
120 | shadowCascades: 2
121 | shadowDistance: 40
122 | shadowNearPlaneOffset: 3
123 | shadowCascade2Split: 0.33333334
124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
125 | shadowmaskMode: 1
126 | blendWeights: 2
127 | textureQuality: 0
128 | anisotropicTextures: 1
129 | antiAliasing: 0
130 | softParticles: 0
131 | softVegetation: 1
132 | realtimeReflectionProbes: 1
133 | billboardsFaceCameraPosition: 1
134 | vSyncCount: 1
135 | lodBias: 1
136 | maximumLODLevel: 0
137 | streamingMipmapsActive: 0
138 | streamingMipmapsAddAllCameras: 1
139 | streamingMipmapsMemoryBudget: 512
140 | streamingMipmapsRenderersPerFrame: 512
141 | streamingMipmapsMaxLevelReduction: 2
142 | streamingMipmapsMaxFileIORequests: 1024
143 | particleRaycastBudget: 256
144 | asyncUploadTimeSlice: 2
145 | asyncUploadBufferSize: 16
146 | asyncUploadPersistentBuffer: 1
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Very High
151 | pixelLightCount: 3
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 2
156 | shadowDistance: 70
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: 1.5
171 | maximumLODLevel: 0
172 | streamingMipmapsActive: 0
173 | streamingMipmapsAddAllCameras: 1
174 | streamingMipmapsMemoryBudget: 512
175 | streamingMipmapsRenderersPerFrame: 512
176 | streamingMipmapsMaxLevelReduction: 2
177 | streamingMipmapsMaxFileIORequests: 1024
178 | particleRaycastBudget: 1024
179 | asyncUploadTimeSlice: 2
180 | asyncUploadBufferSize: 16
181 | asyncUploadPersistentBuffer: 1
182 | resolutionScalingFixedDPIFactor: 1
183 | excludedTargetPlatforms: []
184 | - serializedVersion: 2
185 | name: Ultra
186 | pixelLightCount: 4
187 | shadows: 2
188 | shadowResolution: 2
189 | shadowProjection: 1
190 | shadowCascades: 4
191 | shadowDistance: 150
192 | shadowNearPlaneOffset: 3
193 | shadowCascade2Split: 0.33333334
194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
195 | shadowmaskMode: 1
196 | blendWeights: 4
197 | textureQuality: 0
198 | anisotropicTextures: 2
199 | antiAliasing: 2
200 | softParticles: 1
201 | softVegetation: 1
202 | realtimeReflectionProbes: 1
203 | billboardsFaceCameraPosition: 1
204 | vSyncCount: 1
205 | lodBias: 2
206 | maximumLODLevel: 0
207 | streamingMipmapsActive: 0
208 | streamingMipmapsAddAllCameras: 1
209 | streamingMipmapsMemoryBudget: 512
210 | streamingMipmapsRenderersPerFrame: 512
211 | streamingMipmapsMaxLevelReduction: 2
212 | streamingMipmapsMaxFileIORequests: 1024
213 | particleRaycastBudget: 4096
214 | asyncUploadTimeSlice: 2
215 | asyncUploadBufferSize: 16
216 | asyncUploadPersistentBuffer: 1
217 | resolutionScalingFixedDPIFactor: 1
218 | excludedTargetPlatforms: []
219 | m_PerPlatformDefaultQuality:
220 | Android: 2
221 | Lumin: 5
222 | Nintendo 3DS: 5
223 | Nintendo Switch: 5
224 | PS4: 5
225 | PSP2: 2
226 | Stadia: 5
227 | Standalone: 5
228 | WebGL: 3
229 | Windows Store Apps: 5
230 | XboxOne: 5
231 | iPhone: 2
232 | tvOS: 2
233 |
--------------------------------------------------------------------------------
/SocketServer/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 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 4
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | excludedTargetPlatforms: []
44 | - serializedVersion: 2
45 | name: Low
46 | pixelLightCount: 0
47 | shadows: 0
48 | shadowResolution: 0
49 | shadowProjection: 1
50 | shadowCascades: 1
51 | shadowDistance: 20
52 | shadowNearPlaneOffset: 3
53 | shadowCascade2Split: 0.33333334
54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
55 | shadowmaskMode: 0
56 | blendWeights: 2
57 | textureQuality: 0
58 | anisotropicTextures: 0
59 | antiAliasing: 0
60 | softParticles: 0
61 | softVegetation: 0
62 | realtimeReflectionProbes: 0
63 | billboardsFaceCameraPosition: 0
64 | vSyncCount: 0
65 | lodBias: 0.4
66 | maximumLODLevel: 0
67 | streamingMipmapsActive: 0
68 | streamingMipmapsAddAllCameras: 1
69 | streamingMipmapsMemoryBudget: 512
70 | streamingMipmapsRenderersPerFrame: 512
71 | streamingMipmapsMaxLevelReduction: 2
72 | streamingMipmapsMaxFileIORequests: 1024
73 | particleRaycastBudget: 16
74 | asyncUploadTimeSlice: 2
75 | asyncUploadBufferSize: 16
76 | asyncUploadPersistentBuffer: 1
77 | resolutionScalingFixedDPIFactor: 1
78 | excludedTargetPlatforms: []
79 | - serializedVersion: 2
80 | name: Medium
81 | pixelLightCount: 1
82 | shadows: 1
83 | shadowResolution: 0
84 | shadowProjection: 1
85 | shadowCascades: 1
86 | shadowDistance: 20
87 | shadowNearPlaneOffset: 3
88 | shadowCascade2Split: 0.33333334
89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
90 | shadowmaskMode: 0
91 | blendWeights: 2
92 | textureQuality: 0
93 | anisotropicTextures: 1
94 | antiAliasing: 0
95 | softParticles: 0
96 | softVegetation: 0
97 | realtimeReflectionProbes: 0
98 | billboardsFaceCameraPosition: 0
99 | vSyncCount: 1
100 | lodBias: 0.7
101 | maximumLODLevel: 0
102 | streamingMipmapsActive: 0
103 | streamingMipmapsAddAllCameras: 1
104 | streamingMipmapsMemoryBudget: 512
105 | streamingMipmapsRenderersPerFrame: 512
106 | streamingMipmapsMaxLevelReduction: 2
107 | streamingMipmapsMaxFileIORequests: 1024
108 | particleRaycastBudget: 64
109 | asyncUploadTimeSlice: 2
110 | asyncUploadBufferSize: 16
111 | asyncUploadPersistentBuffer: 1
112 | resolutionScalingFixedDPIFactor: 1
113 | excludedTargetPlatforms: []
114 | - serializedVersion: 2
115 | name: High
116 | pixelLightCount: 2
117 | shadows: 2
118 | shadowResolution: 1
119 | shadowProjection: 1
120 | shadowCascades: 2
121 | shadowDistance: 40
122 | shadowNearPlaneOffset: 3
123 | shadowCascade2Split: 0.33333334
124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
125 | shadowmaskMode: 1
126 | blendWeights: 2
127 | textureQuality: 0
128 | anisotropicTextures: 1
129 | antiAliasing: 0
130 | softParticles: 0
131 | softVegetation: 1
132 | realtimeReflectionProbes: 1
133 | billboardsFaceCameraPosition: 1
134 | vSyncCount: 1
135 | lodBias: 1
136 | maximumLODLevel: 0
137 | streamingMipmapsActive: 0
138 | streamingMipmapsAddAllCameras: 1
139 | streamingMipmapsMemoryBudget: 512
140 | streamingMipmapsRenderersPerFrame: 512
141 | streamingMipmapsMaxLevelReduction: 2
142 | streamingMipmapsMaxFileIORequests: 1024
143 | particleRaycastBudget: 256
144 | asyncUploadTimeSlice: 2
145 | asyncUploadBufferSize: 16
146 | asyncUploadPersistentBuffer: 1
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Very High
151 | pixelLightCount: 3
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 2
156 | shadowDistance: 70
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: 1.5
171 | maximumLODLevel: 0
172 | streamingMipmapsActive: 0
173 | streamingMipmapsAddAllCameras: 1
174 | streamingMipmapsMemoryBudget: 512
175 | streamingMipmapsRenderersPerFrame: 512
176 | streamingMipmapsMaxLevelReduction: 2
177 | streamingMipmapsMaxFileIORequests: 1024
178 | particleRaycastBudget: 1024
179 | asyncUploadTimeSlice: 2
180 | asyncUploadBufferSize: 16
181 | asyncUploadPersistentBuffer: 1
182 | resolutionScalingFixedDPIFactor: 1
183 | excludedTargetPlatforms: []
184 | - serializedVersion: 2
185 | name: Ultra
186 | pixelLightCount: 4
187 | shadows: 2
188 | shadowResolution: 2
189 | shadowProjection: 1
190 | shadowCascades: 4
191 | shadowDistance: 150
192 | shadowNearPlaneOffset: 3
193 | shadowCascade2Split: 0.33333334
194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
195 | shadowmaskMode: 1
196 | blendWeights: 4
197 | textureQuality: 0
198 | anisotropicTextures: 2
199 | antiAliasing: 2
200 | softParticles: 1
201 | softVegetation: 1
202 | realtimeReflectionProbes: 1
203 | billboardsFaceCameraPosition: 1
204 | vSyncCount: 1
205 | lodBias: 2
206 | maximumLODLevel: 0
207 | streamingMipmapsActive: 0
208 | streamingMipmapsAddAllCameras: 1
209 | streamingMipmapsMemoryBudget: 512
210 | streamingMipmapsRenderersPerFrame: 512
211 | streamingMipmapsMaxLevelReduction: 2
212 | streamingMipmapsMaxFileIORequests: 1024
213 | particleRaycastBudget: 4096
214 | asyncUploadTimeSlice: 2
215 | asyncUploadBufferSize: 16
216 | asyncUploadPersistentBuffer: 1
217 | resolutionScalingFixedDPIFactor: 1
218 | excludedTargetPlatforms: []
219 | m_PerPlatformDefaultQuality:
220 | Android: 2
221 | Lumin: 5
222 | Nintendo 3DS: 5
223 | Nintendo Switch: 5
224 | PS4: 5
225 | PSP2: 2
226 | Stadia: 5
227 | Standalone: 5
228 | WebGL: 3
229 | Windows Store Apps: 5
230 | XboxOne: 5
231 | iPhone: 2
232 | tvOS: 2
233 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scenes/SampleScene.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, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 1
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: 0
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: 1
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 &272580672
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: 272580674}
133 | - component: {fileID: 272580673}
134 | m_Layer: 0
135 | m_Name: Main
136 | m_TagString: Untagged
137 | m_Icon: {fileID: 0}
138 | m_NavMeshLayer: 0
139 | m_StaticEditorFlags: 0
140 | m_IsActive: 1
141 | --- !u!114 &272580673
142 | MonoBehaviour:
143 | m_ObjectHideFlags: 0
144 | m_CorrespondingSourceObject: {fileID: 0}
145 | m_PrefabInstance: {fileID: 0}
146 | m_PrefabAsset: {fileID: 0}
147 | m_GameObject: {fileID: 272580672}
148 | m_Enabled: 1
149 | m_EditorHideFlags: 0
150 | m_Script: {fileID: 11500000, guid: 052b8595da3036e4a94eabc9a5a2b95b, type: 3}
151 | m_Name:
152 | m_EditorClassIdentifier:
153 | --- !u!4 &272580674
154 | Transform:
155 | m_ObjectHideFlags: 0
156 | m_CorrespondingSourceObject: {fileID: 0}
157 | m_PrefabInstance: {fileID: 0}
158 | m_PrefabAsset: {fileID: 0}
159 | m_GameObject: {fileID: 272580672}
160 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
161 | m_LocalPosition: {x: 0, y: 0, z: 0}
162 | m_LocalScale: {x: 1, y: 1, z: 1}
163 | m_Children: []
164 | m_Father: {fileID: 0}
165 | m_RootOrder: 1
166 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
167 | --- !u!1 &1921837721
168 | GameObject:
169 | m_ObjectHideFlags: 0
170 | m_CorrespondingSourceObject: {fileID: 0}
171 | m_PrefabInstance: {fileID: 0}
172 | m_PrefabAsset: {fileID: 0}
173 | serializedVersion: 6
174 | m_Component:
175 | - component: {fileID: 1921837724}
176 | - component: {fileID: 1921837723}
177 | - component: {fileID: 1921837722}
178 | m_Layer: 0
179 | m_Name: Camera
180 | m_TagString: Untagged
181 | m_Icon: {fileID: 0}
182 | m_NavMeshLayer: 0
183 | m_StaticEditorFlags: 0
184 | m_IsActive: 1
185 | --- !u!81 &1921837722
186 | AudioListener:
187 | m_ObjectHideFlags: 0
188 | m_CorrespondingSourceObject: {fileID: 0}
189 | m_PrefabInstance: {fileID: 0}
190 | m_PrefabAsset: {fileID: 0}
191 | m_GameObject: {fileID: 1921837721}
192 | m_Enabled: 1
193 | --- !u!20 &1921837723
194 | Camera:
195 | m_ObjectHideFlags: 0
196 | m_CorrespondingSourceObject: {fileID: 0}
197 | m_PrefabInstance: {fileID: 0}
198 | m_PrefabAsset: {fileID: 0}
199 | m_GameObject: {fileID: 1921837721}
200 | m_Enabled: 1
201 | serializedVersion: 2
202 | m_ClearFlags: 2
203 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
204 | m_projectionMatrixMode: 1
205 | m_GateFitMode: 2
206 | m_FOVAxisMode: 0
207 | m_SensorSize: {x: 36, y: 24}
208 | m_LensShift: {x: 0, y: 0}
209 | m_FocalLength: 50
210 | m_NormalizedViewPortRect:
211 | serializedVersion: 2
212 | x: 0
213 | y: 0
214 | width: 1
215 | height: 1
216 | near clip plane: 0.3
217 | far clip plane: 1000
218 | field of view: 60
219 | orthographic: 0
220 | orthographic size: 5
221 | m_Depth: 0
222 | m_CullingMask:
223 | serializedVersion: 2
224 | m_Bits: 4294967295
225 | m_RenderingPath: -1
226 | m_TargetTexture: {fileID: 0}
227 | m_TargetDisplay: 0
228 | m_TargetEye: 3
229 | m_HDR: 1
230 | m_AllowMSAA: 1
231 | m_AllowDynamicResolution: 0
232 | m_ForceIntoRT: 0
233 | m_OcclusionCulling: 1
234 | m_StereoConvergence: 10
235 | m_StereoSeparation: 0.022
236 | --- !u!4 &1921837724
237 | Transform:
238 | m_ObjectHideFlags: 0
239 | m_CorrespondingSourceObject: {fileID: 0}
240 | m_PrefabInstance: {fileID: 0}
241 | m_PrefabAsset: {fileID: 0}
242 | m_GameObject: {fileID: 1921837721}
243 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
244 | m_LocalPosition: {x: 0, y: 0, z: 0}
245 | m_LocalScale: {x: 1, y: 1, z: 1}
246 | m_Children: []
247 | m_Father: {fileID: 0}
248 | m_RootOrder: 0
249 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
250 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scenes/SampleScene.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, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 1
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: 0
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: 1
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 &1415579991
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: 1415579993}
133 | - component: {fileID: 1415579992}
134 | m_Layer: 0
135 | m_Name: Main
136 | m_TagString: Untagged
137 | m_Icon: {fileID: 0}
138 | m_NavMeshLayer: 0
139 | m_StaticEditorFlags: 0
140 | m_IsActive: 1
141 | --- !u!114 &1415579992
142 | MonoBehaviour:
143 | m_ObjectHideFlags: 0
144 | m_CorrespondingSourceObject: {fileID: 0}
145 | m_PrefabInstance: {fileID: 0}
146 | m_PrefabAsset: {fileID: 0}
147 | m_GameObject: {fileID: 1415579991}
148 | m_Enabled: 1
149 | m_EditorHideFlags: 0
150 | m_Script: {fileID: 11500000, guid: 6b72333f2bc06a7428fb3c0eadeed0d1, type: 3}
151 | m_Name:
152 | m_EditorClassIdentifier:
153 | --- !u!4 &1415579993
154 | Transform:
155 | m_ObjectHideFlags: 0
156 | m_CorrespondingSourceObject: {fileID: 0}
157 | m_PrefabInstance: {fileID: 0}
158 | m_PrefabAsset: {fileID: 0}
159 | m_GameObject: {fileID: 1415579991}
160 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
161 | m_LocalPosition: {x: 0, y: 0, z: 0}
162 | m_LocalScale: {x: 1, y: 1, z: 1}
163 | m_Children: []
164 | m_Father: {fileID: 0}
165 | m_RootOrder: 1
166 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
167 | --- !u!1 &1968916244
168 | GameObject:
169 | m_ObjectHideFlags: 0
170 | m_CorrespondingSourceObject: {fileID: 0}
171 | m_PrefabInstance: {fileID: 0}
172 | m_PrefabAsset: {fileID: 0}
173 | serializedVersion: 6
174 | m_Component:
175 | - component: {fileID: 1968916247}
176 | - component: {fileID: 1968916246}
177 | - component: {fileID: 1968916245}
178 | m_Layer: 0
179 | m_Name: Camera
180 | m_TagString: Untagged
181 | m_Icon: {fileID: 0}
182 | m_NavMeshLayer: 0
183 | m_StaticEditorFlags: 0
184 | m_IsActive: 1
185 | --- !u!81 &1968916245
186 | AudioListener:
187 | m_ObjectHideFlags: 0
188 | m_CorrespondingSourceObject: {fileID: 0}
189 | m_PrefabInstance: {fileID: 0}
190 | m_PrefabAsset: {fileID: 0}
191 | m_GameObject: {fileID: 1968916244}
192 | m_Enabled: 1
193 | --- !u!20 &1968916246
194 | Camera:
195 | m_ObjectHideFlags: 0
196 | m_CorrespondingSourceObject: {fileID: 0}
197 | m_PrefabInstance: {fileID: 0}
198 | m_PrefabAsset: {fileID: 0}
199 | m_GameObject: {fileID: 1968916244}
200 | m_Enabled: 1
201 | serializedVersion: 2
202 | m_ClearFlags: 1
203 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
204 | m_projectionMatrixMode: 1
205 | m_GateFitMode: 2
206 | m_FOVAxisMode: 0
207 | m_SensorSize: {x: 36, y: 24}
208 | m_LensShift: {x: 0, y: 0}
209 | m_FocalLength: 50
210 | m_NormalizedViewPortRect:
211 | serializedVersion: 2
212 | x: 0
213 | y: 0
214 | width: 1
215 | height: 1
216 | near clip plane: 0.3
217 | far clip plane: 1000
218 | field of view: 60
219 | orthographic: 0
220 | orthographic size: 5
221 | m_Depth: 0
222 | m_CullingMask:
223 | serializedVersion: 2
224 | m_Bits: 4294967295
225 | m_RenderingPath: -1
226 | m_TargetTexture: {fileID: 0}
227 | m_TargetDisplay: 0
228 | m_TargetEye: 3
229 | m_HDR: 1
230 | m_AllowMSAA: 1
231 | m_AllowDynamicResolution: 0
232 | m_ForceIntoRT: 0
233 | m_OcclusionCulling: 1
234 | m_StereoConvergence: 10
235 | m_StereoSeparation: 0.022
236 | --- !u!4 &1968916247
237 | Transform:
238 | m_ObjectHideFlags: 0
239 | m_CorrespondingSourceObject: {fileID: 0}
240 | m_PrefabInstance: {fileID: 0}
241 | m_PrefabAsset: {fileID: 0}
242 | m_GameObject: {fileID: 1968916244}
243 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
244 | m_LocalPosition: {x: 0, y: 0, z: 0}
245 | m_LocalScale: {x: 1, y: 1, z: 1}
246 | m_Children: []
247 | m_Father: {fileID: 0}
248 | m_RootOrder: 0
249 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
250 |
--------------------------------------------------------------------------------
/SocketClient/Assets/Scripts/Socket/SocketClient.cs:
--------------------------------------------------------------------------------
1 |
2 |
3 | using System;
4 | using System.IO;
5 | using System.Net;
6 | using System.Net.Sockets;
7 | using System.Threading;
8 | using System.Timers;
9 |
10 |
11 |
12 | ///
13 | /// Socket客户端
14 | ///
15 | public class SocketClient
16 | {
17 | ///
18 | /// 主线程
19 | ///
20 | private SynchronizationContext _mainThread;
21 |
22 |
23 | public string IP;
24 | public int Port;
25 |
26 | private const int TIMEOUT_CONNECT = 3000; // 连接超时时间 毫秒
27 | private const int TIMEOUT_SEND = 3000; // 发送超时时间 毫秒
28 | private const int TIMEOUT_RECEIVE = 3000; //接收超时时间 毫秒
29 |
30 | private const int HEAD_OFFSET = 2000; //心跳包发送间隔 毫秒
31 | private const int RECONN_MAX_SUM = 3; //最大重连次数
32 |
33 | private Socket _client;
34 | private Thread _receiveThread;
35 | private System.Timers.Timer _connTimeoutTimer;
36 | private System.Timers.Timer _headTimer;
37 | private DataBuffer _dataBuffer = new DataBuffer();
38 |
39 | public event Action OnConnectSuccess; // 连接成功回调
40 | public event Action OnConnectError; // 连接失败回调
41 | public event Action OnDisconnect; // 断开回调
42 | public event Action OnReceive; // 接收报文回调
43 | public event Action OnSend; // 发送报文回调
44 | public event Action OnError; // 异常捕获回调
45 | public event Action OnReConnectSuccess; // 重连成功回调
46 | public event Action OnReConnectError; // 单次重连失败回调
47 | public event Action OnReconnecting; // 单次重连中回调
48 |
49 | private bool _isConnect = false;
50 | private bool _isReconnect = false;
51 |
52 |
53 | public SocketClient(string ip, int port)
54 | {
55 | _mainThread = SynchronizationContext.Current;
56 |
57 | IP = ip;
58 | Port = port;
59 | }
60 | public void Connect(Action success = null, Action error = null)
61 | {
62 | Action onTrigger = (flag) =>
63 | {
64 | if (flag)
65 | {
66 | PostMainThreadAction(success);
67 | PostMainThreadAction(OnConnectSuccess);
68 | }
69 | else
70 | {
71 | PostMainThreadAction(error);
72 | PostMainThreadAction(OnConnectError);
73 | }
74 | if (_connTimeoutTimer != null)
75 | {
76 | _connTimeoutTimer.Stop();
77 | _connTimeoutTimer = null;
78 | }
79 | };
80 | try
81 | {
82 | _client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建套接字
83 | _client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, TIMEOUT_SEND);
84 | _client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, TIMEOUT_RECEIVE);
85 | IPAddress ipAddress = IPAddress.Parse(IP);//解析IP地址
86 | IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, Port);
87 | IAsyncResult result = _client.BeginConnect(ipEndpoint, new AsyncCallback((iar) =>
88 | {
89 | try
90 | {
91 | Socket client = (Socket)iar.AsyncState;
92 | client.EndConnect(iar);
93 |
94 | _isConnect = true;
95 | // 开始发送心跳包
96 | _headTimer = new System.Timers.Timer(HEAD_OFFSET);
97 | _headTimer.AutoReset = true;
98 | _headTimer.Elapsed += delegate (object sender, ElapsedEventArgs args)
99 | {
100 | Send((UInt16)SocketEvent.sc_head);
101 | };
102 | _headTimer.Start();
103 |
104 | // 开始接收数据
105 | _receiveThread = new Thread(new ThreadStart(ReceiveEvent));
106 | _receiveThread.IsBackground = true;
107 | _receiveThread.Start();
108 |
109 | onTrigger(true);
110 | }
111 | catch (SocketException ex)
112 | {
113 | onTrigger(false);
114 | }
115 | }), _client);//异步连接
116 |
117 | _connTimeoutTimer = new System.Timers.Timer(TIMEOUT_CONNECT);
118 | _connTimeoutTimer.AutoReset = false;
119 | _connTimeoutTimer.Elapsed += delegate (object sender, ElapsedEventArgs args)
120 | {
121 | onTrigger(false);
122 | };
123 | _connTimeoutTimer.Start();
124 |
125 | }
126 | catch (SocketException ex)
127 | {
128 | onTrigger(false);
129 | // throw;
130 | }
131 | }
132 | ///
133 | /// 断线重连
134 | ///
135 | ///
136 | public void ReConnect(int num = RECONN_MAX_SUM, int index = 0)
137 | {
138 | _isReconnect = true;
139 |
140 | num--;
141 | index++;
142 | if (num < 0)
143 | {
144 | onDisconnect();
145 | _isReconnect = false;
146 | return;
147 | }
148 | PostMainThreadAction(OnReconnecting, index);
149 | Connect(() =>
150 | {
151 | PostMainThreadAction(OnReConnectSuccess, index);
152 | _isReconnect = false;
153 | }, () =>
154 | {
155 | PostMainThreadAction(OnReConnectError, index);
156 | ReConnect(num, index);
157 | });
158 |
159 | }
160 | public void Send(UInt16 e, byte[] buff = null, Action onTrigger = null)
161 | {
162 | buff = buff ?? new byte[] { };
163 | var dataPack = new SocketDataPack(e, buff);
164 | var data = dataPack.Buff;
165 | try
166 | {
167 | _client.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback((asyncSend) =>
168 | {
169 | Socket c = (Socket)asyncSend.AsyncState;
170 | c.EndSend(asyncSend);
171 | PostMainThreadAction(onTrigger, dataPack);
172 | PostMainThreadAction(OnSend, dataPack);
173 | }), _client);
174 | }
175 | catch (SocketException ex)
176 | {
177 | onError(ex);
178 | }
179 |
180 | }
181 | ///
182 | /// 线程内接收数据的函数
183 | ///
184 | private void ReceiveEvent()
185 | {
186 | while (true)
187 | {
188 | try
189 | {
190 | if (!_isConnect) break;
191 | if (_client.Available <= 0) continue;
192 | byte[] rbytes = new byte[8 * 1024];
193 | int len = _client.Receive(rbytes);
194 | if (len > 0)
195 | {
196 | _dataBuffer.AddBuffer(rbytes, len); // 将收到的数据添加到缓存器中
197 | var dataPack = new SocketDataPack();
198 | if (_dataBuffer.TryUnpack(out dataPack)) // 尝试解包
199 | {
200 | if (dataPack.Type == (UInt16)SocketEvent.sc_kickout)
201 | {
202 | // 服务端踢出
203 | onDisconnect();
204 | }
205 | else
206 | {
207 | // 收到消息
208 | PostMainThreadAction(OnReceive, dataPack);
209 | }
210 | }
211 | }
212 | }
213 | catch (SocketException ex)
214 | {
215 | onError(ex);
216 | // throw;
217 | }
218 | }
219 | }
220 | ///
221 | /// 业务逻辑 - 客户端主动断开
222 | ///
223 | public void DisConnect()
224 | {
225 | Send((UInt16)SocketEvent.sc_disconn);
226 | onDisconnect();
227 | }
228 |
229 | ///
230 | /// 缓存数据清理
231 | ///
232 | public void Close()
233 | {
234 | if (!_isConnect) return;
235 | _isConnect = false;
236 | if (_headTimer != null)
237 | {
238 | _headTimer.Stop();
239 | _headTimer = null;
240 | }
241 | // if (_receiveThread != null)
242 | // {
243 | // _receiveThread.Abort();
244 | // _receiveThread = null;
245 | // }
246 | if (_connTimeoutTimer != null)
247 | {
248 | _connTimeoutTimer.Stop();
249 | _connTimeoutTimer = null;
250 | }
251 | if (_client != null)
252 | {
253 | _client.Close();
254 | _client = null;
255 | }
256 |
257 |
258 |
259 | }
260 |
261 |
262 | ///
263 | /// 错误回调
264 | ///
265 | ///
266 | private void onError(SocketException ex)
267 | {
268 | Close();
269 |
270 | PostMainThreadAction(OnError, ex);
271 |
272 | if (!_isReconnect)
273 | {
274 | ReConnect();
275 | }
276 | }
277 |
278 |
279 | ///
280 | /// 断开回调
281 | ///
282 | private void onDisconnect()
283 | {
284 |
285 | Close();
286 |
287 | PostMainThreadAction(OnDisconnect);
288 | }
289 |
290 | ///
291 | /// 通知主线程回调
292 | ///
293 | private void PostMainThreadAction(Action action)
294 | {
295 | _mainThread.Post(new SendOrPostCallback((o) =>
296 | {
297 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
298 | if (e != null) e();
299 | }), new { action = action });
300 | }
301 | private void PostMainThreadAction(Action action, T arg1)
302 | {
303 | _mainThread.Post(new SendOrPostCallback((o) =>
304 | {
305 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
306 | T t1 = (T)o.GetType().GetProperty("arg1").GetValue(o);
307 | if (e != null) e(t1);
308 | }), new { action = action, arg1 = arg1 });
309 | }
310 | public void PostMainThreadAction(Action action, T1 arg1, T2 arg2)
311 | {
312 | _mainThread.Post(new SendOrPostCallback((o) =>
313 | {
314 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
315 | T1 t1 = (T1)o.GetType().GetProperty("arg1").GetValue(o);
316 | T2 t2 = (T2)o.GetType().GetProperty("arg2").GetValue(o);
317 | if (e != null) e(t1, t2);
318 | }), new { action = action, arg1 = arg1, arg2 = arg2 });
319 | }
320 | }
321 |
--------------------------------------------------------------------------------
/SocketServer/Assets/Scripts/Socket/SocketServer.cs:
--------------------------------------------------------------------------------
1 |
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Net;
7 | using System.Net.Sockets;
8 | using System.Threading;
9 | using System.Timers;
10 |
11 | public class SocketInfo
12 | {
13 | public Socket Client;
14 | public Thread ReceiveThread;
15 | public long HeadTime;
16 | }
17 |
18 | ///
19 | /// Socket服务端
20 | ///
21 | public class SocketServer
22 | {
23 | ///
24 | /// 主线程
25 | ///
26 | private SynchronizationContext _mainThread;
27 |
28 |
29 |
30 | public string IP;
31 | public int Port;
32 |
33 | private const int HEAD_TIMEOUT = 5000; // 心跳超时 毫秒
34 | private const int HEAD_CHECKTIME = 5000; // 心跳包超时检测 毫秒
35 |
36 | public Dictionary ClientInfoDic = new Dictionary();
37 |
38 | private Socket _server;
39 | private Thread _connectThread;
40 | private System.Timers.Timer _headCheckTimer;
41 | private DataBuffer _dataBuffer = new DataBuffer();
42 |
43 | public event Action OnConnect; //客户端建立连接回调
44 | public event Action OnDisconnect; // 客户端断开连接回调
45 | public event Action OnReceive; // 接收报文回调
46 | public event Action OnSend; // 发送报文回调
47 |
48 | // 目前捕获异常将触发OnDisconnect回调 暂不单独处理
49 | // public event Action OnError; // 异常捕获回调
50 |
51 | private bool _isValid = true;
52 |
53 | public SocketServer(string ip, int port)
54 | {
55 | _mainThread = SynchronizationContext.Current;
56 |
57 | IP = ip;
58 | Port = port;
59 |
60 | _server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
61 | IPAddress ipAddress = IPAddress.Parse(IP);//解析IP地址
62 | _server.Bind(new IPEndPoint(ipAddress, Port)); //绑定IP地址:端口
63 |
64 | _server.Listen(10); //设定最多10个排队连接请求
65 |
66 | // 启动线程监听连接
67 | _connectThread = new Thread(ListenClientConnect);
68 | _connectThread.Start();
69 |
70 | // 心跳包定时检测
71 | _headCheckTimer = new System.Timers.Timer(HEAD_CHECKTIME);
72 | _headCheckTimer.AutoReset = true;
73 | _headCheckTimer.Elapsed += delegate (object sender, ElapsedEventArgs args)
74 | {
75 | CheckHeadTimeOut();
76 | };
77 | _headCheckTimer.Start();
78 | }
79 | ///
80 | /// 监听客户端连接
81 | ///
82 | private void ListenClientConnect()
83 | {
84 | while (true)
85 | {
86 | try
87 | {
88 | if (!_isValid) break;
89 | Socket client = _server.Accept();
90 | Thread receiveThread = new Thread(ReceiveEvent);
91 | ClientInfoDic.Add(client, new SocketInfo() { Client = client, ReceiveThread = receiveThread, HeadTime = GetNowTime() });
92 | receiveThread.Start(client);
93 |
94 | PostMainThreadAction(OnConnect, client);
95 |
96 |
97 | }
98 | catch
99 | {
100 | break;
101 | }
102 |
103 | }
104 |
105 | }
106 | ///
107 | /// 获取当前时间戳
108 | ///
109 | ///
110 | private long GetNowTime()
111 | {
112 | TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
113 | return Convert.ToInt64(ts.TotalMilliseconds);
114 | }
115 |
116 | public void Send(Socket client, UInt16 e, byte[] buff = null, Action onTrigger = null)
117 | {
118 | buff = buff ?? new byte[] { };
119 | var dataPack = new SocketDataPack(e, buff);
120 | var data = dataPack.Buff;
121 | try
122 | {
123 | client.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback((asyncSend) =>
124 | {
125 | Socket c = (Socket)asyncSend.AsyncState;
126 | c.EndSend(asyncSend);
127 | PostMainThreadAction(onTrigger, dataPack);
128 | PostMainThreadAction(OnSend, client, dataPack);
129 | }), client);
130 | }
131 | catch (SocketException ex)
132 | {
133 | CloseClient(client);
134 | // onError(ex);
135 | }
136 |
137 | }
138 | ///
139 | /// 线程内接收数据的函数
140 | ///
141 | private void ReceiveEvent(object client)
142 | {
143 | Socket tsocket = (Socket)client;
144 | while (true)
145 | {
146 | if (!_isValid) return;
147 | if (!ClientInfoDic.ContainsKey(tsocket))
148 | {
149 | return;
150 | }
151 | try
152 | {
153 | byte[] rbytes = new byte[8 * 1024];
154 | int len = tsocket.Receive(rbytes);
155 | if (len > 0)
156 | {
157 | _dataBuffer.AddBuffer(rbytes, len); // 将收到的数据添加到缓存器中
158 | var dataPack = new SocketDataPack();
159 | if (_dataBuffer.TryUnpack(out dataPack)) // 尝试解包
160 | {
161 | if (dataPack.Type == (UInt16)SocketEvent.sc_head)
162 | {
163 | // 接收到心跳包
164 | ReceiveHead(tsocket);
165 | }
166 | else if (dataPack.Type == (UInt16)SocketEvent.sc_disconn)
167 | {
168 | // 客户端断开连接
169 | CloseClient(tsocket);
170 | }
171 | else
172 | {
173 | // 收到消息
174 | PostMainThreadAction(OnReceive, tsocket, dataPack);
175 | }
176 |
177 | }
178 | }
179 | else
180 | {
181 | if (tsocket.Poll(-1, SelectMode.SelectRead))
182 | {
183 | CloseClient(tsocket);
184 | return;
185 | }
186 | }
187 | }
188 | catch (SocketException ex)
189 | {
190 | CloseClient(tsocket);
191 | // onError(ex);
192 | return;
193 | }
194 | }
195 | }
196 | ///
197 | /// 接收到心跳包
198 | ///
199 | private void ReceiveHead(Socket client)
200 | {
201 | SocketInfo info;
202 | if (ClientInfoDic.TryGetValue(client, out info))
203 | {
204 | long now = GetNowTime();
205 | long offset = now - info.HeadTime;
206 | UnityEngine.Debug.Log("更新心跳时间戳 >>>" + now + " 间隔>>>" + offset);
207 | if (offset > HEAD_TIMEOUT)
208 | {
209 | // 心跳包收到但超时逻辑
210 | }
211 | info.HeadTime = now;
212 | }
213 | }
214 | ///
215 | /// 检测心跳包超时
216 | ///
217 | private void CheckHeadTimeOut()
218 | {
219 | var tempList = new List();
220 | foreach (var socket in ClientInfoDic.Keys)
221 | {
222 | tempList.Add(socket);
223 | }
224 | foreach (var socket in tempList)
225 | {
226 | var info = ClientInfoDic[socket];
227 | long now = GetNowTime();
228 | long offset = now - info.HeadTime;
229 | if (offset > HEAD_TIMEOUT)
230 | {
231 | // 心跳包超时
232 | KickOut(socket);
233 | }
234 | }
235 | }
236 | public void KickOut(Socket client)
237 | {
238 | // 踢出连接
239 | Send(client, (UInt16)SocketEvent.sc_kickout, null, (dataPack) =>
240 | {
241 | CloseClient(client);
242 | });
243 | }
244 | public void KickOutAll()
245 | {
246 | var tempList = new List();
247 | foreach (var socket in ClientInfoDic.Keys)
248 | {
249 | tempList.Add(socket);
250 | }
251 | foreach (var socket in tempList)
252 | {
253 | KickOut(socket);
254 | }
255 | }
256 | ///
257 | /// 清理客户端连接
258 | ///
259 | ///
260 | private void CloseClient(Socket client)
261 | {
262 | PostMainThreadAction((socket) =>
263 | {
264 | if (OnDisconnect != null) OnDisconnect(socket);
265 | ClientInfoDic.Remove(socket);
266 | socket.Close();
267 | }, client);
268 |
269 | }
270 | ///
271 | /// 关闭
272 | ///
273 | public void Close()
274 | {
275 | if (!_isValid) return;
276 | _isValid = false;
277 | // if (_connectThread != null) _connectThread.Abort();
278 | var tempList = new List();
279 | foreach (var socket in ClientInfoDic.Keys)
280 | {
281 | tempList.Add(socket);
282 | }
283 | foreach (var socket in tempList)
284 | {
285 | CloseClient(socket);
286 | }
287 | if (_headCheckTimer != null)
288 | {
289 | _headCheckTimer.Stop();
290 | _headCheckTimer = null;
291 | }
292 | _server.Close();
293 | }
294 |
295 | // ///
296 | // /// 错误回调
297 | // ///
298 | // ///
299 | // private void onError(SocketException ex)
300 | // {
301 | // PostMainThreadAction(OnError, ex);
302 | // }
303 |
304 |
305 | //
306 | /// 通知主线程回调
307 | ///
308 | private void PostMainThreadAction(Action action)
309 | {
310 | _mainThread.Post(new SendOrPostCallback((o) =>
311 | {
312 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
313 | if (e != null) e();
314 | }), new { action = action });
315 | }
316 | private void PostMainThreadAction(Action action, T arg1)
317 | {
318 | _mainThread.Post(new SendOrPostCallback((o) =>
319 | {
320 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
321 | T t1 = (T)o.GetType().GetProperty("arg1").GetValue(o);
322 | if (e != null) e(t1);
323 | }), new { action = action, arg1 = arg1 });
324 | }
325 | public void PostMainThreadAction(Action action, T1 arg1, T2 arg2)
326 | {
327 | _mainThread.Post(new SendOrPostCallback((o) =>
328 | {
329 | Action e = (Action)o.GetType().GetProperty("action").GetValue(o);
330 | T1 t1 = (T1)o.GetType().GetProperty("arg1").GetValue(o);
331 | T2 t2 = (T2)o.GetType().GetProperty("arg2").GetValue(o);
332 | if (e != null) e(t1, t2);
333 | }), new { action = action, arg1 = arg1, arg2 = arg2 });
334 | }
335 | }
336 |
--------------------------------------------------------------------------------
/SocketClient/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: f94479c3299aa1f408d760bf7bbc9edf
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: SocketClient
17 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
18 | m_ShowUnitySplashScreen: 1
19 | m_ShowUnitySplashLogo: 1
20 | m_SplashScreenOverlayOpacity: 1
21 | m_SplashScreenAnimation: 1
22 | m_SplashScreenLogoStyle: 1
23 | m_SplashScreenDrawMode: 0
24 | m_SplashScreenBackgroundAnimationZoom: 1
25 | m_SplashScreenLogoAnimationZoom: 1
26 | m_SplashScreenBackgroundLandscapeAspect: 1
27 | m_SplashScreenBackgroundPortraitAspect: 1
28 | m_SplashScreenBackgroundLandscapeUvs:
29 | serializedVersion: 2
30 | x: 0
31 | y: 0
32 | width: 1
33 | height: 1
34 | m_SplashScreenBackgroundPortraitUvs:
35 | serializedVersion: 2
36 | x: 0
37 | y: 0
38 | width: 1
39 | height: 1
40 | m_SplashScreenLogos: []
41 | m_VirtualRealitySplashScreen: {fileID: 0}
42 | m_ShowUnitySplashAds: 0
43 | m_AdsAndroidGameId:
44 | m_AdsIosGameId:
45 | m_ShowSplashAdsSlogan: 0
46 | m_SloganImage: {fileID: 0}
47 | m_SloganHeight: 150
48 | defaultCursor: {fileID: 0}
49 | cursorHotspot: {x: 0, y: 0}
50 | m_HolographicTrackingLossScreen: {fileID: 0}
51 | defaultScreenWidth: 1024
52 | defaultScreenHeight: 768
53 | defaultScreenWidthWeb: 960
54 | defaultScreenHeightWeb: 600
55 | m_StereoRenderingPath: 0
56 | m_ActiveColorSpace: 0
57 | m_MTRendering: 1
58 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
59 | iosShowActivityIndicatorOnLoading: -1
60 | androidShowActivityIndicatorOnLoading: -1
61 | iosUseCustomAppBackgroundBehavior: 0
62 | iosAllowHTTPDownload: 1
63 | allowedAutorotateToPortrait: 1
64 | allowedAutorotateToPortraitUpsideDown: 1
65 | allowedAutorotateToLandscapeRight: 1
66 | allowedAutorotateToLandscapeLeft: 1
67 | useOSAutorotation: 1
68 | use32BitDisplayBuffer: 1
69 | preserveFramebufferAlpha: 0
70 | disableDepthAndStencilBuffers: 0
71 | androidStartInFullscreen: 1
72 | androidRenderOutsideSafeArea: 1
73 | androidUseSwappy: 0
74 | androidBlitType: 0
75 | defaultIsNativeResolution: 1
76 | macRetinaSupport: 1
77 | runInBackground: 1
78 | captureSingleScreen: 0
79 | muteOtherAudioSources: 0
80 | Prepare IOS For Recording: 0
81 | Force IOS Speakers When Recording: 0
82 | deferSystemGesturesMode: 0
83 | hideHomeButton: 0
84 | submitAnalytics: 1
85 | usePlayerLog: 1
86 | bakeCollisionMeshes: 0
87 | forceSingleInstance: 0
88 | useFlipModelSwapchain: 1
89 | resizableWindow: 0
90 | useMacAppStoreValidation: 0
91 | macAppStoreCategory: public.app-category.games
92 | gpuSkinning: 1
93 | xboxPIXTextureCapture: 0
94 | xboxEnableAvatar: 0
95 | xboxEnableKinect: 0
96 | xboxEnableKinectAutoTracking: 0
97 | xboxEnableFitness: 0
98 | visibleInBackground: 1
99 | allowFullscreenSwitch: 1
100 | fullscreenMode: 1
101 | xboxSpeechDB: 0
102 | xboxEnableHeadOrientation: 0
103 | xboxEnableGuest: 0
104 | xboxEnablePIXSampling: 0
105 | metalFramebufferOnly: 0
106 | xboxOneResolution: 0
107 | xboxOneSResolution: 0
108 | xboxOneXResolution: 3
109 | xboxOneMonoLoggingLevel: 0
110 | xboxOneLoggingLevel: 1
111 | xboxOneDisableEsram: 0
112 | xboxOneEnableTypeOptimization: 0
113 | xboxOnePresentImmediateThreshold: 0
114 | switchQueueCommandMemory: 0
115 | switchQueueControlMemory: 16384
116 | switchQueueComputeMemory: 262144
117 | switchNVNShaderPoolsGranularity: 33554432
118 | switchNVNDefaultPoolsGranularity: 16777216
119 | switchNVNOtherPoolsGranularity: 16777216
120 | switchNVNMaxPublicTextureIDCount: 0
121 | switchNVNMaxPublicSamplerIDCount: 0
122 | stadiaPresentMode: 0
123 | stadiaTargetFramerate: 0
124 | vulkanNumSwapchainBuffers: 3
125 | vulkanEnableSetSRGBWrite: 0
126 | vulkanEnableLateAcquireNextImage: 0
127 | useSecurityBuild: 0
128 | m_SupportedAspectRatios:
129 | 4:3: 1
130 | 5:4: 1
131 | 16:10: 1
132 | 16:9: 1
133 | Others: 1
134 | bundleVersion: 0.1
135 | preloadedAssets: []
136 | metroInputSource: 0
137 | wsaTransparentSwapchain: 0
138 | m_HolographicPauseOnTrackingLoss: 1
139 | xboxOneDisableKinectGpuReservation: 1
140 | xboxOneEnable7thCore: 1
141 | vrSettings:
142 | cardboard:
143 | depthFormat: 0
144 | enableTransitionView: 0
145 | daydream:
146 | depthFormat: 0
147 | useSustainedPerformanceMode: 0
148 | enableVideoLayer: 0
149 | useProtectedVideoMemory: 0
150 | minimumSupportedHeadTracking: 0
151 | maximumSupportedHeadTracking: 1
152 | hololens:
153 | depthFormat: 1
154 | depthBufferSharingEnabled: 1
155 | lumin:
156 | depthFormat: 0
157 | frameTiming: 2
158 | enableGLCache: 0
159 | glCacheMaxBlobSize: 524288
160 | glCacheMaxFileSize: 8388608
161 | oculus:
162 | sharedDepthBuffer: 1
163 | dashSupport: 1
164 | lowOverheadMode: 0
165 | protectedContext: 0
166 | v2Signing: 1
167 | enable360StereoCapture: 0
168 | isWsaHolographicRemotingEnabled: 0
169 | enableFrameTimingStats: 0
170 | useHDRDisplay: 0
171 | D3DHDRBitDepth: 0
172 | m_ColorGamuts: 00000000
173 | targetPixelDensity: 30
174 | resolutionScalingMode: 0
175 | androidSupportedAspectRatio: 1
176 | androidMaxAspectRatio: 2.1
177 | applicationIdentifier: {}
178 | buildNumber: {}
179 | AndroidBundleVersionCode: 1
180 | AndroidMinSdkVersion: 19
181 | AndroidTargetSdkVersion: 0
182 | AndroidPreferredInstallLocation: 1
183 | aotOptions:
184 | stripEngineCode: 1
185 | iPhoneStrippingLevel: 0
186 | iPhoneScriptCallOptimization: 0
187 | ForceInternetPermission: 0
188 | ForceSDCardPermission: 0
189 | CreateWallpaper: 0
190 | APKExpansionFiles: 0
191 | keepLoadedShadersAlive: 0
192 | StripUnusedMeshComponents: 1
193 | VertexChannelCompressionMask: 4054
194 | iPhoneSdkVersion: 988
195 | iOSTargetOSVersionString: 10.0
196 | tvOSSdkVersion: 0
197 | tvOSRequireExtendedGameController: 0
198 | tvOSTargetOSVersionString: 10.0
199 | uIPrerenderedIcon: 0
200 | uIRequiresPersistentWiFi: 0
201 | uIRequiresFullScreen: 1
202 | uIStatusBarHidden: 1
203 | uIExitOnSuspend: 0
204 | uIStatusBarStyle: 0
205 | appleTVSplashScreen: {fileID: 0}
206 | appleTVSplashScreen2x: {fileID: 0}
207 | tvOSSmallIconLayers: []
208 | tvOSSmallIconLayers2x: []
209 | tvOSLargeIconLayers: []
210 | tvOSLargeIconLayers2x: []
211 | tvOSTopShelfImageLayers: []
212 | tvOSTopShelfImageLayers2x: []
213 | tvOSTopShelfImageWideLayers: []
214 | tvOSTopShelfImageWideLayers2x: []
215 | iOSLaunchScreenType: 0
216 | iOSLaunchScreenPortrait: {fileID: 0}
217 | iOSLaunchScreenLandscape: {fileID: 0}
218 | iOSLaunchScreenBackgroundColor:
219 | serializedVersion: 2
220 | rgba: 0
221 | iOSLaunchScreenFillPct: 100
222 | iOSLaunchScreenSize: 100
223 | iOSLaunchScreenCustomXibPath:
224 | iOSLaunchScreeniPadType: 0
225 | iOSLaunchScreeniPadImage: {fileID: 0}
226 | iOSLaunchScreeniPadBackgroundColor:
227 | serializedVersion: 2
228 | rgba: 0
229 | iOSLaunchScreeniPadFillPct: 100
230 | iOSLaunchScreeniPadSize: 100
231 | iOSLaunchScreeniPadCustomXibPath:
232 | iOSUseLaunchScreenStoryboard: 0
233 | iOSLaunchScreenCustomStoryboardPath:
234 | iOSDeviceRequirements: []
235 | iOSURLSchemes: []
236 | iOSBackgroundModes: 0
237 | iOSMetalForceHardShadows: 0
238 | metalEditorSupport: 1
239 | metalAPIValidation: 1
240 | iOSRenderExtraFrameOnPause: 0
241 | appleDeveloperTeamID:
242 | iOSManualSigningProvisioningProfileID:
243 | tvOSManualSigningProvisioningProfileID:
244 | iOSManualSigningProvisioningProfileType: 0
245 | tvOSManualSigningProvisioningProfileType: 0
246 | appleEnableAutomaticSigning: 0
247 | iOSRequireARKit: 0
248 | iOSAutomaticallyDetectAndAddCapabilities: 1
249 | appleEnableProMotion: 0
250 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
251 | templatePackageId: com.unity.template.3d@4.2.8
252 | templateDefaultScene: Assets/Scenes/SampleScene.unity
253 | AndroidTargetArchitectures: 1
254 | AndroidSplashScreenScale: 0
255 | androidSplashScreen: {fileID: 0}
256 | AndroidKeystoreName:
257 | AndroidKeyaliasName:
258 | AndroidBuildApkPerCpuArchitecture: 0
259 | AndroidTVCompatibility: 0
260 | AndroidIsGame: 1
261 | AndroidEnableTango: 0
262 | androidEnableBanner: 1
263 | androidUseLowAccuracyLocation: 0
264 | androidUseCustomKeystore: 0
265 | m_AndroidBanners:
266 | - width: 320
267 | height: 180
268 | banner: {fileID: 0}
269 | androidGamepadSupportLevel: 0
270 | AndroidValidateAppBundleSize: 1
271 | AndroidAppBundleSizeToValidate: 150
272 | m_BuildTargetIcons: []
273 | m_BuildTargetPlatformIcons:
274 | - m_BuildTarget: Android
275 | m_Icons:
276 | - m_Textures: []
277 | m_Width: 432
278 | m_Height: 432
279 | m_Kind: 2
280 | m_SubKind:
281 | - m_Textures: []
282 | m_Width: 324
283 | m_Height: 324
284 | m_Kind: 2
285 | m_SubKind:
286 | - m_Textures: []
287 | m_Width: 216
288 | m_Height: 216
289 | m_Kind: 2
290 | m_SubKind:
291 | - m_Textures: []
292 | m_Width: 162
293 | m_Height: 162
294 | m_Kind: 2
295 | m_SubKind:
296 | - m_Textures: []
297 | m_Width: 108
298 | m_Height: 108
299 | m_Kind: 2
300 | m_SubKind:
301 | - m_Textures: []
302 | m_Width: 81
303 | m_Height: 81
304 | m_Kind: 2
305 | m_SubKind:
306 | - m_Textures: []
307 | m_Width: 192
308 | m_Height: 192
309 | m_Kind: 0
310 | m_SubKind:
311 | - m_Textures: []
312 | m_Width: 144
313 | m_Height: 144
314 | m_Kind: 0
315 | m_SubKind:
316 | - m_Textures: []
317 | m_Width: 96
318 | m_Height: 96
319 | m_Kind: 0
320 | m_SubKind:
321 | - m_Textures: []
322 | m_Width: 72
323 | m_Height: 72
324 | m_Kind: 0
325 | m_SubKind:
326 | - m_Textures: []
327 | m_Width: 48
328 | m_Height: 48
329 | m_Kind: 0
330 | m_SubKind:
331 | - m_Textures: []
332 | m_Width: 36
333 | m_Height: 36
334 | m_Kind: 0
335 | m_SubKind:
336 | - m_Textures: []
337 | m_Width: 192
338 | m_Height: 192
339 | m_Kind: 1
340 | m_SubKind:
341 | - m_Textures: []
342 | m_Width: 144
343 | m_Height: 144
344 | m_Kind: 1
345 | m_SubKind:
346 | - m_Textures: []
347 | m_Width: 96
348 | m_Height: 96
349 | m_Kind: 1
350 | m_SubKind:
351 | - m_Textures: []
352 | m_Width: 72
353 | m_Height: 72
354 | m_Kind: 1
355 | m_SubKind:
356 | - m_Textures: []
357 | m_Width: 48
358 | m_Height: 48
359 | m_Kind: 1
360 | m_SubKind:
361 | - m_Textures: []
362 | m_Width: 36
363 | m_Height: 36
364 | m_Kind: 1
365 | m_SubKind:
366 | m_BuildTargetBatching:
367 | - m_BuildTarget: Standalone
368 | m_StaticBatching: 1
369 | m_DynamicBatching: 0
370 | - m_BuildTarget: tvOS
371 | m_StaticBatching: 1
372 | m_DynamicBatching: 0
373 | - m_BuildTarget: Android
374 | m_StaticBatching: 1
375 | m_DynamicBatching: 0
376 | - m_BuildTarget: iPhone
377 | m_StaticBatching: 1
378 | m_DynamicBatching: 0
379 | - m_BuildTarget: WebGL
380 | m_StaticBatching: 0
381 | m_DynamicBatching: 0
382 | m_BuildTargetEncrypting: []
383 | m_BuildTargetGraphicsJobs:
384 | - m_BuildTarget: MacStandaloneSupport
385 | m_GraphicsJobs: 0
386 | - m_BuildTarget: Switch
387 | m_GraphicsJobs: 1
388 | - m_BuildTarget: MetroSupport
389 | m_GraphicsJobs: 1
390 | - m_BuildTarget: AppleTVSupport
391 | m_GraphicsJobs: 0
392 | - m_BuildTarget: BJMSupport
393 | m_GraphicsJobs: 1
394 | - m_BuildTarget: LinuxStandaloneSupport
395 | m_GraphicsJobs: 1
396 | - m_BuildTarget: PS4Player
397 | m_GraphicsJobs: 1
398 | - m_BuildTarget: iOSSupport
399 | m_GraphicsJobs: 0
400 | - m_BuildTarget: WindowsStandaloneSupport
401 | m_GraphicsJobs: 1
402 | - m_BuildTarget: XboxOnePlayer
403 | m_GraphicsJobs: 1
404 | - m_BuildTarget: LuminSupport
405 | m_GraphicsJobs: 0
406 | - m_BuildTarget: AndroidPlayer
407 | m_GraphicsJobs: 0
408 | - m_BuildTarget: WebGLSupport
409 | m_GraphicsJobs: 0
410 | m_BuildTargetGraphicsJobMode:
411 | - m_BuildTarget: PS4Player
412 | m_GraphicsJobMode: 0
413 | - m_BuildTarget: XboxOnePlayer
414 | m_GraphicsJobMode: 0
415 | m_BuildTargetGraphicsAPIs:
416 | - m_BuildTarget: AndroidPlayer
417 | m_APIs: 150000000b000000
418 | m_Automatic: 0
419 | - m_BuildTarget: iOSSupport
420 | m_APIs: 10000000
421 | m_Automatic: 1
422 | - m_BuildTarget: AppleTVSupport
423 | m_APIs: 10000000
424 | m_Automatic: 0
425 | - m_BuildTarget: WebGLSupport
426 | m_APIs: 0b000000
427 | m_Automatic: 1
428 | m_BuildTargetVRSettings:
429 | - m_BuildTarget: Standalone
430 | m_Enabled: 0
431 | m_Devices:
432 | - Oculus
433 | - OpenVR
434 | openGLRequireES31: 0
435 | openGLRequireES31AEP: 0
436 | openGLRequireES32: 0
437 | m_TemplateCustomTags: {}
438 | mobileMTRendering:
439 | Android: 1
440 | iPhone: 1
441 | tvOS: 1
442 | m_BuildTargetGroupLightmapEncodingQuality: []
443 | m_BuildTargetGroupLightmapSettings: []
444 | playModeTestRunnerEnabled: 0
445 | runPlayModeTestAsEditModeTest: 0
446 | actionOnDotNetUnhandledException: 1
447 | enableInternalProfiler: 0
448 | logObjCUncaughtExceptions: 1
449 | enableCrashReportAPI: 0
450 | cameraUsageDescription:
451 | locationUsageDescription:
452 | microphoneUsageDescription:
453 | switchNetLibKey:
454 | switchSocketMemoryPoolSize: 6144
455 | switchSocketAllocatorPoolSize: 128
456 | switchSocketConcurrencyLimit: 14
457 | switchScreenResolutionBehavior: 2
458 | switchUseCPUProfiler: 0
459 | switchApplicationID: 0x01004b9000490000
460 | switchNSODependencies:
461 | switchTitleNames_0:
462 | switchTitleNames_1:
463 | switchTitleNames_2:
464 | switchTitleNames_3:
465 | switchTitleNames_4:
466 | switchTitleNames_5:
467 | switchTitleNames_6:
468 | switchTitleNames_7:
469 | switchTitleNames_8:
470 | switchTitleNames_9:
471 | switchTitleNames_10:
472 | switchTitleNames_11:
473 | switchTitleNames_12:
474 | switchTitleNames_13:
475 | switchTitleNames_14:
476 | switchPublisherNames_0:
477 | switchPublisherNames_1:
478 | switchPublisherNames_2:
479 | switchPublisherNames_3:
480 | switchPublisherNames_4:
481 | switchPublisherNames_5:
482 | switchPublisherNames_6:
483 | switchPublisherNames_7:
484 | switchPublisherNames_8:
485 | switchPublisherNames_9:
486 | switchPublisherNames_10:
487 | switchPublisherNames_11:
488 | switchPublisherNames_12:
489 | switchPublisherNames_13:
490 | switchPublisherNames_14:
491 | switchIcons_0: {fileID: 0}
492 | switchIcons_1: {fileID: 0}
493 | switchIcons_2: {fileID: 0}
494 | switchIcons_3: {fileID: 0}
495 | switchIcons_4: {fileID: 0}
496 | switchIcons_5: {fileID: 0}
497 | switchIcons_6: {fileID: 0}
498 | switchIcons_7: {fileID: 0}
499 | switchIcons_8: {fileID: 0}
500 | switchIcons_9: {fileID: 0}
501 | switchIcons_10: {fileID: 0}
502 | switchIcons_11: {fileID: 0}
503 | switchIcons_12: {fileID: 0}
504 | switchIcons_13: {fileID: 0}
505 | switchIcons_14: {fileID: 0}
506 | switchSmallIcons_0: {fileID: 0}
507 | switchSmallIcons_1: {fileID: 0}
508 | switchSmallIcons_2: {fileID: 0}
509 | switchSmallIcons_3: {fileID: 0}
510 | switchSmallIcons_4: {fileID: 0}
511 | switchSmallIcons_5: {fileID: 0}
512 | switchSmallIcons_6: {fileID: 0}
513 | switchSmallIcons_7: {fileID: 0}
514 | switchSmallIcons_8: {fileID: 0}
515 | switchSmallIcons_9: {fileID: 0}
516 | switchSmallIcons_10: {fileID: 0}
517 | switchSmallIcons_11: {fileID: 0}
518 | switchSmallIcons_12: {fileID: 0}
519 | switchSmallIcons_13: {fileID: 0}
520 | switchSmallIcons_14: {fileID: 0}
521 | switchManualHTML:
522 | switchAccessibleURLs:
523 | switchLegalInformation:
524 | switchMainThreadStackSize: 1048576
525 | switchPresenceGroupId:
526 | switchLogoHandling: 0
527 | switchReleaseVersion: 0
528 | switchDisplayVersion: 1.0.0
529 | switchStartupUserAccount: 0
530 | switchTouchScreenUsage: 0
531 | switchSupportedLanguagesMask: 0
532 | switchLogoType: 0
533 | switchApplicationErrorCodeCategory:
534 | switchUserAccountSaveDataSize: 0
535 | switchUserAccountSaveDataJournalSize: 0
536 | switchApplicationAttribute: 0
537 | switchCardSpecSize: -1
538 | switchCardSpecClock: -1
539 | switchRatingsMask: 0
540 | switchRatingsInt_0: 0
541 | switchRatingsInt_1: 0
542 | switchRatingsInt_2: 0
543 | switchRatingsInt_3: 0
544 | switchRatingsInt_4: 0
545 | switchRatingsInt_5: 0
546 | switchRatingsInt_6: 0
547 | switchRatingsInt_7: 0
548 | switchRatingsInt_8: 0
549 | switchRatingsInt_9: 0
550 | switchRatingsInt_10: 0
551 | switchRatingsInt_11: 0
552 | switchRatingsInt_12: 0
553 | switchLocalCommunicationIds_0:
554 | switchLocalCommunicationIds_1:
555 | switchLocalCommunicationIds_2:
556 | switchLocalCommunicationIds_3:
557 | switchLocalCommunicationIds_4:
558 | switchLocalCommunicationIds_5:
559 | switchLocalCommunicationIds_6:
560 | switchLocalCommunicationIds_7:
561 | switchParentalControl: 0
562 | switchAllowsScreenshot: 1
563 | switchAllowsVideoCapturing: 1
564 | switchAllowsRuntimeAddOnContentInstall: 0
565 | switchDataLossConfirmation: 0
566 | switchUserAccountLockEnabled: 0
567 | switchSystemResourceMemory: 16777216
568 | switchSupportedNpadStyles: 22
569 | switchNativeFsCacheSize: 32
570 | switchIsHoldTypeHorizontal: 0
571 | switchSupportedNpadCount: 8
572 | switchSocketConfigEnabled: 0
573 | switchTcpInitialSendBufferSize: 32
574 | switchTcpInitialReceiveBufferSize: 64
575 | switchTcpAutoSendBufferSizeMax: 256
576 | switchTcpAutoReceiveBufferSizeMax: 256
577 | switchUdpSendBufferSize: 9
578 | switchUdpReceiveBufferSize: 42
579 | switchSocketBufferEfficiency: 4
580 | switchSocketInitializeEnabled: 1
581 | switchNetworkInterfaceManagerInitializeEnabled: 1
582 | switchPlayerConnectionEnabled: 1
583 | ps4NPAgeRating: 12
584 | ps4NPTitleSecret:
585 | ps4NPTrophyPackPath:
586 | ps4ParentalLevel: 11
587 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
588 | ps4Category: 0
589 | ps4MasterVersion: 01.00
590 | ps4AppVersion: 01.00
591 | ps4AppType: 0
592 | ps4ParamSfxPath:
593 | ps4VideoOutPixelFormat: 0
594 | ps4VideoOutInitialWidth: 1920
595 | ps4VideoOutBaseModeInitialWidth: 1920
596 | ps4VideoOutReprojectionRate: 60
597 | ps4PronunciationXMLPath:
598 | ps4PronunciationSIGPath:
599 | ps4BackgroundImagePath:
600 | ps4StartupImagePath:
601 | ps4StartupImagesFolder:
602 | ps4IconImagesFolder:
603 | ps4SaveDataImagePath:
604 | ps4SdkOverride:
605 | ps4BGMPath:
606 | ps4ShareFilePath:
607 | ps4ShareOverlayImagePath:
608 | ps4PrivacyGuardImagePath:
609 | ps4ExtraSceSysFile:
610 | ps4NPtitleDatPath:
611 | ps4RemotePlayKeyAssignment: -1
612 | ps4RemotePlayKeyMappingDir:
613 | ps4PlayTogetherPlayerCount: 0
614 | ps4EnterButtonAssignment: 1
615 | ps4ApplicationParam1: 0
616 | ps4ApplicationParam2: 0
617 | ps4ApplicationParam3: 0
618 | ps4ApplicationParam4: 0
619 | ps4DownloadDataSize: 0
620 | ps4GarlicHeapSize: 2048
621 | ps4ProGarlicHeapSize: 2560
622 | playerPrefsMaxSize: 32768
623 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
624 | ps4pnSessions: 1
625 | ps4pnPresence: 1
626 | ps4pnFriends: 1
627 | ps4pnGameCustomData: 1
628 | playerPrefsSupport: 0
629 | enableApplicationExit: 0
630 | resetTempFolder: 1
631 | restrictedAudioUsageRights: 0
632 | ps4UseResolutionFallback: 0
633 | ps4ReprojectionSupport: 0
634 | ps4UseAudio3dBackend: 0
635 | ps4UseLowGarlicFragmentationMode: 1
636 | ps4SocialScreenEnabled: 0
637 | ps4ScriptOptimizationLevel: 0
638 | ps4Audio3dVirtualSpeakerCount: 14
639 | ps4attribCpuUsage: 0
640 | ps4PatchPkgPath:
641 | ps4PatchLatestPkgPath:
642 | ps4PatchChangeinfoPath:
643 | ps4PatchDayOne: 0
644 | ps4attribUserManagement: 0
645 | ps4attribMoveSupport: 0
646 | ps4attrib3DSupport: 0
647 | ps4attribShareSupport: 0
648 | ps4attribExclusiveVR: 0
649 | ps4disableAutoHideSplash: 0
650 | ps4videoRecordingFeaturesUsed: 0
651 | ps4contentSearchFeaturesUsed: 0
652 | ps4CompatibilityPS5: 0
653 | ps4GPU800MHz: 1
654 | ps4attribEyeToEyeDistanceSettingVR: 0
655 | ps4IncludedModules: []
656 | ps4attribVROutputEnabled: 0
657 | monoEnv:
658 | splashScreenBackgroundSourceLandscape: {fileID: 0}
659 | splashScreenBackgroundSourcePortrait: {fileID: 0}
660 | blurSplashScreenBackground: 1
661 | spritePackerPolicy:
662 | webGLMemorySize: 16
663 | webGLExceptionSupport: 1
664 | webGLNameFilesAsHashes: 0
665 | webGLDataCaching: 1
666 | webGLDebugSymbols: 0
667 | webGLEmscriptenArgs:
668 | webGLModulesDirectory:
669 | webGLTemplate: APPLICATION:Default
670 | webGLAnalyzeBuildSize: 0
671 | webGLUseEmbeddedResources: 0
672 | webGLCompressionFormat: 1
673 | webGLLinkerTarget: 1
674 | webGLThreadsSupport: 0
675 | webGLWasmStreaming: 0
676 | scriptingDefineSymbols: {}
677 | platformArchitecture: {}
678 | scriptingBackend: {}
679 | il2cppCompilerConfiguration: {}
680 | managedStrippingLevel: {}
681 | incrementalIl2cppBuild: {}
682 | allowUnsafeCode: 0
683 | additionalIl2CppArgs:
684 | scriptingRuntimeVersion: 1
685 | gcIncremental: 0
686 | gcWBarrierValidation: 0
687 | apiCompatibilityLevelPerPlatform: {}
688 | m_RenderingPath: 1
689 | m_MobileRenderingPath: 1
690 | metroPackageName: Template_3D
691 | metroPackageVersion:
692 | metroCertificatePath:
693 | metroCertificatePassword:
694 | metroCertificateSubject:
695 | metroCertificateIssuer:
696 | metroCertificateNotAfter: 0000000000000000
697 | metroApplicationDescription: Template_3D
698 | wsaImages: {}
699 | metroTileShortName:
700 | metroTileShowName: 0
701 | metroMediumTileShowName: 0
702 | metroLargeTileShowName: 0
703 | metroWideTileShowName: 0
704 | metroSupportStreamingInstall: 0
705 | metroLastRequiredScene: 0
706 | metroDefaultTileSize: 1
707 | metroTileForegroundText: 2
708 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
709 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
710 | a: 1}
711 | metroSplashScreenUseBackgroundColor: 0
712 | platformCapabilities: {}
713 | metroTargetDeviceFamilies: {}
714 | metroFTAName:
715 | metroFTAFileTypes: []
716 | metroProtocolName:
717 | XboxOneProductId:
718 | XboxOneUpdateKey:
719 | XboxOneSandboxId:
720 | XboxOneContentId:
721 | XboxOneTitleId:
722 | XboxOneSCId:
723 | XboxOneGameOsOverridePath:
724 | XboxOnePackagingOverridePath:
725 | XboxOneAppManifestOverridePath:
726 | XboxOneVersion: 1.0.0.0
727 | XboxOnePackageEncryption: 0
728 | XboxOnePackageUpdateGranularity: 2
729 | XboxOneDescription:
730 | XboxOneLanguage:
731 | - enus
732 | XboxOneCapability: []
733 | XboxOneGameRating: {}
734 | XboxOneIsContentPackage: 0
735 | XboxOneEnableGPUVariability: 1
736 | XboxOneSockets: {}
737 | XboxOneSplashScreen: {fileID: 0}
738 | XboxOneAllowedProductIds: []
739 | XboxOnePersistentLocalStorageSize: 0
740 | XboxOneXTitleMemory: 8
741 | XboxOneOverrideIdentityName:
742 | XboxOneOverrideIdentityPublisher:
743 | vrEditorSettings:
744 | daydream:
745 | daydreamIconForeground: {fileID: 0}
746 | daydreamIconBackground: {fileID: 0}
747 | cloudServicesEnabled:
748 | UNet: 1
749 | luminIcon:
750 | m_Name:
751 | m_ModelFolderPath:
752 | m_PortalFolderPath:
753 | luminCert:
754 | m_CertPath:
755 | m_SignPackage: 1
756 | luminIsChannelApp: 0
757 | luminVersion:
758 | m_VersionCode: 1
759 | m_VersionName:
760 | apiCompatibilityLevel: 6
761 | cloudProjectId:
762 | framebufferDepthMemorylessMode: 0
763 | projectName:
764 | organizationId:
765 | cloudEnabled: 0
766 | enableNativePlatformBackendsForNewInputSystem: 0
767 | disableOldInputManagerSupport: 0
768 | legacyClampBlendShapeWeights: 0
769 |
--------------------------------------------------------------------------------
/SocketServer/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: a694642d54427d14090ce5eda89cc508
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: SocketServer
17 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
18 | m_ShowUnitySplashScreen: 1
19 | m_ShowUnitySplashLogo: 1
20 | m_SplashScreenOverlayOpacity: 1
21 | m_SplashScreenAnimation: 1
22 | m_SplashScreenLogoStyle: 1
23 | m_SplashScreenDrawMode: 0
24 | m_SplashScreenBackgroundAnimationZoom: 1
25 | m_SplashScreenLogoAnimationZoom: 1
26 | m_SplashScreenBackgroundLandscapeAspect: 1
27 | m_SplashScreenBackgroundPortraitAspect: 1
28 | m_SplashScreenBackgroundLandscapeUvs:
29 | serializedVersion: 2
30 | x: 0
31 | y: 0
32 | width: 1
33 | height: 1
34 | m_SplashScreenBackgroundPortraitUvs:
35 | serializedVersion: 2
36 | x: 0
37 | y: 0
38 | width: 1
39 | height: 1
40 | m_SplashScreenLogos: []
41 | m_VirtualRealitySplashScreen: {fileID: 0}
42 | m_ShowUnitySplashAds: 0
43 | m_AdsAndroidGameId:
44 | m_AdsIosGameId:
45 | m_ShowSplashAdsSlogan: 0
46 | m_SloganImage: {fileID: 0}
47 | m_SloganHeight: 150
48 | defaultCursor: {fileID: 0}
49 | cursorHotspot: {x: 0, y: 0}
50 | m_HolographicTrackingLossScreen: {fileID: 0}
51 | defaultScreenWidth: 1024
52 | defaultScreenHeight: 768
53 | defaultScreenWidthWeb: 960
54 | defaultScreenHeightWeb: 600
55 | m_StereoRenderingPath: 0
56 | m_ActiveColorSpace: 0
57 | m_MTRendering: 1
58 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
59 | iosShowActivityIndicatorOnLoading: -1
60 | androidShowActivityIndicatorOnLoading: -1
61 | iosUseCustomAppBackgroundBehavior: 0
62 | iosAllowHTTPDownload: 1
63 | allowedAutorotateToPortrait: 1
64 | allowedAutorotateToPortraitUpsideDown: 1
65 | allowedAutorotateToLandscapeRight: 1
66 | allowedAutorotateToLandscapeLeft: 1
67 | useOSAutorotation: 1
68 | use32BitDisplayBuffer: 1
69 | preserveFramebufferAlpha: 0
70 | disableDepthAndStencilBuffers: 0
71 | androidStartInFullscreen: 1
72 | androidRenderOutsideSafeArea: 1
73 | androidUseSwappy: 0
74 | androidBlitType: 0
75 | defaultIsNativeResolution: 1
76 | macRetinaSupport: 1
77 | runInBackground: 1
78 | captureSingleScreen: 0
79 | muteOtherAudioSources: 0
80 | Prepare IOS For Recording: 0
81 | Force IOS Speakers When Recording: 0
82 | deferSystemGesturesMode: 0
83 | hideHomeButton: 0
84 | submitAnalytics: 1
85 | usePlayerLog: 1
86 | bakeCollisionMeshes: 0
87 | forceSingleInstance: 0
88 | useFlipModelSwapchain: 1
89 | resizableWindow: 0
90 | useMacAppStoreValidation: 0
91 | macAppStoreCategory: public.app-category.games
92 | gpuSkinning: 1
93 | xboxPIXTextureCapture: 0
94 | xboxEnableAvatar: 0
95 | xboxEnableKinect: 0
96 | xboxEnableKinectAutoTracking: 0
97 | xboxEnableFitness: 0
98 | visibleInBackground: 1
99 | allowFullscreenSwitch: 1
100 | fullscreenMode: 1
101 | xboxSpeechDB: 0
102 | xboxEnableHeadOrientation: 0
103 | xboxEnableGuest: 0
104 | xboxEnablePIXSampling: 0
105 | metalFramebufferOnly: 0
106 | xboxOneResolution: 0
107 | xboxOneSResolution: 0
108 | xboxOneXResolution: 3
109 | xboxOneMonoLoggingLevel: 0
110 | xboxOneLoggingLevel: 1
111 | xboxOneDisableEsram: 0
112 | xboxOneEnableTypeOptimization: 0
113 | xboxOnePresentImmediateThreshold: 0
114 | switchQueueCommandMemory: 0
115 | switchQueueControlMemory: 16384
116 | switchQueueComputeMemory: 262144
117 | switchNVNShaderPoolsGranularity: 33554432
118 | switchNVNDefaultPoolsGranularity: 16777216
119 | switchNVNOtherPoolsGranularity: 16777216
120 | switchNVNMaxPublicTextureIDCount: 0
121 | switchNVNMaxPublicSamplerIDCount: 0
122 | stadiaPresentMode: 0
123 | stadiaTargetFramerate: 0
124 | vulkanNumSwapchainBuffers: 3
125 | vulkanEnableSetSRGBWrite: 0
126 | vulkanEnableLateAcquireNextImage: 0
127 | useSecurityBuild: 0
128 | m_SupportedAspectRatios:
129 | 4:3: 1
130 | 5:4: 1
131 | 16:10: 1
132 | 16:9: 1
133 | Others: 1
134 | bundleVersion: 0.1
135 | preloadedAssets: []
136 | metroInputSource: 0
137 | wsaTransparentSwapchain: 0
138 | m_HolographicPauseOnTrackingLoss: 1
139 | xboxOneDisableKinectGpuReservation: 1
140 | xboxOneEnable7thCore: 1
141 | vrSettings:
142 | cardboard:
143 | depthFormat: 0
144 | enableTransitionView: 0
145 | daydream:
146 | depthFormat: 0
147 | useSustainedPerformanceMode: 0
148 | enableVideoLayer: 0
149 | useProtectedVideoMemory: 0
150 | minimumSupportedHeadTracking: 0
151 | maximumSupportedHeadTracking: 1
152 | hololens:
153 | depthFormat: 1
154 | depthBufferSharingEnabled: 1
155 | lumin:
156 | depthFormat: 0
157 | frameTiming: 2
158 | enableGLCache: 0
159 | glCacheMaxBlobSize: 524288
160 | glCacheMaxFileSize: 8388608
161 | oculus:
162 | sharedDepthBuffer: 1
163 | dashSupport: 1
164 | lowOverheadMode: 0
165 | protectedContext: 0
166 | v2Signing: 1
167 | enable360StereoCapture: 0
168 | isWsaHolographicRemotingEnabled: 0
169 | enableFrameTimingStats: 0
170 | useHDRDisplay: 0
171 | D3DHDRBitDepth: 0
172 | m_ColorGamuts: 00000000
173 | targetPixelDensity: 30
174 | resolutionScalingMode: 0
175 | androidSupportedAspectRatio: 1
176 | androidMaxAspectRatio: 2.1
177 | applicationIdentifier: {}
178 | buildNumber: {}
179 | AndroidBundleVersionCode: 1
180 | AndroidMinSdkVersion: 19
181 | AndroidTargetSdkVersion: 0
182 | AndroidPreferredInstallLocation: 1
183 | aotOptions:
184 | stripEngineCode: 1
185 | iPhoneStrippingLevel: 0
186 | iPhoneScriptCallOptimization: 0
187 | ForceInternetPermission: 0
188 | ForceSDCardPermission: 0
189 | CreateWallpaper: 0
190 | APKExpansionFiles: 0
191 | keepLoadedShadersAlive: 0
192 | StripUnusedMeshComponents: 1
193 | VertexChannelCompressionMask: 4054
194 | iPhoneSdkVersion: 988
195 | iOSTargetOSVersionString: 10.0
196 | tvOSSdkVersion: 0
197 | tvOSRequireExtendedGameController: 0
198 | tvOSTargetOSVersionString: 10.0
199 | uIPrerenderedIcon: 0
200 | uIRequiresPersistentWiFi: 0
201 | uIRequiresFullScreen: 1
202 | uIStatusBarHidden: 1
203 | uIExitOnSuspend: 0
204 | uIStatusBarStyle: 0
205 | appleTVSplashScreen: {fileID: 0}
206 | appleTVSplashScreen2x: {fileID: 0}
207 | tvOSSmallIconLayers: []
208 | tvOSSmallIconLayers2x: []
209 | tvOSLargeIconLayers: []
210 | tvOSLargeIconLayers2x: []
211 | tvOSTopShelfImageLayers: []
212 | tvOSTopShelfImageLayers2x: []
213 | tvOSTopShelfImageWideLayers: []
214 | tvOSTopShelfImageWideLayers2x: []
215 | iOSLaunchScreenType: 0
216 | iOSLaunchScreenPortrait: {fileID: 0}
217 | iOSLaunchScreenLandscape: {fileID: 0}
218 | iOSLaunchScreenBackgroundColor:
219 | serializedVersion: 2
220 | rgba: 0
221 | iOSLaunchScreenFillPct: 100
222 | iOSLaunchScreenSize: 100
223 | iOSLaunchScreenCustomXibPath:
224 | iOSLaunchScreeniPadType: 0
225 | iOSLaunchScreeniPadImage: {fileID: 0}
226 | iOSLaunchScreeniPadBackgroundColor:
227 | serializedVersion: 2
228 | rgba: 0
229 | iOSLaunchScreeniPadFillPct: 100
230 | iOSLaunchScreeniPadSize: 100
231 | iOSLaunchScreeniPadCustomXibPath:
232 | iOSUseLaunchScreenStoryboard: 0
233 | iOSLaunchScreenCustomStoryboardPath:
234 | iOSDeviceRequirements: []
235 | iOSURLSchemes: []
236 | iOSBackgroundModes: 0
237 | iOSMetalForceHardShadows: 0
238 | metalEditorSupport: 1
239 | metalAPIValidation: 1
240 | iOSRenderExtraFrameOnPause: 0
241 | appleDeveloperTeamID:
242 | iOSManualSigningProvisioningProfileID:
243 | tvOSManualSigningProvisioningProfileID:
244 | iOSManualSigningProvisioningProfileType: 0
245 | tvOSManualSigningProvisioningProfileType: 0
246 | appleEnableAutomaticSigning: 0
247 | iOSRequireARKit: 0
248 | iOSAutomaticallyDetectAndAddCapabilities: 1
249 | appleEnableProMotion: 0
250 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
251 | templatePackageId: com.unity.template.3d@4.2.8
252 | templateDefaultScene: Assets/Scenes/SampleScene.unity
253 | AndroidTargetArchitectures: 1
254 | AndroidSplashScreenScale: 0
255 | androidSplashScreen: {fileID: 0}
256 | AndroidKeystoreName:
257 | AndroidKeyaliasName:
258 | AndroidBuildApkPerCpuArchitecture: 0
259 | AndroidTVCompatibility: 0
260 | AndroidIsGame: 1
261 | AndroidEnableTango: 0
262 | androidEnableBanner: 1
263 | androidUseLowAccuracyLocation: 0
264 | androidUseCustomKeystore: 0
265 | m_AndroidBanners:
266 | - width: 320
267 | height: 180
268 | banner: {fileID: 0}
269 | androidGamepadSupportLevel: 0
270 | AndroidValidateAppBundleSize: 1
271 | AndroidAppBundleSizeToValidate: 150
272 | m_BuildTargetIcons: []
273 | m_BuildTargetPlatformIcons:
274 | - m_BuildTarget: Android
275 | m_Icons:
276 | - m_Textures: []
277 | m_Width: 432
278 | m_Height: 432
279 | m_Kind: 2
280 | m_SubKind:
281 | - m_Textures: []
282 | m_Width: 324
283 | m_Height: 324
284 | m_Kind: 2
285 | m_SubKind:
286 | - m_Textures: []
287 | m_Width: 216
288 | m_Height: 216
289 | m_Kind: 2
290 | m_SubKind:
291 | - m_Textures: []
292 | m_Width: 162
293 | m_Height: 162
294 | m_Kind: 2
295 | m_SubKind:
296 | - m_Textures: []
297 | m_Width: 108
298 | m_Height: 108
299 | m_Kind: 2
300 | m_SubKind:
301 | - m_Textures: []
302 | m_Width: 81
303 | m_Height: 81
304 | m_Kind: 2
305 | m_SubKind:
306 | - m_Textures: []
307 | m_Width: 192
308 | m_Height: 192
309 | m_Kind: 0
310 | m_SubKind:
311 | - m_Textures: []
312 | m_Width: 144
313 | m_Height: 144
314 | m_Kind: 0
315 | m_SubKind:
316 | - m_Textures: []
317 | m_Width: 96
318 | m_Height: 96
319 | m_Kind: 0
320 | m_SubKind:
321 | - m_Textures: []
322 | m_Width: 72
323 | m_Height: 72
324 | m_Kind: 0
325 | m_SubKind:
326 | - m_Textures: []
327 | m_Width: 48
328 | m_Height: 48
329 | m_Kind: 0
330 | m_SubKind:
331 | - m_Textures: []
332 | m_Width: 36
333 | m_Height: 36
334 | m_Kind: 0
335 | m_SubKind:
336 | - m_Textures: []
337 | m_Width: 192
338 | m_Height: 192
339 | m_Kind: 1
340 | m_SubKind:
341 | - m_Textures: []
342 | m_Width: 144
343 | m_Height: 144
344 | m_Kind: 1
345 | m_SubKind:
346 | - m_Textures: []
347 | m_Width: 96
348 | m_Height: 96
349 | m_Kind: 1
350 | m_SubKind:
351 | - m_Textures: []
352 | m_Width: 72
353 | m_Height: 72
354 | m_Kind: 1
355 | m_SubKind:
356 | - m_Textures: []
357 | m_Width: 48
358 | m_Height: 48
359 | m_Kind: 1
360 | m_SubKind:
361 | - m_Textures: []
362 | m_Width: 36
363 | m_Height: 36
364 | m_Kind: 1
365 | m_SubKind:
366 | m_BuildTargetBatching:
367 | - m_BuildTarget: Standalone
368 | m_StaticBatching: 1
369 | m_DynamicBatching: 0
370 | - m_BuildTarget: tvOS
371 | m_StaticBatching: 1
372 | m_DynamicBatching: 0
373 | - m_BuildTarget: Android
374 | m_StaticBatching: 1
375 | m_DynamicBatching: 0
376 | - m_BuildTarget: iPhone
377 | m_StaticBatching: 1
378 | m_DynamicBatching: 0
379 | - m_BuildTarget: WebGL
380 | m_StaticBatching: 0
381 | m_DynamicBatching: 0
382 | m_BuildTargetEncrypting: []
383 | m_BuildTargetGraphicsJobs:
384 | - m_BuildTarget: MacStandaloneSupport
385 | m_GraphicsJobs: 0
386 | - m_BuildTarget: Switch
387 | m_GraphicsJobs: 1
388 | - m_BuildTarget: MetroSupport
389 | m_GraphicsJobs: 1
390 | - m_BuildTarget: AppleTVSupport
391 | m_GraphicsJobs: 0
392 | - m_BuildTarget: BJMSupport
393 | m_GraphicsJobs: 1
394 | - m_BuildTarget: LinuxStandaloneSupport
395 | m_GraphicsJobs: 1
396 | - m_BuildTarget: PS4Player
397 | m_GraphicsJobs: 1
398 | - m_BuildTarget: iOSSupport
399 | m_GraphicsJobs: 0
400 | - m_BuildTarget: WindowsStandaloneSupport
401 | m_GraphicsJobs: 1
402 | - m_BuildTarget: XboxOnePlayer
403 | m_GraphicsJobs: 1
404 | - m_BuildTarget: LuminSupport
405 | m_GraphicsJobs: 0
406 | - m_BuildTarget: AndroidPlayer
407 | m_GraphicsJobs: 0
408 | - m_BuildTarget: WebGLSupport
409 | m_GraphicsJobs: 0
410 | m_BuildTargetGraphicsJobMode:
411 | - m_BuildTarget: PS4Player
412 | m_GraphicsJobMode: 0
413 | - m_BuildTarget: XboxOnePlayer
414 | m_GraphicsJobMode: 0
415 | m_BuildTargetGraphicsAPIs:
416 | - m_BuildTarget: AndroidPlayer
417 | m_APIs: 150000000b000000
418 | m_Automatic: 0
419 | - m_BuildTarget: iOSSupport
420 | m_APIs: 10000000
421 | m_Automatic: 1
422 | - m_BuildTarget: AppleTVSupport
423 | m_APIs: 10000000
424 | m_Automatic: 0
425 | - m_BuildTarget: WebGLSupport
426 | m_APIs: 0b000000
427 | m_Automatic: 1
428 | m_BuildTargetVRSettings:
429 | - m_BuildTarget: Standalone
430 | m_Enabled: 0
431 | m_Devices:
432 | - Oculus
433 | - OpenVR
434 | openGLRequireES31: 0
435 | openGLRequireES31AEP: 0
436 | openGLRequireES32: 0
437 | m_TemplateCustomTags: {}
438 | mobileMTRendering:
439 | Android: 1
440 | iPhone: 1
441 | tvOS: 1
442 | m_BuildTargetGroupLightmapEncodingQuality: []
443 | m_BuildTargetGroupLightmapSettings: []
444 | playModeTestRunnerEnabled: 0
445 | runPlayModeTestAsEditModeTest: 0
446 | actionOnDotNetUnhandledException: 1
447 | enableInternalProfiler: 0
448 | logObjCUncaughtExceptions: 1
449 | enableCrashReportAPI: 0
450 | cameraUsageDescription:
451 | locationUsageDescription:
452 | microphoneUsageDescription:
453 | switchNetLibKey:
454 | switchSocketMemoryPoolSize: 6144
455 | switchSocketAllocatorPoolSize: 128
456 | switchSocketConcurrencyLimit: 14
457 | switchScreenResolutionBehavior: 2
458 | switchUseCPUProfiler: 0
459 | switchApplicationID: 0x01004b9000490000
460 | switchNSODependencies:
461 | switchTitleNames_0:
462 | switchTitleNames_1:
463 | switchTitleNames_2:
464 | switchTitleNames_3:
465 | switchTitleNames_4:
466 | switchTitleNames_5:
467 | switchTitleNames_6:
468 | switchTitleNames_7:
469 | switchTitleNames_8:
470 | switchTitleNames_9:
471 | switchTitleNames_10:
472 | switchTitleNames_11:
473 | switchTitleNames_12:
474 | switchTitleNames_13:
475 | switchTitleNames_14:
476 | switchPublisherNames_0:
477 | switchPublisherNames_1:
478 | switchPublisherNames_2:
479 | switchPublisherNames_3:
480 | switchPublisherNames_4:
481 | switchPublisherNames_5:
482 | switchPublisherNames_6:
483 | switchPublisherNames_7:
484 | switchPublisherNames_8:
485 | switchPublisherNames_9:
486 | switchPublisherNames_10:
487 | switchPublisherNames_11:
488 | switchPublisherNames_12:
489 | switchPublisherNames_13:
490 | switchPublisherNames_14:
491 | switchIcons_0: {fileID: 0}
492 | switchIcons_1: {fileID: 0}
493 | switchIcons_2: {fileID: 0}
494 | switchIcons_3: {fileID: 0}
495 | switchIcons_4: {fileID: 0}
496 | switchIcons_5: {fileID: 0}
497 | switchIcons_6: {fileID: 0}
498 | switchIcons_7: {fileID: 0}
499 | switchIcons_8: {fileID: 0}
500 | switchIcons_9: {fileID: 0}
501 | switchIcons_10: {fileID: 0}
502 | switchIcons_11: {fileID: 0}
503 | switchIcons_12: {fileID: 0}
504 | switchIcons_13: {fileID: 0}
505 | switchIcons_14: {fileID: 0}
506 | switchSmallIcons_0: {fileID: 0}
507 | switchSmallIcons_1: {fileID: 0}
508 | switchSmallIcons_2: {fileID: 0}
509 | switchSmallIcons_3: {fileID: 0}
510 | switchSmallIcons_4: {fileID: 0}
511 | switchSmallIcons_5: {fileID: 0}
512 | switchSmallIcons_6: {fileID: 0}
513 | switchSmallIcons_7: {fileID: 0}
514 | switchSmallIcons_8: {fileID: 0}
515 | switchSmallIcons_9: {fileID: 0}
516 | switchSmallIcons_10: {fileID: 0}
517 | switchSmallIcons_11: {fileID: 0}
518 | switchSmallIcons_12: {fileID: 0}
519 | switchSmallIcons_13: {fileID: 0}
520 | switchSmallIcons_14: {fileID: 0}
521 | switchManualHTML:
522 | switchAccessibleURLs:
523 | switchLegalInformation:
524 | switchMainThreadStackSize: 1048576
525 | switchPresenceGroupId:
526 | switchLogoHandling: 0
527 | switchReleaseVersion: 0
528 | switchDisplayVersion: 1.0.0
529 | switchStartupUserAccount: 0
530 | switchTouchScreenUsage: 0
531 | switchSupportedLanguagesMask: 0
532 | switchLogoType: 0
533 | switchApplicationErrorCodeCategory:
534 | switchUserAccountSaveDataSize: 0
535 | switchUserAccountSaveDataJournalSize: 0
536 | switchApplicationAttribute: 0
537 | switchCardSpecSize: -1
538 | switchCardSpecClock: -1
539 | switchRatingsMask: 0
540 | switchRatingsInt_0: 0
541 | switchRatingsInt_1: 0
542 | switchRatingsInt_2: 0
543 | switchRatingsInt_3: 0
544 | switchRatingsInt_4: 0
545 | switchRatingsInt_5: 0
546 | switchRatingsInt_6: 0
547 | switchRatingsInt_7: 0
548 | switchRatingsInt_8: 0
549 | switchRatingsInt_9: 0
550 | switchRatingsInt_10: 0
551 | switchRatingsInt_11: 0
552 | switchRatingsInt_12: 0
553 | switchLocalCommunicationIds_0:
554 | switchLocalCommunicationIds_1:
555 | switchLocalCommunicationIds_2:
556 | switchLocalCommunicationIds_3:
557 | switchLocalCommunicationIds_4:
558 | switchLocalCommunicationIds_5:
559 | switchLocalCommunicationIds_6:
560 | switchLocalCommunicationIds_7:
561 | switchParentalControl: 0
562 | switchAllowsScreenshot: 1
563 | switchAllowsVideoCapturing: 1
564 | switchAllowsRuntimeAddOnContentInstall: 0
565 | switchDataLossConfirmation: 0
566 | switchUserAccountLockEnabled: 0
567 | switchSystemResourceMemory: 16777216
568 | switchSupportedNpadStyles: 22
569 | switchNativeFsCacheSize: 32
570 | switchIsHoldTypeHorizontal: 0
571 | switchSupportedNpadCount: 8
572 | switchSocketConfigEnabled: 0
573 | switchTcpInitialSendBufferSize: 32
574 | switchTcpInitialReceiveBufferSize: 64
575 | switchTcpAutoSendBufferSizeMax: 256
576 | switchTcpAutoReceiveBufferSizeMax: 256
577 | switchUdpSendBufferSize: 9
578 | switchUdpReceiveBufferSize: 42
579 | switchSocketBufferEfficiency: 4
580 | switchSocketInitializeEnabled: 1
581 | switchNetworkInterfaceManagerInitializeEnabled: 1
582 | switchPlayerConnectionEnabled: 1
583 | ps4NPAgeRating: 12
584 | ps4NPTitleSecret:
585 | ps4NPTrophyPackPath:
586 | ps4ParentalLevel: 11
587 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
588 | ps4Category: 0
589 | ps4MasterVersion: 01.00
590 | ps4AppVersion: 01.00
591 | ps4AppType: 0
592 | ps4ParamSfxPath:
593 | ps4VideoOutPixelFormat: 0
594 | ps4VideoOutInitialWidth: 1920
595 | ps4VideoOutBaseModeInitialWidth: 1920
596 | ps4VideoOutReprojectionRate: 60
597 | ps4PronunciationXMLPath:
598 | ps4PronunciationSIGPath:
599 | ps4BackgroundImagePath:
600 | ps4StartupImagePath:
601 | ps4StartupImagesFolder:
602 | ps4IconImagesFolder:
603 | ps4SaveDataImagePath:
604 | ps4SdkOverride:
605 | ps4BGMPath:
606 | ps4ShareFilePath:
607 | ps4ShareOverlayImagePath:
608 | ps4PrivacyGuardImagePath:
609 | ps4ExtraSceSysFile:
610 | ps4NPtitleDatPath:
611 | ps4RemotePlayKeyAssignment: -1
612 | ps4RemotePlayKeyMappingDir:
613 | ps4PlayTogetherPlayerCount: 0
614 | ps4EnterButtonAssignment: 1
615 | ps4ApplicationParam1: 0
616 | ps4ApplicationParam2: 0
617 | ps4ApplicationParam3: 0
618 | ps4ApplicationParam4: 0
619 | ps4DownloadDataSize: 0
620 | ps4GarlicHeapSize: 2048
621 | ps4ProGarlicHeapSize: 2560
622 | playerPrefsMaxSize: 32768
623 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
624 | ps4pnSessions: 1
625 | ps4pnPresence: 1
626 | ps4pnFriends: 1
627 | ps4pnGameCustomData: 1
628 | playerPrefsSupport: 0
629 | enableApplicationExit: 0
630 | resetTempFolder: 1
631 | restrictedAudioUsageRights: 0
632 | ps4UseResolutionFallback: 0
633 | ps4ReprojectionSupport: 0
634 | ps4UseAudio3dBackend: 0
635 | ps4UseLowGarlicFragmentationMode: 1
636 | ps4SocialScreenEnabled: 0
637 | ps4ScriptOptimizationLevel: 0
638 | ps4Audio3dVirtualSpeakerCount: 14
639 | ps4attribCpuUsage: 0
640 | ps4PatchPkgPath:
641 | ps4PatchLatestPkgPath:
642 | ps4PatchChangeinfoPath:
643 | ps4PatchDayOne: 0
644 | ps4attribUserManagement: 0
645 | ps4attribMoveSupport: 0
646 | ps4attrib3DSupport: 0
647 | ps4attribShareSupport: 0
648 | ps4attribExclusiveVR: 0
649 | ps4disableAutoHideSplash: 0
650 | ps4videoRecordingFeaturesUsed: 0
651 | ps4contentSearchFeaturesUsed: 0
652 | ps4CompatibilityPS5: 0
653 | ps4GPU800MHz: 1
654 | ps4attribEyeToEyeDistanceSettingVR: 0
655 | ps4IncludedModules: []
656 | ps4attribVROutputEnabled: 0
657 | monoEnv:
658 | splashScreenBackgroundSourceLandscape: {fileID: 0}
659 | splashScreenBackgroundSourcePortrait: {fileID: 0}
660 | blurSplashScreenBackground: 1
661 | spritePackerPolicy:
662 | webGLMemorySize: 16
663 | webGLExceptionSupport: 1
664 | webGLNameFilesAsHashes: 0
665 | webGLDataCaching: 1
666 | webGLDebugSymbols: 0
667 | webGLEmscriptenArgs:
668 | webGLModulesDirectory:
669 | webGLTemplate: APPLICATION:Default
670 | webGLAnalyzeBuildSize: 0
671 | webGLUseEmbeddedResources: 0
672 | webGLCompressionFormat: 1
673 | webGLLinkerTarget: 1
674 | webGLThreadsSupport: 0
675 | webGLWasmStreaming: 0
676 | scriptingDefineSymbols: {}
677 | platformArchitecture: {}
678 | scriptingBackend: {}
679 | il2cppCompilerConfiguration: {}
680 | managedStrippingLevel: {}
681 | incrementalIl2cppBuild: {}
682 | allowUnsafeCode: 0
683 | additionalIl2CppArgs:
684 | scriptingRuntimeVersion: 1
685 | gcIncremental: 0
686 | gcWBarrierValidation: 0
687 | apiCompatibilityLevelPerPlatform: {}
688 | m_RenderingPath: 1
689 | m_MobileRenderingPath: 1
690 | metroPackageName: Template_3D
691 | metroPackageVersion:
692 | metroCertificatePath:
693 | metroCertificatePassword:
694 | metroCertificateSubject:
695 | metroCertificateIssuer:
696 | metroCertificateNotAfter: 0000000000000000
697 | metroApplicationDescription: Template_3D
698 | wsaImages: {}
699 | metroTileShortName:
700 | metroTileShowName: 0
701 | metroMediumTileShowName: 0
702 | metroLargeTileShowName: 0
703 | metroWideTileShowName: 0
704 | metroSupportStreamingInstall: 0
705 | metroLastRequiredScene: 0
706 | metroDefaultTileSize: 1
707 | metroTileForegroundText: 2
708 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
709 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
710 | a: 1}
711 | metroSplashScreenUseBackgroundColor: 0
712 | platformCapabilities: {}
713 | metroTargetDeviceFamilies: {}
714 | metroFTAName:
715 | metroFTAFileTypes: []
716 | metroProtocolName:
717 | XboxOneProductId:
718 | XboxOneUpdateKey:
719 | XboxOneSandboxId:
720 | XboxOneContentId:
721 | XboxOneTitleId:
722 | XboxOneSCId:
723 | XboxOneGameOsOverridePath:
724 | XboxOnePackagingOverridePath:
725 | XboxOneAppManifestOverridePath:
726 | XboxOneVersion: 1.0.0.0
727 | XboxOnePackageEncryption: 0
728 | XboxOnePackageUpdateGranularity: 2
729 | XboxOneDescription:
730 | XboxOneLanguage:
731 | - enus
732 | XboxOneCapability: []
733 | XboxOneGameRating: {}
734 | XboxOneIsContentPackage: 0
735 | XboxOneEnableGPUVariability: 1
736 | XboxOneSockets: {}
737 | XboxOneSplashScreen: {fileID: 0}
738 | XboxOneAllowedProductIds: []
739 | XboxOnePersistentLocalStorageSize: 0
740 | XboxOneXTitleMemory: 8
741 | XboxOneOverrideIdentityName:
742 | XboxOneOverrideIdentityPublisher:
743 | vrEditorSettings:
744 | daydream:
745 | daydreamIconForeground: {fileID: 0}
746 | daydreamIconBackground: {fileID: 0}
747 | cloudServicesEnabled:
748 | UNet: 1
749 | luminIcon:
750 | m_Name:
751 | m_ModelFolderPath:
752 | m_PortalFolderPath:
753 | luminCert:
754 | m_CertPath:
755 | m_SignPackage: 1
756 | luminIsChannelApp: 0
757 | luminVersion:
758 | m_VersionCode: 1
759 | m_VersionName:
760 | apiCompatibilityLevel: 6
761 | cloudProjectId:
762 | framebufferDepthMemorylessMode: 0
763 | projectName:
764 | organizationId:
765 | cloudEnabled: 0
766 | enableNativePlatformBackendsForNewInputSystem: 0
767 | disableOldInputManagerSupport: 0
768 | legacyClampBlendShapeWeights: 0
769 |
--------------------------------------------------------------------------------