From 7e52d2fbccaa51f575550e1fd78bcf1d05526edf Mon Sep 17 00:00:00 2001 From: "DESKTOP-V763RJ7\\Administrator" <835606593@qq.com> Date: Wed, 7 Jan 2026 10:21:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Plugins.meta | 8 + Assets/Plugins/Google.Protobuf.dll | Bin 0 -> 497304 bytes Assets/Plugins/Google.Protobuf.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 19256 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + Assets/Resources.meta | 8 + Assets/Resources/Prefabs.meta | 8 + Assets/Resources/Prefabs/Player.prefab | 177 +++ Assets/Resources/Prefabs/Player.prefab.meta | 7 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 967 ++++++++++++ Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scripts.meta | 8 + Assets/Scripts/Manager.meta | 8 + Assets/Scripts/Manager/PlayerManager.cs | 74 + Assets/Scripts/Manager/PlayerManager.cs.meta | 3 + Assets/Scripts/Manager/SocketManager.cs | 129 ++ Assets/Scripts/Manager/SocketManager.cs.meta | 3 + .../Scripts/Manager/SocketMessageManager.cs | 55 + .../Manager/SocketMessageManager.cs.meta | 3 + Assets/Scripts/PlayerControl.cs | 45 + Assets/Scripts/PlayerControl.cs.meta | 3 + Assets/Scripts/PlayerInfo.cs | 6 + Assets/Scripts/PlayerInfo.cs.meta | 3 + Assets/Scripts/PlayerMove.cs | 23 + Assets/Scripts/PlayerMove.cs.meta | 11 + Assets/Scripts/Proto.meta | 8 + Assets/Scripts/Proto/Action.cs | 1302 +++++++++++++++++ Assets/Scripts/Proto/Action.cs.meta | 11 + Assets/Scripts/Proto/Define.cs | 303 ++++ Assets/Scripts/Proto/Define.cs.meta | 11 + Assets/Scripts/Proto/ScCommon.cs | 35 + Assets/Scripts/Proto/ScCommon.cs.meta | 11 + Assets/Scripts/Proto/Service.cs | 661 +++++++++ Assets/Scripts/Proto/Service.cs.meta | 3 + Packages/manifest.json | 45 + Packages/packages-lock.json | 473 ++++++ ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 37 + ProjectSettings/EditorBuildSettings.asset | 11 + ProjectSettings/EditorSettings.asset | 40 + ProjectSettings/GraphicsSettings.asset | 64 + ProjectSettings/InputManager.asset | 487 ++++++ ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/NavMeshAreas.asset | 93 ++ ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/PackageManagerSettings.asset | 36 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 723 +++++++++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 239 +++ ProjectSettings/SceneTemplateSettings.json | 121 ++ ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/UnityConnectSettings.asset | 38 + ProjectSettings/VFXManager.asset | 14 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + 60 files changed, 6599 insertions(+) create mode 100644 Assets/Plugins.meta create mode 100644 Assets/Plugins/Google.Protobuf.dll create mode 100644 Assets/Plugins/Google.Protobuf.dll.meta create mode 100644 Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/Prefabs.meta create mode 100644 Assets/Resources/Prefabs/Player.prefab create mode 100644 Assets/Resources/Prefabs/Player.prefab.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Scripts.meta create mode 100644 Assets/Scripts/Manager.meta create mode 100644 Assets/Scripts/Manager/PlayerManager.cs create mode 100644 Assets/Scripts/Manager/PlayerManager.cs.meta create mode 100644 Assets/Scripts/Manager/SocketManager.cs create mode 100644 Assets/Scripts/Manager/SocketManager.cs.meta create mode 100644 Assets/Scripts/Manager/SocketMessageManager.cs create mode 100644 Assets/Scripts/Manager/SocketMessageManager.cs.meta create mode 100644 Assets/Scripts/PlayerControl.cs create mode 100644 Assets/Scripts/PlayerControl.cs.meta create mode 100644 Assets/Scripts/PlayerInfo.cs create mode 100644 Assets/Scripts/PlayerInfo.cs.meta create mode 100644 Assets/Scripts/PlayerMove.cs create mode 100644 Assets/Scripts/PlayerMove.cs.meta create mode 100644 Assets/Scripts/Proto.meta create mode 100644 Assets/Scripts/Proto/Action.cs create mode 100644 Assets/Scripts/Proto/Action.cs.meta create mode 100644 Assets/Scripts/Proto/Define.cs create mode 100644 Assets/Scripts/Proto/Define.cs.meta create mode 100644 Assets/Scripts/Proto/ScCommon.cs create mode 100644 Assets/Scripts/Proto/ScCommon.cs.meta create mode 100644 Assets/Scripts/Proto/Service.cs create mode 100644 Assets/Scripts/Proto/Service.cs.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/NetworkManager.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 0000000..897a88f --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 397cd8c9ce6d7924f9f0d37fdf128468 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Google.Protobuf.dll b/Assets/Plugins/Google.Protobuf.dll new file mode 100644 index 0000000000000000000000000000000000000000..a587be4fd4fc4fd89f2bb7dd3129aae4d75b5433 GIT binary patch literal 497304 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 b*JinhGRCB%B?|49c4Q51?W}ZO$`AbmAs`;% literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Google.Protobuf.dll.meta b/Assets/Plugins/Google.Protobuf.dll.meta new file mode 100644 index 0000000..0495894 --- /dev/null +++ b/Assets/Plugins/Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4e701241228a3ab428b568d7a9eb7e22 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll b/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..6e91f0693626e9bbbc79b2e4d39129bbaa104573 GIT binary patch literal 19256 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 WH_oKX`*IHZT3XbS9?!+EvHt@sw%a!V literal 0 HcmV?d00001 diff --git a/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta b/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..394b7af --- /dev/null +++ b/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 07325f6d60fc46f4cbce792ec9cedfb3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..1bfc42e --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 30e44c1fde61af34abfe4b0bb668f7ce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs.meta b/Assets/Resources/Prefabs.meta new file mode 100644 index 0000000..9b2c8bf --- /dev/null +++ b/Assets/Resources/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8dab7c23228fa447b7c4f66f7d1ec77 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Player.prefab b/Assets/Resources/Prefabs/Player.prefab new file mode 100644 index 0000000..d31ddc1 --- /dev/null +++ b/Assets/Resources/Prefabs/Player.prefab @@ -0,0 +1,177 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2084311658768222122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7414835070702525908} + - component: {fileID: 7093731443316182106} + - component: {fileID: 6228951757656075159} + - component: {fileID: 8667308135367594039} + - component: {fileID: -2296976507622875492} + - component: {fileID: 3176206830247056507} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7414835070702525908 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &7093731443316182106 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 2 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!50 &6228951757656075159 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &8667308135367594039 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 0.5 +--- !u!114 &-2296976507622875492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8262c63fb4770549befe57c9245251c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3176206830247056507 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084311658768222122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b2fb6c5cc8234d1f853f94a89472348c, type: 3} + m_Name: + m_EditorClassIdentifier: + uid: 0 diff --git a/Assets/Resources/Prefabs/Player.prefab.meta b/Assets/Resources/Prefabs/Player.prefab.meta new file mode 100644 index 0000000..ae0dc29 --- /dev/null +++ b/Assets/Resources/Prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e051488d35d18a146b594bce989a21f1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..7fe8e10 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 131a6b21c8605f84396be9f6751fb6e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..9741d39 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,967 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &340097764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 340097765} + - component: {fileID: 340097766} + - component: {fileID: 340097767} + m_Layer: 0 + m_Name: Bottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &340097765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340097764} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -9, z: 0} + m_LocalScale: {x: 33, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1433534646} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &340097766 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340097764} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!212 &340097767 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340097764} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.7647059, g: 0.578025, b: 0.57254905, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 9.39638 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &912879922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 912879923} + - component: {fileID: 912879924} + - component: {fileID: 912879925} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &912879923 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912879922} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -16.5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 20, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1433534646} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &912879924 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912879922} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!212 &912879925 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912879922} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.7647059, g: 0.578025, b: 0.57254905, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &933894490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 933894492} + - component: {fileID: 933894491} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &933894491 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933894490} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.5731132, g: 0.764151, b: 0.70693797, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &933894492 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933894490} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1246461588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1246461589} + - component: {fileID: 1246461590} + - component: {fileID: 1246461591} + m_Layer: 0 + m_Name: Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1246461589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246461588} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 9, z: 0} + m_LocalScale: {x: 33, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1433534646} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &1246461590 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246461588} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!212 &1246461591 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246461588} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.7647059, g: 0.578025, b: 0.57254905, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1433534645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1433534646} + m_Layer: 0 + m_Name: Boundary + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1433534646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433534645} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 912879923} + - {fileID: 1943777365} + - {fileID: 1246461589} + - {fileID: 340097765} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1738608076 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1738608077} + m_Layer: 0 + m_Name: PlayerScene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1738608077 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738608076} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1943777364 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1943777365} + - component: {fileID: 1943777366} + - component: {fileID: 1943777367} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1943777365 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943777364} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 16.5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 20, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1433534646} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &1943777366 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943777364} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!212 &1943777367 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943777364} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.7647059, g: 0.578025, b: 0.57254905, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1996456068 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1996456070} + - component: {fileID: 1996456072} + - component: {fileID: 1996456071} + - component: {fileID: 1996456073} + m_Layer: 0 + m_Name: Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1996456070 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996456068} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1996456071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996456068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afc9630f7f1a49b5b0e8b13bffa9b4ea, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1996456072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996456068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d6b127b9486a4f07acfbdcc29fc7d2a5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1996456073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996456068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5228fd1670b3455a9900c17b9c1899e6, type: 3} + m_Name: + m_EditorClassIdentifier: + playerPrefab: {fileID: 2084311658768222122, guid: e051488d35d18a146b594bce989a21f1, type: 3} + playerScene: {fileID: 1738608077} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 519420032} + - {fileID: 933894492} + - {fileID: 1433534646} + - {fileID: 1738608077} + - {fileID: 1996456070} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..c1e3c88 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cda990e2423bbf4892e6590ba056729 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 0000000..d2a309e --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37d9d3c1e9d554246a482d61b4e241c4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Manager.meta b/Assets/Scripts/Manager.meta new file mode 100644 index 0000000..b0f31bf --- /dev/null +++ b/Assets/Scripts/Manager.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8939796ed96d754dad0824d88e97473 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Manager/PlayerManager.cs b/Assets/Scripts/Manager/PlayerManager.cs new file mode 100644 index 0000000..df6d4b3 --- /dev/null +++ b/Assets/Scripts/Manager/PlayerManager.cs @@ -0,0 +1,74 @@ +using System.Collections.Generic; +using Google.Protobuf; +using UnityEngine; + +public class PlayerManager : MonoBehaviour +{ + public GameObject playerPrefab; + public Transform playerScene; + + private Dictionary _players = new(); + + public static PlayerManager Instance { get; private set; } + + private void Awake() + { + if (Instance != null) + { + Destroy(gameObject); + return; + } + + Instance = this; + } + + private void Start() + { + SocketMessageManager.Instance.Subscribe(MessageID.LoginSuccess, OnLoginSuccess); + SocketMessageManager.Instance.Subscribe(MessageID.EnterInstance, OnEnterInstance); + SocketMessageManager.Instance.Subscribe(MessageID.Position, OnPosition); + SocketManager.Instance.Connect(); + } + + private GameObject AddPlayer(PositionInfo info) + { + var player = Instantiate(playerPrefab, playerScene); + player.GetComponent().usn = info.USN; + var move = player.GetComponent(); + move.SetPosition(info.X, info.Y); + _players.Add(info.USN, move); + return player; + } + + private void OnLoginSuccess(ByteString msg) + { + var loginSuccess = S2C_LoginSuccess.Parser.ParseFrom(msg); + SocketManager.Instance.SendMessage(MessageID.EnterInstance, new C2S_EnterInstance + { + InstanceID = loginSuccess.InstanceID + }); + } + + private void OnEnterInstance(ByteString msg) + { + var enterInstance = S2C_EnterInstance.Parser.ParseFrom(msg); + var player = AddPlayer(enterInstance.Info); + player.AddComponent(); + } + + private void OnPosition(ByteString msg) + { + var position = S2C_Position.Parser.ParseFrom(msg); + foreach (var info in position.Info) + { + if (!_players.ContainsKey(info.USN)) + { + AddPlayer(info); + } + else + { + _players[info.USN].SetPosition(info.X, info.Y); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/PlayerManager.cs.meta b/Assets/Scripts/Manager/PlayerManager.cs.meta new file mode 100644 index 0000000..ba552e6 --- /dev/null +++ b/Assets/Scripts/Manager/PlayerManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5228fd1670b3455a9900c17b9c1899e6 +timeCreated: 1765791557 \ No newline at end of file diff --git a/Assets/Scripts/Manager/SocketManager.cs b/Assets/Scripts/Manager/SocketManager.cs new file mode 100644 index 0000000..05f2bb9 --- /dev/null +++ b/Assets/Scripts/Manager/SocketManager.cs @@ -0,0 +1,129 @@ +using System.Collections; +using Google.Protobuf; +using NativeWebSocket; +using UnityEngine; +using UnityEngine.Networking; + +[System.Serializable] +public class LoginResponse +{ + public int code; + public string msg; + public Data data; +} + +[System.Serializable] +public class Data +{ + public long usn; + public string name; + public string accessToken; + public string refreshToken; +} + +public class SocketManager : MonoBehaviour +{ + private WebSocket _ws; + + public static SocketManager Instance { get; private set; } + + private void Awake() + { + if (Instance != null) + { + Destroy(gameObject); + return; + } + + Instance = this; + } + + public async void Connect() + { + var token = await GetTokenAsync(); + + // _ws = new WebSocket($"wss://www.hlsq.asia/ws/?token={Random.Range(1, 1000)}"); + _ws = new WebSocket($"ws://127.0.0.1:8501/?token={token}"); + + _ws.OnOpen += () => { Debug.Log("Connection open!"); }; + + _ws.OnError += (e) => { Debug.Log("Error! " + e); }; + + _ws.OnClose += (e) => { Debug.Log("Connection closed!"); }; + + _ws.OnMessage += (bytes) => + { + var message = Message.Parser.ParseFrom(bytes); + Debug.Log("OnMessage: " + message.ID); + SocketMessageManager.Instance.TriggerEvent(message.ID, message.Payload); + }; + + await _ws.Connect(); + } + + private async System.Threading.Tasks.Task GetTokenAsync() + { + string token = ""; + var tcs = new System.Threading.Tasks.TaskCompletionSource(); + + StartCoroutine(HttpPost("http://127.0.0.1:8503/gw/login", "{\"phone\": \"1234\", \"code\": \"1234\"}", (resp) => + { + try + { + var r = JsonUtility.FromJson(resp); + token = r.data.accessToken; + tcs.SetResult(token); + } + catch (System.Exception e) + { + tcs.SetException(e); + } + })); + + return await tcs.Task; + } + + public void SendMessage(MessageID id, IMessage msg) + { + var m = new Message + { + ID = id, + Payload = ByteString.CopyFrom(msg.ToByteArray()) + }; + _ws.Send(m.ToByteArray()); + } + + public IEnumerator HttpPost(string url, string jsonData, System.Action callback) + { + var request = new UnityWebRequest(url, "POST"); + var bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonData); + request.uploadHandler = new UploadHandlerRaw(bodyRaw); + request.downloadHandler = new DownloadHandlerBuffer(); + request.SetRequestHeader("Content-Type", "application/json"); + + yield return request.SendWebRequest(); + + if (request.result == UnityWebRequest.Result.Success) + { + callback?.Invoke(request.downloadHandler.text); + } + else + { + Debug.LogError("HTTP POST Error: " + request.error); + } + + request.Dispose(); + } + + private void Update() + { +#if !UNITY_WEBGL || UNITY_EDITOR + _ws?.DispatchMessageQueue(); +#endif + } + + private async void OnApplicationQuit() + { + await _ws.Close(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/SocketManager.cs.meta b/Assets/Scripts/Manager/SocketManager.cs.meta new file mode 100644 index 0000000..1f1b448 --- /dev/null +++ b/Assets/Scripts/Manager/SocketManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d6b127b9486a4f07acfbdcc29fc7d2a5 +timeCreated: 1765791343 \ No newline at end of file diff --git a/Assets/Scripts/Manager/SocketMessageManager.cs b/Assets/Scripts/Manager/SocketMessageManager.cs new file mode 100644 index 0000000..770c81b --- /dev/null +++ b/Assets/Scripts/Manager/SocketMessageManager.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using Google.Protobuf; +using UnityEngine; + +public class SocketMessageManager : MonoBehaviour +{ + // 使用字典存储 + private Dictionary> _eventDictionary; + + public static SocketMessageManager Instance { get; private set; } + + private void Awake() + { + if (Instance != null) + { + Destroy(gameObject); + return; + } + + Instance = this; + _eventDictionary = new Dictionary>(); + } + + // 订阅事件 + public void Subscribe(MessageID messageID, Action listener) + { + if (_eventDictionary.ContainsKey(messageID)) + { + _eventDictionary[messageID] += listener; + } + else + { + _eventDictionary[messageID] = listener; + } + } + + // 取消订阅 + public void Unsubscribe(MessageID messageID, Action listener) + { + if (_eventDictionary.ContainsKey(messageID)) + { + _eventDictionary[messageID] -= listener; + } + } + + // 触发事件 + public void TriggerEvent(MessageID messageID, ByteString data = null) + { + if (_eventDictionary.ContainsKey(messageID)) + { + _eventDictionary[messageID]?.Invoke(data); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/SocketMessageManager.cs.meta b/Assets/Scripts/Manager/SocketMessageManager.cs.meta new file mode 100644 index 0000000..bd5abc7 --- /dev/null +++ b/Assets/Scripts/Manager/SocketMessageManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: afc9630f7f1a49b5b0e8b13bffa9b4ea +timeCreated: 1765791087 \ No newline at end of file diff --git a/Assets/Scripts/PlayerControl.cs b/Assets/Scripts/PlayerControl.cs new file mode 100644 index 0000000..db69f84 --- /dev/null +++ b/Assets/Scripts/PlayerControl.cs @@ -0,0 +1,45 @@ +using UnityEngine; + +// 玩家控制,只有当前玩家能控制自己角色 +public class PlayerControl : MonoBehaviour +{ + private const float SendRate = 1f; // 1秒至少发送一次 + private float _lastSendTime; + private Vector2 _lastSentDirection = Vector2.zero; + + private void Update() + { + var input = new Vector2( + Input.GetAxisRaw("Horizontal"), + Input.GetAxisRaw("Vertical") + ); + var currentDir = input == Vector2.zero ? Vector2.zero : input.normalized; + + if (Time.time >= _lastSendTime + 1f / SendRate) + { + if (currentDir != Vector2.zero) + { + SendMoveInput(currentDir); + } + } + else if (currentDir != _lastSentDirection) + { + SendMoveInput(currentDir); + } + } + + private void SendMoveInput(Vector2 direction) + { + Debug.Log($"SendMoveInput {direction} {transform.GetComponent().usn}"); + _lastSentDirection = direction; + _lastSendTime = Time.time; + SocketManager.Instance.SendMessage(MessageID.Action, new C2S_Action + { + // Sequence = SocketManager.Instance.Sequence, + // Timestamp = (long)(Time.time * 1000), + Action = ActionID.Move, + DirX = (int)(direction.x * 100), + DirY = (int)(direction.y * 100) + }); + } +} \ No newline at end of file diff --git a/Assets/Scripts/PlayerControl.cs.meta b/Assets/Scripts/PlayerControl.cs.meta new file mode 100644 index 0000000..a707dda --- /dev/null +++ b/Assets/Scripts/PlayerControl.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d7c83e290b104d08836d805dd0733f69 +timeCreated: 1765872496 \ No newline at end of file diff --git a/Assets/Scripts/PlayerInfo.cs b/Assets/Scripts/PlayerInfo.cs new file mode 100644 index 0000000..f13363d --- /dev/null +++ b/Assets/Scripts/PlayerInfo.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public class PlayerInfo : MonoBehaviour +{ + [HideInInspector] public long usn; +} \ No newline at end of file diff --git a/Assets/Scripts/PlayerInfo.cs.meta b/Assets/Scripts/PlayerInfo.cs.meta new file mode 100644 index 0000000..c0fe397 --- /dev/null +++ b/Assets/Scripts/PlayerInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b2fb6c5cc8234d1f853f94a89472348c +timeCreated: 1765858911 \ No newline at end of file diff --git a/Assets/Scripts/PlayerMove.cs b/Assets/Scripts/PlayerMove.cs new file mode 100644 index 0000000..a7f6f07 --- /dev/null +++ b/Assets/Scripts/PlayerMove.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +// 控制玩家移动 +public class PlayerMove : MonoBehaviour +{ + private Vector3 _targetPosition; + private const float SmoothSpeed = 10f; + + private void Start() + { + _targetPosition = transform.position; + } + + private void Update() + { + transform.position = Vector3.Lerp(transform.position, _targetPosition, SmoothSpeed * Time.deltaTime); + } + + public void SetPosition(float x, float y) + { + _targetPosition = new Vector3(x / 100, y / 100, 0f); + } +} \ No newline at end of file diff --git a/Assets/Scripts/PlayerMove.cs.meta b/Assets/Scripts/PlayerMove.cs.meta new file mode 100644 index 0000000..6a2eb42 --- /dev/null +++ b/Assets/Scripts/PlayerMove.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8262c63fb4770549befe57c9245251c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Proto.meta b/Assets/Scripts/Proto.meta new file mode 100644 index 0000000..3937dec --- /dev/null +++ b/Assets/Scripts/Proto.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 616d927c0d69413d84be47b97ebda7b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Proto/Action.cs b/Assets/Scripts/Proto/Action.cs new file mode 100644 index 0000000..788354b --- /dev/null +++ b/Assets/Scripts/Proto/Action.cs @@ -0,0 +1,1302 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: action.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from action.proto +public static partial class ActionReflection { + + #region Descriptor + /// File descriptor for action.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ActionReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CgxhY3Rpb24ucHJvdG8aD3NjX2NvbW1vbi5wcm90byInChFDMlNfRW50ZXJJ", + "bnN0YW5jZRISCgpJbnN0YW5jZUlEGAEgASgFIjAKEVMyQ19FbnRlckluc3Rh", + "bmNlEhsKBEluZm8YASABKAsyDS5Qb3NpdGlvbkluZm8ieQoKQzJTX0FjdGlv", + "bhIQCghTZXF1ZW5jZRgBIAEoDRIRCglUaW1lc3RhbXAYAiABKAMSGQoGQWN0", + "aW9uGAMgASgOMgkuQWN0aW9uSUQSDAoERGlyWBgEIAEoERIMCgREaXJZGAUg", + "ASgREg8KB1NraWxsSUQYBiABKAUiMQoMUG9zaXRpb25JbmZvEgsKA1VTThgB", + "IAEoAxIJCgFYGAIgASgREgkKAVkYAyABKBEiKwoMUzJDX1Bvc2l0aW9uEhsK", + "BEluZm8YASADKAsyDS5Qb3NpdGlvbkluZm8qSwoIQWN0aW9uSUQSFQoRQUNU", + "SU9OX0lEX0lOVkFMSUQQABISCg5BQ1RJT05fSURfTU9WRRABEhQKEEFDVElP", + "Tl9JRF9BVFRBQ0sQAkIXWhVjb21tb24vcHJvdG8vc2Mvc2NfcGJiBnByb3Rv", + "Mw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::ScCommonReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ActionID), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::C2S_EnterInstance), global::C2S_EnterInstance.Parser, new[]{ "InstanceID" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::S2C_EnterInstance), global::S2C_EnterInstance.Parser, new[]{ "Info" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::C2S_Action), global::C2S_Action.Parser, new[]{ "Sequence", "Timestamp", "Action", "DirX", "DirY", "SkillID" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::PositionInfo), global::PositionInfo.Parser, new[]{ "USN", "X", "Y" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::S2C_Position), global::S2C_Position.Parser, new[]{ "Info" }, null, null, null, null) + })); + } + #endregion + +} +#region Enums +/// +/// MESSAGE_ID_ACTION +/// +public enum ActionID { + [pbr::OriginalName("ACTION_ID_INVALID")] Invalid = 0, + /// + /// 移动 + /// + [pbr::OriginalName("ACTION_ID_MOVE")] Move = 1, + /// + /// 攻击 + /// + [pbr::OriginalName("ACTION_ID_ATTACK")] Attack = 2, +} + +#endregion + +#region Messages +/// +/// MESSAGE_ID_ENTER_INSTANCE +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class C2S_EnterInstance : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new C2S_EnterInstance()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ActionReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_EnterInstance() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_EnterInstance(C2S_EnterInstance other) : this() { + instanceID_ = other.instanceID_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_EnterInstance Clone() { + return new C2S_EnterInstance(this); + } + + /// Field number for the "InstanceID" field. + public const int InstanceIDFieldNumber = 1; + private int instanceID_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int InstanceID { + get { return instanceID_; } + set { + instanceID_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as C2S_EnterInstance); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(C2S_EnterInstance other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (InstanceID != other.InstanceID) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (InstanceID != 0) hash ^= InstanceID.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (InstanceID != 0) { + output.WriteRawTag(8); + output.WriteInt32(InstanceID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (InstanceID != 0) { + output.WriteRawTag(8); + output.WriteInt32(InstanceID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (InstanceID != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(InstanceID); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(C2S_EnterInstance other) { + if (other == null) { + return; + } + if (other.InstanceID != 0) { + InstanceID = other.InstanceID; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + InstanceID = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + InstanceID = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class S2C_EnterInstance : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new S2C_EnterInstance()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ActionReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_EnterInstance() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_EnterInstance(S2C_EnterInstance other) : this() { + info_ = other.info_ != null ? other.info_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_EnterInstance Clone() { + return new S2C_EnterInstance(this); + } + + /// Field number for the "Info" field. + public const int InfoFieldNumber = 1; + private global::PositionInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::PositionInfo Info { + get { return info_; } + set { + info_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as S2C_EnterInstance); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(S2C_EnterInstance other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Info, other.Info)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (info_ != null) hash ^= Info.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (info_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (info_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(S2C_EnterInstance other) { + if (other == null) { + return; + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::PositionInfo(); + } + Info.MergeFrom(other.Info); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (info_ == null) { + Info = new global::PositionInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (info_ == null) { + Info = new global::PositionInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class C2S_Action : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new C2S_Action()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ActionReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_Action() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_Action(C2S_Action other) : this() { + sequence_ = other.sequence_; + timestamp_ = other.timestamp_; + action_ = other.action_; + dirX_ = other.dirX_; + dirY_ = other.dirY_; + skillID_ = other.skillID_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public C2S_Action Clone() { + return new C2S_Action(this); + } + + /// Field number for the "Sequence" field. + public const int SequenceFieldNumber = 1; + private uint sequence_; + /// + /// 指令序号 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Sequence { + get { return sequence_; } + set { + sequence_ = value; + } + } + + /// Field number for the "Timestamp" field. + public const int TimestampFieldNumber = 2; + private long timestamp_; + /// + /// 时间戳(毫秒) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Timestamp { + get { return timestamp_; } + set { + timestamp_ = value; + } + } + + /// Field number for the "Action" field. + public const int ActionFieldNumber = 3; + private global::ActionID action_ = global::ActionID.Invalid; + /// + /// 指令ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::ActionID Action { + get { return action_; } + set { + action_ = value; + } + } + + /// Field number for the "DirX" field. + public const int DirXFieldNumber = 4; + private int dirX_; + /// + /// 移动-X方向(×100 缩放) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int DirX { + get { return dirX_; } + set { + dirX_ = value; + } + } + + /// Field number for the "DirY" field. + public const int DirYFieldNumber = 5; + private int dirY_; + /// + /// 移动-Y方向(×100 缩放) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int DirY { + get { return dirY_; } + set { + dirY_ = value; + } + } + + /// Field number for the "SkillID" field. + public const int SkillIDFieldNumber = 6; + private int skillID_; + /// + /// 攻击-技能ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int SkillID { + get { return skillID_; } + set { + skillID_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as C2S_Action); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(C2S_Action other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Sequence != other.Sequence) return false; + if (Timestamp != other.Timestamp) return false; + if (Action != other.Action) return false; + if (DirX != other.DirX) return false; + if (DirY != other.DirY) return false; + if (SkillID != other.SkillID) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Sequence != 0) hash ^= Sequence.GetHashCode(); + if (Timestamp != 0L) hash ^= Timestamp.GetHashCode(); + if (Action != global::ActionID.Invalid) hash ^= Action.GetHashCode(); + if (DirX != 0) hash ^= DirX.GetHashCode(); + if (DirY != 0) hash ^= DirY.GetHashCode(); + if (SkillID != 0) hash ^= SkillID.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Sequence != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Sequence); + } + if (Timestamp != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Timestamp); + } + if (Action != global::ActionID.Invalid) { + output.WriteRawTag(24); + output.WriteEnum((int) Action); + } + if (DirX != 0) { + output.WriteRawTag(32); + output.WriteSInt32(DirX); + } + if (DirY != 0) { + output.WriteRawTag(40); + output.WriteSInt32(DirY); + } + if (SkillID != 0) { + output.WriteRawTag(48); + output.WriteInt32(SkillID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Sequence != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Sequence); + } + if (Timestamp != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Timestamp); + } + if (Action != global::ActionID.Invalid) { + output.WriteRawTag(24); + output.WriteEnum((int) Action); + } + if (DirX != 0) { + output.WriteRawTag(32); + output.WriteSInt32(DirX); + } + if (DirY != 0) { + output.WriteRawTag(40); + output.WriteSInt32(DirY); + } + if (SkillID != 0) { + output.WriteRawTag(48); + output.WriteInt32(SkillID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Sequence != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Sequence); + } + if (Timestamp != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Timestamp); + } + if (Action != global::ActionID.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Action); + } + if (DirX != 0) { + size += 1 + pb::CodedOutputStream.ComputeSInt32Size(DirX); + } + if (DirY != 0) { + size += 1 + pb::CodedOutputStream.ComputeSInt32Size(DirY); + } + if (SkillID != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(SkillID); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(C2S_Action other) { + if (other == null) { + return; + } + if (other.Sequence != 0) { + Sequence = other.Sequence; + } + if (other.Timestamp != 0L) { + Timestamp = other.Timestamp; + } + if (other.Action != global::ActionID.Invalid) { + Action = other.Action; + } + if (other.DirX != 0) { + DirX = other.DirX; + } + if (other.DirY != 0) { + DirY = other.DirY; + } + if (other.SkillID != 0) { + SkillID = other.SkillID; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Sequence = input.ReadUInt32(); + break; + } + case 16: { + Timestamp = input.ReadInt64(); + break; + } + case 24: { + Action = (global::ActionID) input.ReadEnum(); + break; + } + case 32: { + DirX = input.ReadSInt32(); + break; + } + case 40: { + DirY = input.ReadSInt32(); + break; + } + case 48: { + SkillID = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Sequence = input.ReadUInt32(); + break; + } + case 16: { + Timestamp = input.ReadInt64(); + break; + } + case 24: { + Action = (global::ActionID) input.ReadEnum(); + break; + } + case 32: { + DirX = input.ReadSInt32(); + break; + } + case 40: { + DirY = input.ReadSInt32(); + break; + } + case 48: { + SkillID = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +/// +/// MESSAGE_ID_POSITION +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class PositionInfo : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PositionInfo()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ActionReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PositionInfo() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PositionInfo(PositionInfo other) : this() { + uSN_ = other.uSN_; + x_ = other.x_; + y_ = other.y_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PositionInfo Clone() { + return new PositionInfo(this); + } + + /// Field number for the "USN" field. + public const int USNFieldNumber = 1; + private long uSN_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long USN { + get { return uSN_; } + set { + uSN_ = value; + } + } + + /// Field number for the "X" field. + public const int XFieldNumber = 2; + private int x_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int X { + get { return x_; } + set { + x_ = value; + } + } + + /// Field number for the "Y" field. + public const int YFieldNumber = 3; + private int y_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Y { + get { return y_; } + set { + y_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PositionInfo); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PositionInfo other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (USN != other.USN) return false; + if (X != other.X) return false; + if (Y != other.Y) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (USN != 0L) hash ^= USN.GetHashCode(); + if (X != 0) hash ^= X.GetHashCode(); + if (Y != 0) hash ^= Y.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (USN != 0L) { + output.WriteRawTag(8); + output.WriteInt64(USN); + } + if (X != 0) { + output.WriteRawTag(16); + output.WriteSInt32(X); + } + if (Y != 0) { + output.WriteRawTag(24); + output.WriteSInt32(Y); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (USN != 0L) { + output.WriteRawTag(8); + output.WriteInt64(USN); + } + if (X != 0) { + output.WriteRawTag(16); + output.WriteSInt32(X); + } + if (Y != 0) { + output.WriteRawTag(24); + output.WriteSInt32(Y); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (USN != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(USN); + } + if (X != 0) { + size += 1 + pb::CodedOutputStream.ComputeSInt32Size(X); + } + if (Y != 0) { + size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Y); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PositionInfo other) { + if (other == null) { + return; + } + if (other.USN != 0L) { + USN = other.USN; + } + if (other.X != 0) { + X = other.X; + } + if (other.Y != 0) { + Y = other.Y; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + USN = input.ReadInt64(); + break; + } + case 16: { + X = input.ReadSInt32(); + break; + } + case 24: { + Y = input.ReadSInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + USN = input.ReadInt64(); + break; + } + case 16: { + X = input.ReadSInt32(); + break; + } + case 24: { + Y = input.ReadSInt32(); + break; + } + } + } + } + #endif + +} + +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class S2C_Position : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new S2C_Position()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ActionReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_Position() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_Position(S2C_Position other) : this() { + info_ = other.info_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_Position Clone() { + return new S2C_Position(this); + } + + /// Field number for the "Info" field. + public const int InfoFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_info_codec + = pb::FieldCodec.ForMessage(10, global::PositionInfo.Parser); + private readonly pbc::RepeatedField info_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Info { + get { return info_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as S2C_Position); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(S2C_Position other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!info_.Equals(other.info_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= info_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + info_.WriteTo(output, _repeated_info_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + info_.WriteTo(ref output, _repeated_info_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += info_.CalculateSize(_repeated_info_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(S2C_Position other) { + if (other == null) { + return; + } + info_.Add(other.info_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + info_.AddEntriesFrom(input, _repeated_info_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + info_.AddEntriesFrom(ref input, _repeated_info_codec); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/Assets/Scripts/Proto/Action.cs.meta b/Assets/Scripts/Proto/Action.cs.meta new file mode 100644 index 0000000..da6891b --- /dev/null +++ b/Assets/Scripts/Proto/Action.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ca822f0a057b8c42b38e4605c0482d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Proto/Define.cs b/Assets/Scripts/Proto/Define.cs new file mode 100644 index 0000000..29e9197 --- /dev/null +++ b/Assets/Scripts/Proto/Define.cs @@ -0,0 +1,303 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: define.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from define.proto +public static partial class DefineReflection { + + #region Descriptor + /// File descriptor for define.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static DefineReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CgxkZWZpbmUucHJvdG8aD3NjX2NvbW1vbi5wcm90byIyCgdNZXNzYWdlEhYK", + "AklEGAEgASgOMgouTWVzc2FnZUlEEg8KB1BheWxvYWQYAiABKAwqwgEKCU1l", + "c3NhZ2VJRBIWChJNRVNTQUdFX0lEX0lOVkFMSUQQABIXChNNRVNTQUdFX0lE", + "X0tJQ0tfT1VUEAESFwoTTUVTU0FHRV9JRF9RVUVVRV9VUBACEhwKGE1FU1NB", + "R0VfSURfTE9HSU5fU1VDQ0VTUxADEh0KGU1FU1NBR0VfSURfRU5URVJfSU5T", + "VEFOQ0UQZRIVChFNRVNTQUdFX0lEX0FDVElPThBmEhcKE01FU1NBR0VfSURf", + "UE9TSVRJT04QZ0IXWhVjb21tb24vcHJvdG8vc2Mvc2NfcGJiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::ScCommonReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::MessageID), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Message), global::Message.Parser, new[]{ "ID", "Payload" }, null, null, null, null) + })); + } + #endregion + +} +#region Enums +public enum MessageID { + [pbr::OriginalName("MESSAGE_ID_INVALID")] Invalid = 0, + /// + /// 服务器踢人 + /// + [pbr::OriginalName("MESSAGE_ID_KICK_OUT")] KickOut = 1, + /// + /// 排队中 + /// + [pbr::OriginalName("MESSAGE_ID_QUEUE_UP")] QueueUp = 2, + /// + /// 登录成功 + /// + [pbr::OriginalName("MESSAGE_ID_LOGIN_SUCCESS")] LoginSuccess = 3, + /// + /// 进入副本 + /// + [pbr::OriginalName("MESSAGE_ID_ENTER_INSTANCE")] EnterInstance = 101, + /// + /// 指令 + /// + [pbr::OriginalName("MESSAGE_ID_ACTION")] Action = 102, + /// + /// 位置更新 + /// + [pbr::OriginalName("MESSAGE_ID_POSITION")] Position = 103, +} + +#endregion + +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class Message : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Message()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::DefineReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Message() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Message(Message other) : this() { + iD_ = other.iD_; + payload_ = other.payload_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Message Clone() { + return new Message(this); + } + + /// Field number for the "ID" field. + public const int IDFieldNumber = 1; + private global::MessageID iD_ = global::MessageID.Invalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::MessageID ID { + get { return iD_; } + set { + iD_ = value; + } + } + + /// Field number for the "Payload" field. + public const int PayloadFieldNumber = 2; + private pb::ByteString payload_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Payload { + get { return payload_; } + set { + payload_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Message); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Message other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ID != other.ID) return false; + if (Payload != other.Payload) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (ID != global::MessageID.Invalid) hash ^= ID.GetHashCode(); + if (Payload.Length != 0) hash ^= Payload.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (ID != global::MessageID.Invalid) { + output.WriteRawTag(8); + output.WriteEnum((int) ID); + } + if (Payload.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Payload); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (ID != global::MessageID.Invalid) { + output.WriteRawTag(8); + output.WriteEnum((int) ID); + } + if (Payload.Length != 0) { + output.WriteRawTag(18); + output.WriteBytes(Payload); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (ID != global::MessageID.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ID); + } + if (Payload.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Payload); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Message other) { + if (other == null) { + return; + } + if (other.ID != global::MessageID.Invalid) { + ID = other.ID; + } + if (other.Payload.Length != 0) { + Payload = other.Payload; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + ID = (global::MessageID) input.ReadEnum(); + break; + } + case 18: { + Payload = input.ReadBytes(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + ID = (global::MessageID) input.ReadEnum(); + break; + } + case 18: { + Payload = input.ReadBytes(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/Assets/Scripts/Proto/Define.cs.meta b/Assets/Scripts/Proto/Define.cs.meta new file mode 100644 index 0000000..99d16b1 --- /dev/null +++ b/Assets/Scripts/Proto/Define.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d4e8c64e79289b744a0ea4b3a8386ab9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Proto/ScCommon.cs b/Assets/Scripts/Proto/ScCommon.cs new file mode 100644 index 0000000..fed1db3 --- /dev/null +++ b/Assets/Scripts/Proto/ScCommon.cs @@ -0,0 +1,35 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: sc_common.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from sc_common.proto +public static partial class ScCommonReflection { + + #region Descriptor + /// File descriptor for sc_common.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ScCommonReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cg9zY19jb21tb24ucHJvdG9CG1oZY29tbW9uL3Byb3RvL3NjL3NjX2NvbW1v", + "bmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, null)); + } + #endregion + +} + +#endregion Designer generated code diff --git a/Assets/Scripts/Proto/ScCommon.cs.meta b/Assets/Scripts/Proto/ScCommon.cs.meta new file mode 100644 index 0000000..b0168cb --- /dev/null +++ b/Assets/Scripts/Proto/ScCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2858039bb822fe74a92883426174f776 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Proto/Service.cs b/Assets/Scripts/Proto/Service.cs new file mode 100644 index 0000000..48b68ee --- /dev/null +++ b/Assets/Scripts/Proto/Service.cs @@ -0,0 +1,661 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +/// Holder for reflection information generated from service.proto +public static partial class ServiceReflection { + + #region Descriptor + /// File descriptor for service.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ServiceReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cg1zZXJ2aWNlLnByb3RvGg9zY19jb21tb24ucHJvdG8iJQoLUzJDX0tpY2tP", + "dXQSFgoCSUQYASABKA4yCi5LaWNrT3V0SUQiIwoLUzJDX1F1ZXVlVXASFAoM", + "UXVldWVVcENvdW50GAEgASgFIiYKEFMyQ19Mb2dpblN1Y2Nlc3MSEgoKSW5z", + "dGFuY2VJRBgBIAEoBSq+AQoJS2lja091dElEEhcKE0tJQ0tfT1VUX0lEX0lO", + "VkFMSUQQABIfChtLSUNLX09VVF9JRF9EVVBMSUNBVEVfTE9HSU4QARIbChdL", + "SUNLX09VVF9JRF9TRVJWRVJfQlVTWRACEhwKGEtJQ0tfT1VUX0lEX1NFUlZF", + "Ul9DTE9TRRADEh0KGUtJQ0tfT1VUX0lEX1FVRVVFX1VQX0ZVTEwQBBIdChlL", + "SUNLX09VVF9JRF9UT0tFTl9JTlZBTElEEAVCF1oVY29tbW9uL3Byb3RvL3Nj", + "L3NjX3BiYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::ScCommonReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::KickOutID), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::S2C_KickOut), global::S2C_KickOut.Parser, new[]{ "ID" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::S2C_QueueUp), global::S2C_QueueUp.Parser, new[]{ "QueueUpCount" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::S2C_LoginSuccess), global::S2C_LoginSuccess.Parser, new[]{ "InstanceID" }, null, null, null, null) + })); + } + #endregion + +} +#region Enums +/// +/// MESSAGE_ID_KICK_OUT +/// +public enum KickOutID { + [pbr::OriginalName("KICK_OUT_ID_INVALID")] Invalid = 0, + /// + /// 重复登录 + /// + [pbr::OriginalName("KICK_OUT_ID_DUPLICATE_LOGIN")] DuplicateLogin = 1, + /// + /// 服务器繁忙 + /// + [pbr::OriginalName("KICK_OUT_ID_SERVER_BUSY")] ServerBusy = 2, + /// + /// 服务器关闭 + /// + [pbr::OriginalName("KICK_OUT_ID_SERVER_CLOSE")] ServerClose = 3, + /// + /// 排队上限 + /// + [pbr::OriginalName("KICK_OUT_ID_QUEUE_UP_FULL")] QueueUpFull = 4, + /// + /// Token无效 + /// + [pbr::OriginalName("KICK_OUT_ID_TOKEN_INVALID")] TokenInvalid = 5, +} + +#endregion + +#region Messages +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class S2C_KickOut : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new S2C_KickOut()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ServiceReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_KickOut() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_KickOut(S2C_KickOut other) : this() { + iD_ = other.iD_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_KickOut Clone() { + return new S2C_KickOut(this); + } + + /// Field number for the "ID" field. + public const int IDFieldNumber = 1; + private global::KickOutID iD_ = global::KickOutID.Invalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::KickOutID ID { + get { return iD_; } + set { + iD_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as S2C_KickOut); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(S2C_KickOut other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ID != other.ID) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (ID != global::KickOutID.Invalid) hash ^= ID.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (ID != global::KickOutID.Invalid) { + output.WriteRawTag(8); + output.WriteEnum((int) ID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (ID != global::KickOutID.Invalid) { + output.WriteRawTag(8); + output.WriteEnum((int) ID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (ID != global::KickOutID.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ID); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(S2C_KickOut other) { + if (other == null) { + return; + } + if (other.ID != global::KickOutID.Invalid) { + ID = other.ID; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + ID = (global::KickOutID) input.ReadEnum(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + ID = (global::KickOutID) input.ReadEnum(); + break; + } + } + } + } + #endif + +} + +/// +/// MESSAGE_ID_QUEUE_UP +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class S2C_QueueUp : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new S2C_QueueUp()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ServiceReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_QueueUp() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_QueueUp(S2C_QueueUp other) : this() { + queueUpCount_ = other.queueUpCount_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_QueueUp Clone() { + return new S2C_QueueUp(this); + } + + /// Field number for the "QueueUpCount" field. + public const int QueueUpCountFieldNumber = 1; + private int queueUpCount_; + /// + /// 排队人数 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int QueueUpCount { + get { return queueUpCount_; } + set { + queueUpCount_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as S2C_QueueUp); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(S2C_QueueUp other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (QueueUpCount != other.QueueUpCount) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (QueueUpCount != 0) hash ^= QueueUpCount.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (QueueUpCount != 0) { + output.WriteRawTag(8); + output.WriteInt32(QueueUpCount); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (QueueUpCount != 0) { + output.WriteRawTag(8); + output.WriteInt32(QueueUpCount); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (QueueUpCount != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(QueueUpCount); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(S2C_QueueUp other) { + if (other == null) { + return; + } + if (other.QueueUpCount != 0) { + QueueUpCount = other.QueueUpCount; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + QueueUpCount = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + QueueUpCount = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +/// +/// MESSAGE_ID_LOGIN_SUCCESS +/// +[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] +public sealed partial class S2C_LoginSuccess : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif +{ + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new S2C_LoginSuccess()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::ServiceReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_LoginSuccess() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_LoginSuccess(S2C_LoginSuccess other) : this() { + instanceID_ = other.instanceID_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public S2C_LoginSuccess Clone() { + return new S2C_LoginSuccess(this); + } + + /// Field number for the "InstanceID" field. + public const int InstanceIDFieldNumber = 1; + private int instanceID_; + /// + /// 副本ID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int InstanceID { + get { return instanceID_; } + set { + instanceID_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as S2C_LoginSuccess); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(S2C_LoginSuccess other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (InstanceID != other.InstanceID) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (InstanceID != 0) hash ^= InstanceID.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (InstanceID != 0) { + output.WriteRawTag(8); + output.WriteInt32(InstanceID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (InstanceID != 0) { + output.WriteRawTag(8); + output.WriteInt32(InstanceID); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (InstanceID != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(InstanceID); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(S2C_LoginSuccess other) { + if (other == null) { + return; + } + if (other.InstanceID != 0) { + InstanceID = other.InstanceID; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + InstanceID = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + InstanceID = input.ReadInt32(); + break; + } + } + } + } + #endif + +} + +#endregion + + +#endregion Designer generated code diff --git a/Assets/Scripts/Proto/Service.cs.meta b/Assets/Scripts/Proto/Service.cs.meta new file mode 100644 index 0000000..eea2fab --- /dev/null +++ b/Assets/Scripts/Proto/Service.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3a51699186974d3e8a11d764e0e8c90d +timeCreated: 1767689425 \ No newline at end of file diff --git a/Packages/manifest.json b/Packages/manifest.json new file mode 100644 index 0000000..51513c0 --- /dev/null +++ b/Packages/manifest.json @@ -0,0 +1,45 @@ +{ + "dependencies": { + "com.endel.nativewebsocket": "https://github.com/endel/NativeWebSocket.git#upm", + "com.unity.collab-proxy": "2.7.1", + "com.unity.feature.2d": "2.0.1", + "com.unity.ide.rider": "3.0.34", + "com.unity.ide.visualstudio": "2.0.22", + "com.unity.test-framework": "1.1.33", + "com.unity.textmeshpro": "3.0.7", + "com.unity.timeline": "1.7.6", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.9.4", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..30a307e --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,473 @@ +{ + "dependencies": { + "com.endel.nativewebsocket": { + "version": "https://github.com/endel/NativeWebSocket.git#upm", + "depth": 0, + "source": "git", + "dependencies": {}, + "hash": "1d8b49b3fee41c09a98141f1f1a5e4db47e14229" + }, + "com.unity.2d.animation": { + "version": "9.1.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "8.0.4", + "com.unity.2d.sprite": "1.0.0", + "com.unity.collections": "1.1.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.aseprite": { + "version": "1.1.8", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "6.0.6", + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.2.6", + "com.unity.modules.animation": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.common": { + "version": "8.0.4", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.7.3", + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.1.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.pixel-perfect": { + "version": "5.0.3", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.psdimporter": { + "version": "8.0.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.animation": "9.1.1", + "com.unity.2d.common": "8.0.2", + "com.unity.2d.sprite": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.spriteshape": { + "version": "9.0.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.1.0", + "com.unity.2d.common": "8.0.4", + "com.unity.modules.physics2d": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.2d.tilemap": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + } + }, + "com.unity.2d.tilemap.extras": { + "version": "3.1.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.burst": { + "version": "1.8.19", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.collab-proxy": { + "version": "2.7.1", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.cn" + }, + "com.unity.collections": { + "version": "1.2.4", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.6.6", + "com.unity.test-framework": "1.1.31" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.cn" + }, + "com.unity.feature.2d": { + "version": "2.0.1", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.2d.animation": "9.1.3", + "com.unity.2d.pixel-perfect": "5.0.3", + "com.unity.2d.psdimporter": "8.0.5", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.spriteshape": "9.0.5", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.2d.tilemap.extras": "3.1.3", + "com.unity.2d.aseprite": "1.1.8" + } + }, + "com.unity.ide.rider": { + "version": "3.0.34", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.22", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.mathematics": { + "version": "1.2.6", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.cn" + }, + "com.unity.test-framework": { + "version": "1.1.33", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.textmeshpro": { + "version": "3.0.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.timeline": { + "version": "1.7.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualscripting": { + "version": "1.9.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.cn" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..72d1430 --- /dev/null +++ b/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..82ab0f5 --- /dev/null +++ b/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 2cda990e2423bbf4892e6590ba056729 + m_configObjects: {} diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..e6f57fd --- /dev/null +++ b/ProjectSettings/EditorSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 1 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 5 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_CachingShaderPreprocessor: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 1 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..c165afb --- /dev/null +++ b/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_DefaultRenderingLayerMask: 1 + m_LogWhenShaderIsCompiled: 0 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..ad2654e --- /dev/null +++ b/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ProjectSettings/NetworkManager.asset b/ProjectSettings/NetworkManager.asset new file mode 100644 index 0000000..5dc6a83 --- /dev/null +++ b/ProjectSettings/NetworkManager.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!149 &1 +NetworkManager: + m_ObjectHideFlags: 0 + m_DebugLevel: 0 + m_Sendrate: 15 + m_AssetToPrefab: {} diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..5f48647 --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.cn + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -836 + m_OriginalInstanceId: -838 + m_LoadAssets: 0 diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6cfcdda --- /dev/null +++ b/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..ed759ec --- /dev/null +++ b/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,723 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 26 + productGUID: 696eaf8b7ba97cc49bd1a5e40c0b59a9 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Point + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 1920 + defaultScreenHeightWeb: 1080 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + unsupportedMSAAFallback: 0 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 0 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 + switchMaxWorkerMultiple: 8 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: + Standalone: com.DefaultCompany.2DProject + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 12.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 10ad67313f4034357812315f3c407484 + templatePackageId: com.unity.template.2d@7.0.4 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 0 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 0 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 0 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 0 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 1 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: + - m_BuildTarget: Android + m_Format: 3 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 2 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + managedStrippingLevel: + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + QNX: 1 + Stadia: 1 + VisionOS: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Point + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Point + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: + apiCompatibilityLevel: 6 + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..0feccd8 --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2022.3.59f1c1 +m_EditorVersionWithRevision: 2022.3.59f1c1 (6f0f5d6fe989) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..bcd6706 --- /dev/null +++ b/ProjectSettings/QualitySettings.asset @@ -0,0 +1,239 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..5e97f83 --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..a27ab5f --- /dev/null +++ b/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_CNEventUrl: https://cdp.cloud.unity.cn/v1/events + m_CNConfigUrl: https://cdp.cloud.unity.cn/config + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity.cn + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..46f38e1 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file