From 7fe89be50dd5f1da324009c378d19bb360e147c4 Mon Sep 17 00:00:00 2001
From: afeijia <ifeijia@qq.com>
Date: Fri, 15 Dec 2023 13:29:59 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BA=E5=AE=9A=E4=BD=8D?=
 =?UTF-8?q?=20=E4=BB=BB=E5=8A=A1=E4=B8=8B=E5=8F=91=20=E5=B7=A1=E6=A3=80?=
 =?UTF-8?q?=E7=BB=93=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 GQ_URP/GQ/Assets/ATemp.meta                   |    8 +
 GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat      |  126 ++
 GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat.meta |    8 +
 GQ_URP/GQ/Assets/Scenes/Temp.meta             |    8 +
 GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity  | 1225 +++++++++++++++++
 .../Assets/Scenes/Temp/New Scene.unity.meta   |    7 +
 GQ_URP/GQ/Assets/Scripts/WJ/Robot.meta        |    8 +
 .../Assets/Scripts/WJ/Robot/InterfaceTest.cs  |   90 ++
 .../Scripts/WJ/Robot/InterfaceTest.cs.meta    |   11 +
 .../Scripts/WJ/Robot/RobotDataManager.cs      |  636 +++++++++
 .../Scripts/WJ/Robot/RobotDataManager.cs.meta |   11 +
 .../Scripts/WJ/Robot/RobotMapCreater.cs       |   18 +
 .../Scripts/WJ/Robot/RobotMapCreater.cs.meta  |   11 +
 .../GQ/Assets/Scripts/WJ/Robot/RobotObject.cs |   95 ++
 .../Scripts/WJ/Robot/RobotObject.cs.meta      |   11 +
 GQ_URP/GQ/Assets/Scripts/WJ/Utilities.meta    |    8 +
 .../GQ/Assets/Scripts/WJ/Utilities/Classes.cs | 1022 ++++++++++++++
 .../Scripts/WJ/Utilities/Classes.cs.meta      |   11 +
 .../Scripts/WJ/Utilities/InterfaceManager.cs  |  273 ++++
 .../WJ/Utilities/InterfaceManager.cs.meta     |   11 +
 GQ_URP/GQ/Assets/StreamingAssets/robot.txt    |    5 +
 .../GQ/Assets/StreamingAssets/robot.txt.meta  |    7 +
 22 files changed, 3610 insertions(+)
 create mode 100644 GQ_URP/GQ/Assets/ATemp.meta
 create mode 100644 GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat
 create mode 100644 GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat.meta
 create mode 100644 GQ_URP/GQ/Assets/Scenes/Temp.meta
 create mode 100644 GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity
 create mode 100644 GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Utilities.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs
 create mode 100644 GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs.meta
 create mode 100644 GQ_URP/GQ/Assets/StreamingAssets/robot.txt
 create mode 100644 GQ_URP/GQ/Assets/StreamingAssets/robot.txt.meta

diff --git a/GQ_URP/GQ/Assets/ATemp.meta b/GQ_URP/GQ/Assets/ATemp.meta
new file mode 100644
index 000000000..ff92b309a
--- /dev/null
+++ b/GQ_URP/GQ/Assets/ATemp.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 741582b0d3c129649a26e0b61e028e00
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat b/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat
new file mode 100644
index 000000000..98a4e694b
--- /dev/null
+++ b/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat
@@ -0,0 +1,126 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-1224730893789095258
+MonoBehaviour:
+  m_ObjectHideFlags: 11
+  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: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  version: 5
+--- !u!21 &2100000
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: DisplayOrigin
+  m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap:
+    RenderType: Opaque
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BaseMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_Lightmaps:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_LightmapsInd:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_ShadowMasks:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AlphaClip: 0
+    - _Blend: 0
+    - _BumpScale: 1
+    - _ClearCoatMask: 0
+    - _ClearCoatSmoothness: 0
+    - _Cull: 2
+    - _Cutoff: 0.5
+    - _DetailAlbedoMapScale: 1
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _EnvironmentReflections: 1
+    - _GlossMapScale: 0
+    - _Glossiness: 0
+    - _GlossyReflections: 0
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.005
+    - _QueueOffset: 0
+    - _ReceiveShadows: 1
+    - _Smoothness: 0.5
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Surface: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    m_Colors:
+    - _BaseColor: {r: 0, g: 0, b: 1, a: 1}
+    - _Color: {r: 0, g: 0, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+  m_BuildTextureStacks: []
diff --git a/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat.meta b/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat.meta
new file mode 100644
index 000000000..e5a8421a0
--- /dev/null
+++ b/GQ_URP/GQ/Assets/ATemp/DisplayOrigin.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 19bb1aa084d3a2c44aeb2f85fe619887
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scenes/Temp.meta b/GQ_URP/GQ/Assets/Scenes/Temp.meta
new file mode 100644
index 000000000..22ff93960
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scenes/Temp.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f245e35bc6812714daa96301797a61ce
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity b/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity
new file mode 100644
index 000000000..e8ca3e999
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity	
@@ -0,0 +1,1225 @@
+%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: 0
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
+  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: 1
+    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: 1
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 512
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 256
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 1
+    m_PVRDenoiserTypeDirect: 1
+    m_PVRDenoiserTypeIndirect: 1
+    m_PVRDenoiserTypeAO: 1
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 1
+    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: 2
+    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
+    accuratePlacement: 0
+    maxJobWorkers: 0
+    preserveTilesOutsideBounds: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1 &100928288
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 100928290}
+  - component: {fileID: 100928289}
+  - component: {fileID: 100928291}
+  m_Layer: 0
+  m_Name: Directional Light
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &100928289
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 100928288}
+  m_Enabled: 1
+  serializedVersion: 10
+  m_Type: 1
+  m_Shape: 0
+  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+  m_Intensity: 1
+  m_Range: 10
+  m_SpotAngle: 30
+  m_InnerSpotAngle: 21.80208
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 2
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 1
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_UseViewFrustumForShadowCasterCull: 1
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &100928290
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 100928288}
+  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+  m_LocalPosition: {x: 0, y: 3, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!114 &100928291
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 100928288}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Version: 1
+  m_UsePipelineSettings: 1
+  m_AdditionalLightsShadowResolutionTier: 2
+  m_LightLayerMask: 1
+  m_CustomShadowLayers: 0
+  m_ShadowLayerMask: 1
+  m_LightCookieSize: {x: 1, y: 1}
+  m_LightCookieOffset: {x: 0, y: 0}
+--- !u!1 &363971834
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 363971835}
+  - component: {fileID: 363971838}
+  - component: {fileID: 363971837}
+  - component: {fileID: 363971836}
+  m_Layer: 0
+  m_Name: Robot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &363971835
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 363971834}
+  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: 543541846}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 30, y: 30}
+  m_SizeDelta: {x: 30, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &363971836
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 363971834}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 204b2add5d8a2794fa97ca8d1756f6ab, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  rect_transform: {fileID: 0}
+  origin_x: 0
+  origin_y: 0
+  pixel_width: 0
+  pixel_height: 0
+  resolution: 0
+  display_x: 0
+  display_y: 0
+--- !u!114 &363971837
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 363971834}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &363971838
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 363971834}
+  m_CullTransparentMesh: 1
+--- !u!1 &543541845
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 543541846}
+  - component: {fileID: 543541848}
+  - component: {fileID: 543541847}
+  m_Layer: 0
+  m_Name: Map
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &543541846
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 543541845}
+  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: 363971835}
+  m_Father: {fileID: 1499972057}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 67.72998, y: -139.58997}
+  m_SizeDelta: {x: 780.4545, y: 325.9091}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &543541847
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 543541845}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 67729fca5a703644f849fe158f392600, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &543541848
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 543541845}
+  m_CullTransparentMesh: 1
+--- !u!1 &960733264
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 960733265}
+  - component: {fileID: 960733267}
+  - component: {fileID: 960733266}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &960733265
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 960733264}
+  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: 1499972057}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -421, y: -201.33334}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &960733266
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 960733264}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &960733267
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 960733264}
+  m_CullTransparentMesh: 1
+--- !u!1 &1101054774
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1101054778}
+  - component: {fileID: 1101054777}
+  - component: {fileID: 1101054776}
+  - component: {fileID: 1101054775}
+  m_Layer: 0
+  m_Name: Map
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!64 &1101054775
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1101054774}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 0
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &1101054776
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1101054774}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+  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: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1101054777
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1101054774}
+  m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1101054778
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1101054774}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -500, y: 0, z: 500}
+  m_LocalScale: {x: 100, y: 100, z: 100}
+  m_ConstrainProportionsScale: 1
+  m_Children: []
+  m_Father: {fileID: 1357320836}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1257654157
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1257654160}
+  - component: {fileID: 1257654159}
+  - component: {fileID: 1257654158}
+  - component: {fileID: 1257654161}
+  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 &1257654158
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1257654157}
+  m_Enabled: 1
+--- !u!20 &1257654159
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1257654157}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  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: 0
+  orthographic size: 5
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 1
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!4 &1257654160
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1257654157}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 1, z: -10}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1257654161
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1257654157}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_RenderShadows: 1
+  m_RequiresDepthTextureOption: 2
+  m_RequiresOpaqueTextureOption: 2
+  m_CameraType: 0
+  m_Cameras: []
+  m_RendererIndex: -1
+  m_VolumeLayerMask:
+    serializedVersion: 2
+    m_Bits: 1
+  m_VolumeTrigger: {fileID: 0}
+  m_VolumeFrameworkUpdateModeOption: 2
+  m_RenderPostProcessing: 0
+  m_Antialiasing: 0
+  m_AntialiasingQuality: 2
+  m_StopNaN: 0
+  m_Dithering: 0
+  m_ClearDepth: 1
+  m_AllowXRRendering: 1
+  m_RequiresDepthTexture: 0
+  m_RequiresColorTexture: 0
+  m_Version: 2
+--- !u!1 &1286005539
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1286005540}
+  - component: {fileID: 1286005543}
+  - component: {fileID: 1286005542}
+  - component: {fileID: 1286005541}
+  m_Layer: 0
+  m_Name: DisplayOri(0,0)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1286005540
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1286005539}
+  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: 1357320836}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!135 &1286005541
+SphereCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1286005539}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Radius: 0.5
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1286005542
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1286005539}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 19bb1aa084d3a2c44aeb2f85fe619887, type: 2}
+  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: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1286005543
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1286005539}
+  m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1294847474
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1294847478}
+  - component: {fileID: 1294847477}
+  - component: {fileID: 1294847476}
+  - component: {fileID: 1294847475}
+  m_Layer: 0
+  m_Name: Robot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!136 &1294847475
+CapsuleCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1294847474}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  m_Radius: 0.5
+  m_Height: 2
+  m_Direction: 1
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1294847476
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1294847474}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+  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: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1294847477
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1294847474}
+  m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1294847478
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1294847474}
+  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: 1357320836}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1316883623
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1316883625}
+  - component: {fileID: 1316883624}
+  m_Layer: 0
+  m_Name: RobotManager
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1316883624
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1316883623}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ba1987dfd90a1ed48a09c0e1bff9ab1a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  rtCode: 0
+  RobotObject: {fileID: 363971836}
+  _pno: xj01
+--- !u!4 &1316883625
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1316883623}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -6.917255, y: -11.471002, z: 11.9653}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1357320835
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1357320836}
+  m_Layer: 0
+  m_Name: DisplayOrigin
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &1357320836
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1357320835}
+  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: 1101054778}
+  - {fileID: 1286005540}
+  - {fileID: 1294847478}
+  m_Father: {fileID: 0}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1499972053
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1499972057}
+  - component: {fileID: 1499972056}
+  - component: {fileID: 1499972055}
+  - component: {fileID: 1499972054}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1499972054
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1499972053}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &1499972055
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1499972053}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!223 &1499972056
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1499972053}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!224 &1499972057
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1499972053}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 960733265}
+  - {fileID: 543541846}
+  m_Father: {fileID: 0}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!1 &1806016788
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1806016790}
+  - component: {fileID: 1806016789}
+  - component: {fileID: 1806016791}
+  m_Layer: 0
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!114 &1806016789
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1806016788}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 46320192a3399f14697958a6325ecb2a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  url: '{\n  \"base_url\": \"https://10.7.6.50:8080\",\n  \"battery\": 0,\n  \"current_mapname\":
+    \"/home/cruiser/ros_ws/install/share/cruiser_navigation/maps/CWDT010@20231122_111258\",\n 
+    \"current_pose\": {\n    \"id\": \"e5691290-8b71-48db-991d-c6b503def8b4\",\n   
+    \"theta\": 1.7360243797302246,\n    \"x\": 5.016031742095947,\n    \"y\": -2.2412776947021484\n 
+    },\n  \"mode\": \"navigation\",\n  \"name\": null,\n  \"robotId\": \"56ce6c39b8144d91ac3767e757933955\",\n 
+    \"status\": null,\n  \"system_status\": \"Healthy;\",\n  \"system_status_code\":
+    0\n}'
+  query:
+  - ip
+  query_value:
+  - 117.136.12.79
+  post_json: 
+  _data: data:image/jpeg;base64,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
+  image: {fileID: 960733266}
+--- !u!4 &1806016790
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1806016788}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 8.56917, y: 1.2629471, z: -6.928535}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1806016791
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1806016788}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ba1987dfd90a1ed48a09c0e1bff9ab1a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  rtCode: 0
+  RobotObject: {fileID: 0}
+  _pno: 
+--- !u!1 &2134203866
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2134203869}
+  - component: {fileID: 2134203868}
+  - component: {fileID: 2134203867}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &2134203867
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2134203866}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!114 &2134203868
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2134203866}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 10
+--- !u!4 &2134203869
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2134203866}
+  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_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity.meta b/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity.meta
new file mode 100644
index 000000000..fcd74e305
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scenes/Temp/New Scene.unity.meta	
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 156aed9dc474aca42be120d5129fdba2
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Robot.meta
new file mode 100644
index 000000000..52ed8eac8
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8a23579ccee4cda48980583d99f8e07d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs
new file mode 100644
index 000000000..8c5d354d5
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs
@@ -0,0 +1,90 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using UnityEngine;
+using Newtonsoft.Json.Linq;
+using static InterfaceManager;
+using System;
+
+public class InterfaceTest : MonoBehaviour
+{
+    public string url;
+    public string[] query;
+    public string[] query_value;
+
+    public string post_json;
+    // Start is called before the first frame update
+    void Start()
+    {
+        //Debug.Log("{\n  \"base_url\": \"https://10.7.6.50:8080\",\n  \"battery\": 0,\n  \"current_mapname\": \"/home/cruiser/ros_ws/install/share/cruiser_navigation/maps/CWDT010@20231122_111258\",\n  \"current_pose\": {\n    \"id\": \"e5691290-8b71-48db-991d-c6b503def8b4\",\n    \"theta\": 1.7360243797302246,\n    \"x\": 5.016031742095947,\n    \"y\": -2.2412776947021484\n  },\n  \"mode\": \"navigation\",\n  \"name\": null,\n  \"robotId\": \"56ce6c39b8144d91ac3767e757933955\",\n  \"status\": null,\n  \"system_status\": \"Healthy;\",\n  \"system_status_code\": 0\n}");
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        if (Input.GetKeyUp(KeyCode.G))
+        {
+            //����
+            //if (query != null && query_value != null)
+            //{
+            //    var dic = new Dictionary<string, string>();
+            //    for (int i = 0; i < query.Length; i++)
+            //    {
+            //        if (query_value.Length > i)
+            //        {
+            //            dic.Add(query[i], query_value[i]);
+            //        }
+            //    }
+            //    StartCoroutine(GetRequest(url, null, dic, (_data) =>
+            //    {
+            //        Debug.Log(_data);
+            //    }));
+            //}
+
+            if (query != null && query_value != null)
+            {
+                var dic = new Dictionary<string, string>();
+                for (int i = 0; i < query.Length; i++)
+                {
+                    if (query_value.Length > i)
+                    {
+                        dic.Add(query[i], query_value[i]);
+                    }
+                }
+                StartCoroutine(GetRequest(url, new Dictionary<string, string>() { { "Authorization", "none" } }, dic, (_error, _data) =>
+                {
+                    Debug.Log(_data);
+                }));
+            }
+
+
+
+        }
+
+        if (Input.GetKeyUp(KeyCode.P))
+        {
+            StartCoroutine(PostRequest(url, post_json, new Dictionary<string, string>() { { "Authorization", "none" } }, (_error, _data) =>
+            {
+                Debug.Log(_data);
+            }));
+        }
+
+
+        if (Input.GetKeyUp(KeyCode.Q))
+        {
+            Tex();
+        }
+    }
+
+    public string _data;
+    public UnityEngine.UI.Image image;
+    public void Tex()
+    {
+        byte[] bytes = Convert.FromBase64String(_data);
+        Texture2D text2D = new Texture2D(100, 100);
+        text2D.LoadImage(bytes);
+        Sprite sprite = Sprite.Create(text2D, new Rect(0, 0, text2D.width, text2D.height), new Vector2(0.5f, 0.5f));
+        //_callback?.Invoke(null, sprite);
+        image.sprite = sprite;
+    }
+}
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs.meta
new file mode 100644
index 000000000..5d78faf20
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/InterfaceTest.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 46320192a3399f14697958a6325ecb2a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs
new file mode 100644
index 000000000..008b54e0a
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs
@@ -0,0 +1,636 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using UnityEngine;
+using System.Net.WebSockets;
+using static InterfaceManager;
+using System.Threading;
+using System;
+using System.Text;
+using Unity.VisualScripting;
+
+public class RobotDataManager : MonoBehaviour
+{
+    [Header("��Ӧ�ɹ���")]
+    public string rtCode = "0";
+
+    #region ��ʼ������
+    /// <summary>
+    /// �Ƿ��ʼ������
+    /// </summary>
+    private bool init_data;
+    /// <summary>
+    /// �Ƿ��ѻ�ȡ���������б���
+    /// </summary>
+    private bool get_robot_list_done;
+    /// <summary>
+    /// �Ƿ��ѻ�ȡ�������б���
+    /// </summary>
+    private bool get_catrbin_list_done;
+    /// <summary>
+    /// �Ƿ��ѻ�ȡ�������˵�ͼ���ݡ�
+    /// </summary>
+    private bool get_robot_map_done;
+    /// <summary>
+    /// �Ƿ��ѻ�ȡ����������-Ѳ����б���ȡ�����������˵�ͼ���ݡ�
+    /// </summary>
+    private bool get_data_after_init_robot;
+    /// <summary>
+    /// ��������Ϣ���մ���
+    /// </summary>
+    private int get_info_times = 0;
+    #endregion
+
+    #region ��ʼ������
+
+    /// <summary>
+    /// ���������б������ݼ���
+    /// </summary>
+    public List<RobotClass> RobotList = new List<RobotClass>();
+    /// <summary>
+    /// �������б������ݼ���
+    /// </summary>
+    public List<CabinClass> CarbinList = new List<CabinClass>();
+    /// <summary>
+    /// ����������-Ѳ����б������ݼ���
+    /// </summary>
+    public List<RobotFixedPointins> RobotFixedPointsins = new List<RobotFixedPointins>();
+    /// <summary>
+    /// �������˵�ͼ������
+    /// </summary>
+    public RobotMap RobotMap = new RobotMap();
+    /// <summary>
+    /// �������������������
+    /// </summary>
+    public RobotTask RobotTask = new RobotTask();
+    /// <summary>
+    /// ��Ѳ�챨�����ݡ�
+    /// </summary>
+    public InsReport InsReport = new InsReport();
+
+    ///// <summary>
+    ///// ��������λ��״̬��Ϣ�����ݶ���
+    ///// </summary>
+    //public Queue<RobotPos> RobotPosQueue = new Queue<RobotPos>();
+    /// <summary>
+    /// ����������Ϣ��
+    /// </summary>
+    public Queue<RobotInfo[]> RobotInfosQueue = new Queue<RobotInfo[]>();
+
+    #endregion
+
+    #region ����
+
+    /// <summary>
+    /// �����˶���
+    /// </summary>
+    public RobotObject RobotObject;
+
+    #endregion
+
+    // Start is called before the first frame update
+    void Start()
+    {
+        ///��ȡ������Ϣ
+        StartCoroutine(GetRequest(Path.Combine(Application.streamingAssetsPath, "robot.txt"), null, null, (_error, _json) =>
+        {
+            if (_error != null)
+            {
+                Debug.Log("����������Ϣ������" + _error);
+                return;
+            }
+            JObject _j = JObject.Parse(_json);
+            http_ip_address = _j["http"].ToString();
+            ws_ip_address = _j["ws"].ToString();
+            http_ip_ma_address = _j["http_ma"].ToString();
+            isLive = true;
+        }));
+    }
+
+    public string _pno;
+    // Update is called once per frame
+    void Update()
+    {
+        Init();
+        if (Input.GetKeyUp(KeyCode.Y))
+        {
+            //UsageExample(_pno);
+            for (int i = 0; i < RobotFixedPointsins.Count; i++)
+            {
+                Debug.Log(RobotFixedPointsins[i].pointNo);
+            }
+        }
+        if (Input.GetKeyUp(KeyCode.J))
+        {
+            UsageExample(_pno);
+        }
+    }
+
+    /// <summary>
+    /// ��ҪStart�л�ȡ�������ڴ�ִ��
+    /// �ȴ�Start��ɱ����ļ���ȡ��ִ��
+    /// </summary>
+    public void Init()
+    {
+        if (!init_data && isLive)
+        {
+            init_data = true;
+            Debug.Log("��ʼ������");
+
+            //��ȡ�������б�
+            StartCoroutine(GetRequest(http_ip_address + get_robot_list, request_header, null, (_error, _data) =>
+            {
+                if (_error != null)
+                {
+                    Debug.Log("���󡾻������б�������" + _error);
+                    return;
+                }
+
+                var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+                Debug.Log(_response.rtMsg);
+                if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
+                {
+                    if (_jobject != null)
+                    {
+                        RobotList = _jobject["list"].ToObject<List<RobotClass>>();
+
+                        //ʵ����ʵ�������
+                        RobotObject.RobotClass = RobotList[0];
+                    }
+                }
+                get_robot_list_done = true;
+            }));
+
+            //��ȡ�����б�
+            StartCoroutine(GetRequest(http_ip_address + get_cabin_list, request_header, new Dictionary<string, string>() { { "isExport", "false" }, { "pageSize", "200" } }, (_error, _data) =>
+            {
+                if (_error != null)
+                {
+                    Debug.Log("���󡾻����б�������" + _error);
+                    return;
+                }
+
+                var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+                Debug.Log(_response.rtMsg);
+                if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
+                {
+                    if (_jobject != null)
+                    {
+                        CarbinList = _jobject["list"].ToObject<List<CabinClass>>();
+                    }
+                }
+                get_catrbin_list_done = true;
+            }));
+
+
+        }
+
+        if (get_robot_list_done && get_catrbin_list_done && !get_data_after_init_robot)
+        {
+            get_data_after_init_robot = true;
+
+            if (RobotList.Count < 1)
+            {
+                Debug.Log("�������б�С��1��");
+                return;
+            }
+
+            //��ȡ��������-Ѳ����б�
+            StartCoroutine(GetRequest(http_ip_address + get_robot_fixed_pointins, request_header, new Dictionary<string, string>() { { "roomId", RobotList[0].roomId }, { "pageSize", "200" } }, (_error, _data) =>
+            {
+                if (_error != null)
+                {
+                    Debug.Log("���󡾶�������-Ѳ����б�������" + _error);
+                    return;
+                }
+
+                var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+                Debug.Log(_response.rtMsg);
+                if (_response.rtCode.Equals(rtCode))
+                {
+                    RobotFixedPointsins = JsonConvert.DeserializeObject<List<RobotFixedPointins>>(_response.rtData.ToString());
+                }
+                get_catrbin_list_done = true;
+            }));
+
+            //��ȡ�����˵�ͼ����
+            StartCoroutine(GetRequest(http_ip_address + get_robot_map + RobotObject.RobotClass.robot_id + "/map", request_header, new Dictionary<string, string>() { { "robotId", RobotList[0].robot_id } }, (_error, _data) =>
+            {
+                if (_error != null)
+                {
+                    Debug.Log("���󡾻����˵�ͼ���ݡ�����" + _error);
+                    return;
+                }
+
+                var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+                Debug.Log(_response.rtMsg);
+                if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
+                {
+                    if (_jobject != null)
+                    {
+                        RobotMap = _jobject.ToObject<RobotMap>();
+
+                        //ʵ����ʵ������˵ĵ�ͼ����
+                        RobotObject.RobotMap = RobotMap;
+                    }
+                }
+                get_robot_map_done = true;
+            }));
+
+            //websocket
+            WSRobotPos();
+            //WSRobotInfo();
+        }
+    }
+
+    #region WebSocket���ݽ���
+
+    private ClientWebSocket ws_robot_pos;
+
+    /// <summary>
+    /// ��������λ��״̬��Ϣ��
+    /// </summary>
+    private async void WSRobotPos()
+    {
+        try
+        {
+            ws_robot_pos = new ClientWebSocket();
+            CancellationToken ct = new CancellationToken();
+            var url = ws_ip_address + ws_robot_html5 + RobotObject.RobotClass.id;
+            Debug.Log(url);
+            Uri uri = new Uri(url);
+            await ws_robot_pos.ConnectAsync(uri, ct);
+
+            while (true)
+            {
+                Debug.Log("111");
+                var result = new byte[1024];
+                await ws_robot_pos.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());
+                var str = Encoding.UTF8.GetString(result, 0, result.Length);
+                //��������
+                JObject _jobject = JObject.Parse(str);
+                if (_jobject != null && _jobject["msg"] != null)
+                {
+                    if (RobotObject != null)
+                    {
+                        RobotPos _robot_pos = JsonConvert.DeserializeObject<RobotPos>(_jobject["msg"].ToString());
+                        RobotObject.RobotPosQueue.Enqueue(_robot_pos);
+                    }
+                }
+            }
+        }
+        catch (Exception ex)
+        {
+            Debug.LogError(ex.ToString());
+        }
+    }
+
+    /// <summary>
+    /// ����������Ϣ��
+    /// </summary>
+    private async void WSRobotInfo()
+    {
+        ClientWebSocket ws = new ClientWebSocket();
+        CancellationToken ct = new CancellationToken();
+        Uri uri = new Uri(ws_ip_address + ws_robot_info);
+        await ws.ConnectAsync(uri, ct);
+
+        while (true)
+        {
+            if (get_info_times == 0) continue;
+
+            var result = new byte[1024];
+            await ws.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());
+            var str = Encoding.UTF8.GetString(result, 0, result.Length);
+            //��������
+            RobotInfo[] _robot_info = JsonConvert.DeserializeObject<RobotInfo[]>(str.ToString());
+            RobotInfosQueue.Enqueue(_robot_info);
+
+            get_info_times++;
+        }
+    }
+    #endregion
+
+    #region ���ܵ�2���·�Ѳ������
+
+    /*
+     * ����������
+     * ���ܣ���������·�Ѳ������
+     * 1.����ȡ������������С��ȿ��������Ƿ�����Ѳ�죨û�в��·���
+     * 2.�����������·�����pointList�������С�pointNo ��Ϊ����Ѳ��㣬���������ճ�����
+     * 3.�·��󿴡���ȡ������������С��Ƿ�Ѳ�����
+     * 4.Ѳ����ɲ鿴����ѯѲ�챨�����ݡ�����pic���ֶε�ֵ�ӡ� thermal ����ʼ��֣���thermal��Ľ�ȡ���������͵���̨���б��档
+     */
+
+    /// <summary>
+    /// ���ܵ�2����ʾ��
+    /// </summary>
+    /// <param name="_point_no">����</param>
+    public void UsageExample(string _point_no)
+    {
+        //��ʼִ�е�һ������ѯ��ǰ�Ƿ�����Ѳ��
+        GetTaskQueue((_error, _no_task) =>
+        {
+            if (_error != null)
+            {
+                Debug.Log(_error);
+                return;
+            }
+
+            //�жϵ�ǰ�Ƿ�����Ѳ��
+            if (!_no_task)
+            {
+                //���׼���·�Ѳ������ʱ����Ѳ�죬��ִ�����²���
+                Debug.Log("��ǰ����Ѳ���У����Ժ����ԣ�");
+                //ToDo
+                //...
+                //return;
+            }
+
+            //��δ��Ѳ�죬ִ�еڶ������·�����
+            PostRobotTask(_point_no, (_error, _post_success) =>
+            {
+                //�ж��Ƿ��·��ɹ�
+                if (_error != null)
+                {
+                    Debug.Log(_error);
+                    return;
+                }
+                //�·��ɹ���ʼִ�е�������ѭ����ѯֱ����������
+                StartCoroutine(Cyclic_GetTaskQuery((_error) =>
+                 {
+                     if (_error != null)
+                     {
+                         Debug.Log(_error);
+                         return;
+                     }
+
+                     //���������ִ�е��IJ����鿴����ѯѲ�챨�����ݡ�����pic���ֶε�ֵ�ӡ� thermal ����ʼ��֣���thermal��Ľ�ȡ���������͵���̨���б���
+                     GetInsReport((_error, _success) =>
+                     {
+                         if (_error != null)
+                         {
+                             Debug.Log(_error);
+                             return;
+                         }
+
+                         Dictionary<string, List<string>> _pics = new Dictionary<string, List<string>>();
+
+                         for (int i = 0; i < InsReport.thermal.Count; i++)
+                         {
+                             var _ps = new List<string>();
+                             var pic1 = InsReport.thermal[i].pic1.Split("thermal")[1];
+                             var pic2 = InsReport.thermal[i].pic2.Split("thermal")[1];
+                             var pic3 = InsReport.thermal[i].pic3.Split("thermal")[1];
+                             var pic4 = InsReport.thermal[i].pic4.Split("thermal")[1];
+                             var pic5 = InsReport.thermal[i].pic5.Split("thermal")[1];
+                             var pic6 = InsReport.thermal[i].pic6.Split("thermal")[1];
+                             var pic7 = InsReport.thermal[i].pic7.Split("thermal")[1];
+
+                             _ps.Add(pic1);
+                             _ps.Add(pic2);
+                             _ps.Add(pic3);
+                             _ps.Add(pic4);
+                             _ps.Add(pic5);
+                             _ps.Add(pic6);
+                             _ps.Add(pic7);
+
+                             _pics.Add(InsReport.thermal[i].id, _ps);
+                         }
+                         //ToDo
+                         //�������õ����ݷ��͸���̨
+                         //...
+                         Debug.Log("ͼƬ·��������ɣ�");
+                     });
+                 }));
+            });
+        });
+    }
+
+    /// <summary>
+    /// ��ȡ�����������ж�
+    /// </summary>
+    /// <param name="_callback">����1���쳣��Ϣ������2��true->��ǰδ��Ѳ��</param>
+    public void GetTaskQueue(Action<string, bool> _callback = null)
+    {
+        Debug.Log("��ѯ��ǰѲ��״̬��...");
+        //ע��ӿڵ�ַ�����һ��Ϊ������id�����ڸ���ҵ���޸Ļ�����id
+        StartCoroutine(GetRequest(http_ip_address + get_task_queue + RobotObject.RobotClass.robot_id, request_header, null, (_error, _data) =>
+        {
+            if (_error != null)
+            {
+                _callback?.Invoke(_error, false);
+                return;
+            }
+
+            var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+            if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
+            {
+                Debug.Log(_response.rtMsg);
+                if (_jobject != null)
+                {
+                    RobotTask = _jobject.ToObject<RobotTask>();
+
+                    //ʵ����ʵ������˵��������ݣ�ע�������id�Ƿ�ƥ��
+                    RobotObject.RobotTask = RobotTask;
+
+                    //�ж�ÿ�� RobotTask.data[].Task_type�Ƿ�Ϊfixed
+                    //...���û�з���True����ʾδ��Ѳ�죬���򷵻�False
+                    _callback?.Invoke(null, RobotTask.data == null || RobotTask.data.Count == 0);
+                }
+            }
+            else
+            {
+                _callback?.Invoke(_response.rtMsg, false);
+            }
+        }));
+    }
+
+    /// <summary>
+    /// �����������·�
+    /// </summary>
+    public void PostRobotTask(string _point_no, Action<string, bool> _callback = null)
+    {
+        string _json_data = "{\r\n  \"robotIp\": \"192.168.8.198\",\r\n  \"pointList\": [\r\n    {\r\n      \"pointNo\": \"" + _point_no + "\",\r\n      \"04\": \"0\",\r\n      \"06\": \"0\",\r\n      \"01\": \"1\",\r\n      \"cabinType\": \"1\",\r\n      \"03\": \"0\",\r\n      \"05\": \"0\"\r\n    }\r\n  ]\r\n}";
+
+        StartCoroutine(PostRequest(http_ip_address + post_robot_fixed_point, _json_data, request_header, (_error, _data) =>
+        {
+            if (_error != null)
+            {
+                Debug.Log(_error);
+                _callback?.Invoke(_error, false);
+                return;
+            }
+
+            var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+            Debug.Log(_response.rtMsg);
+            if (_response.rtCode.Equals(rtCode))//����ֵƥ���ʾ�·��ɹ�
+            {
+                //�·��ɹ���ѭ��ִ�л�ȡ������������У�ֱ���������Ϊ�պ����ִ�к�������
+                _callback?.Invoke(null, true);
+            }
+            else
+            {
+                _callback?.Invoke(_response.rtMsg, false);
+            }
+        }));
+    }
+
+    /// <summary>
+    /// ִ��ѭ����ѯ�ȴ�����
+    /// </summary>
+    /// <returns></returns>
+    public IEnumerator Cyclic_GetTaskQuery(Action<string> _callback = null)
+    {
+        int _call_time = 0;//����
+        int _response_time = 0;//���ش���
+        bool _finish = false;//����ѭ������
+        int _error_time = 0;
+        while (true)
+        {
+            if (_finish) break;
+
+            //ѭ����ѯ�쳣��������һ��ֵ��������ѯ������ѭ����������಻��Ҫ�Ŀ���
+            if (_error_time > 3)
+            {
+                _callback?.Invoke("��ѯ�쳣��");
+                break;
+            }
+
+            yield return new WaitForSeconds(3);
+
+            if (_call_time != _response_time) continue;
+
+            #region ����
+
+            if (_response_time == 3)
+            {
+                Debug.Log("���ԣ��ȴ���������");
+                _callback?.Invoke(null);
+                break;
+            }
+
+            #endregion
+
+            _call_time++;
+            Debug.Log("ִ�е�" + _call_time + "��ѭ��");
+            GetTaskQueue((_error, _no_task) =>
+            {
+                if (_error != null)
+                {
+                    _error_time++;
+                    _response_time++;
+                    Debug.Log("���󷵻ص�" + _response_time + "��");
+                    return;
+                }
+                if (_no_task)
+                {
+                    //��ǰ�����񣬽���ѭ������
+                    _finish = true;
+                    _callback?.Invoke(null);
+                }
+                else
+                {
+                    //��ǰ������δ����������ִ��ѭ�������ȴ��������
+                    _response_time++;
+                    Debug.Log("���󷵻ص�" + _response_time + "��");
+                }
+            });
+        }
+        yield return null;
+    }
+
+    /// <summary>
+    /// ��ȡѲ�챨������
+    /// </summary>
+    public void GetInsReport(Action<string, bool> _callback)
+    {
+        //�貹�������������������������е�Ins_Id,����ҵ��ɸѡ��������
+        StartCoroutine(GetRequest(http_ip_address + get_record_ins_report, request_header, new Dictionary<string, string>() { { "insId", RobotTask.data[0].Ins_Id } }, (_error, _data) =>
+        {
+            if (_error != null)
+            {
+                Debug.Log(_error);
+                _callback?.Invoke(_error, false);
+                return;
+            }
+
+            var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
+            if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
+            {
+                Debug.Log(_response.rtMsg);
+                if (_jobject != null)
+                {
+                    InsReport = _jobject.ToObject<InsReport>();
+
+                    _callback?.Invoke(null, true);
+                }
+            }
+            else
+            {
+                _callback?.Invoke(_response.rtMsg, false);
+            }
+        }));
+    }
+
+    #endregion
+
+    #region ���ܵ�3��Ѳ�����鿴
+
+    public void ViewInspectionResults(Action<string, List<Sprite>> _callback)
+    {
+        //ע�ⲹ��Tokenֵ
+        StartCoroutine(GetRequest(http_ip_ma_address + get_inspection, new Dictionary<string, string>() { { "X-Token", "" } }, null, (_error, _data) =>
+        {
+            if (_error != null)
+            {
+                Debug.Log(_error);
+                _callback?.Invoke(_error, null);
+                return;
+            }
+
+            ResponseData_ma response = JsonConvert.DeserializeObject<ResponseData_ma>(_data);
+            if (response.message.Equals("�����ɹ�") && response.data is JObject jobject)
+            {
+                if (response.data != null)
+                {
+                    var inspection_datas = jobject.ToObject<List<InspectionResult>>();
+
+                    var sprites = new List<Sprite>();
+                    for (int i = 0; i < inspection_datas.Count; i++)
+                    {
+                        //base64תͼƬ
+                        byte[] bytes = Convert.FromBase64String(_data);
+                        Texture2D text2D = new Texture2D(100, 100);
+                        text2D.LoadImage(bytes);
+                        Sprite sprite = Sprite.Create(text2D, new Rect(0, 0, text2D.width, text2D.height), new Vector2(0.5f, 0.5f));
+                        sprites.Add(sprite);
+                    }
+                    _callback?.Invoke(null, sprites);
+                }
+            }
+        }));
+    }
+
+    #endregion
+
+    private void OnDestroy()
+    {
+        CloseClientWebSocket();
+    }
+
+    /// <summary>
+    /// �ر�ClientWebSocket��
+    /// </summary>
+    public void CloseClientWebSocket()
+    {
+        //�ر�Socket
+        if (ws_robot_pos != null && ws_robot_pos.State == WebSocketState.Open)
+        {
+            var task = ws_robot_pos.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
+            task.Wait();
+        }
+    }
+}
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs.meta
new file mode 100644
index 000000000..0e7c6a5f6
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ba1987dfd90a1ed48a09c0e1bff9ab1a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs
new file mode 100644
index 000000000..d68fffc3f
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs
@@ -0,0 +1,18 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class RobotMapCreater : MonoBehaviour
+{
+    // Start is called before the first frame update
+    void Start()
+    {
+        
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs.meta
new file mode 100644
index 000000000..81b2797df
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotMapCreater.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6e1b4822f6974f843a826d8df9bc7d96
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs
new file mode 100644
index 000000000..3a26be00d
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs
@@ -0,0 +1,95 @@
+using BestHTTP.SecureProtocol.Org.BouncyCastle.Tsp;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using DG.Tweening;
+using UnityEngine.UI;
+
+/// <summary>
+/// �����˶���
+/// </summary>
+public class RobotObject : MonoBehaviour
+{
+    public RectTransform rect_transform;
+    /*
+     bmp_x = origin.x
+     */
+    /// <summary>
+    /// ��������Ϣ
+    /// </summary>
+    public RobotClass RobotClass = null;
+    /// <summary>
+    /// �����˵�ͼ����
+    /// </summary>
+    public RobotMap RobotMap = null;
+    /// <summary>
+    /// ������λ��״̬��Ϣ
+    /// </summary>
+    public Queue<RobotPos> RobotPosQueue = new Queue<RobotPos>();
+    /// <summary>
+    /// �������������
+    /// </summary>
+    public RobotTask RobotTask = null;
+
+    /// <summary>
+    /// ��ǰִ�еĻ�����λ����Ϣ
+    /// </summary>
+    private RobotPos current_robot_pos = null;
+
+    //�̶�ֵ
+    public int origin_x;//=info.origin.x
+    public int origin_y;//=info.origin.y
+    public int pixel_width;//info.width
+    public int pixel_height;//info.height
+    public double resolution;//=info.resolution
+    //public double bmp_x;//=origin.x/resolution
+    //public double bmp_y;//=info.height-(origin.y/resolution)
+    //public float bmp_h;//=info.height
+    //public float bmp_w;//=info.width
+
+    //ʵʱֵ
+    //public double map_x;//=current_pos.x
+    //public double map_y;//=current_pos.y
+    public double display_x;//=(current_pos.x-origin.x)/resolution
+    public double display_y;//=(current_pos.y-origin.y)/resolution
+
+    private bool get;
+    // Start is called before the first frame update
+    void Start()
+    {
+        rect_transform = GetComponent<RectTransform>();
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        if (RobotClass == null || RobotMap == null) return;
+        if (!get)
+        {
+            get = true;
+            origin_x = RobotMap.info.origin.x;
+            origin_y = RobotMap.info.origin.y;
+            pixel_width = RobotMap.info.width;
+            pixel_height = RobotMap.info.height;
+            resolution = RobotMap.info.resolution;
+        }
+
+        if (RobotPosQueue.Count > 0 && current_robot_pos == null)
+        {
+            current_robot_pos = RobotPosQueue.Peek();
+            //Debug.Log(Newtonsoft.Json.JsonConvert.SerializeObject(current_robot_pos));
+
+            display_x = (current_robot_pos.current_pose.x - origin_x) / resolution;
+            display_y = (current_robot_pos.current_pose.x - origin_y) / resolution;
+
+            display_x *= (rect_transform.sizeDelta.x / pixel_width);
+            display_y *= (rect_transform.sizeDelta.y / pixel_height);
+
+            rect_transform.DOAnchorPos(new Vector2((float)display_x, (float)display_y), 0.5f).OnComplete(() =>
+            {
+                RobotPosQueue.Dequeue();
+                current_robot_pos = null;
+            });
+        }
+    }
+}
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs.meta
new file mode 100644
index 000000000..7e9114031
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotObject.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 204b2add5d8a2794fa97ca8d1756f6ab
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Utilities.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities.meta
new file mode 100644
index 000000000..c31681c51
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c2b807ba48e50a44aa3ec0c213d3f0cd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs
new file mode 100644
index 000000000..4ccb58dc9
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs
@@ -0,0 +1,1022 @@
+
+using GQ;
+using System.Collections.Generic;
+using static UnityEngine.UI.Image;
+
+/// <summary>
+/// ��Ӧ����
+/// </summary>
+public class ResponseData
+{
+    public string rtCode { get; set; }
+    public string rtMsg { get; set; }
+    public object rtData { get; set; }
+}
+
+
+/// <summary>
+/// �����������
+/// </summary>
+public class RobotClass
+{
+    /// <summary>
+    /// ״̬����
+    /// </summary>
+    public string statusStr { get; set; }
+    /// <summary>
+    /// �������ͺ�id
+    /// </summary>
+    public int modelId { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string robotName { get; set; }
+    /// <summary>
+    /// ����ʱ��
+    /// </summary>
+    public string updateTime { get; set; }
+    /// <summary>
+    /// ��ע
+    /// </summary>
+    public string remark { get; set; }
+    /// <summary>
+    /// �ͺ�����
+    /// </summary>
+    public string modelType { get; set; }
+    /// <summary>
+    /// IP
+    /// </summary>
+    public string ipAddr { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string roomName { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pileout_time { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string picUrl { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string robot_status { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string taskScheduStatus { get; set; }
+    /// <summary>
+    /// ������id
+    /// </summary>
+    public string robot_id { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string name { get; set; }
+    /// <summary>
+    /// ��������״̬
+    /// </summary>
+    public string onOffLineStatus { get; set; }
+    /// <summary>
+    /// �ͺ�����
+    /// </summary>
+    public string model { get; set; }
+    /// <summary>
+    /// ������id
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string power { get; set; }
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string runStatus { get; set; }
+    /// <summary>
+    /// ������״̬
+    /// </summary>
+    public string status { get; set; }
+}
+
+/// <summary>
+/// ���������
+/// </summary>
+public class CabinClass
+{
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// ����ID
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string serialNo { get; set; }
+    /// <summary>
+    /// R72ʡ��/5.8G LTE/LoRa�豸��
+    /// </summary>
+    public string name { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string type { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string description { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string baseUrl { get; set; }
+    /// <summary>
+    /// Uλ
+    /// </summary>
+    public string unum { get; set; }
+    /// <summary>
+    /// ����
+    /// </summary>
+    public string widthHeight { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string createUid { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string status { get; set; }
+    /// <summary>
+    /// ����ʱ��
+    /// </summary>
+    public string createTime { get; set; }
+    /// <summary>
+    /// ����ʱ��
+    /// </summary>
+    public string updateTime { get; set; }
+    /// <summary>
+    /// ����
+    /// </summary>
+    public string width { get; set; }
+    /// <summary>
+    /// �߶�
+    /// </summary>
+    public string height { get; set; }
+    /// <summary>
+    /// ���
+    /// </summary>
+    public string deep { get; set; }
+    /// <summary>
+    /// �߿�ߴ�
+    /// </summary>
+    public string borderSize { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string typeCode { get; set; }
+    /// <summary>
+    /// ������������
+    /// </summary>
+    public string typeName { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string roomName { get; set; }
+    /// <summary>
+    /// �豸����
+    /// </summary>
+    public int deviceNum { get; set; }
+}
+
+#region �����˵�ͼ����
+
+/// <summary>
+/// �����˵�ͼ��Ϣ
+/// </summary>
+public class RobotMapInfo
+{
+    /// <summary>
+    /// �߶�
+    /// </summary>
+    public int height { get; set; }
+    /// <summary>
+    /// �����ͼԭ��
+    /// </summary>
+    public RobotMapOrigin origin { get; set; }
+    /// <summary>
+    /// �ֱ���
+    /// </summary>
+    public double resolution { get; set; }
+    /// <summary>
+    /// ����
+    /// </summary>
+    public int width { get; set; }
+}
+
+/// <summary>
+/// �����˵�ͼ���������ͼԭ��
+/// </summary>
+public class RobotMapOrigin
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// �Ƕ�
+    /// </summary>
+    public int theta { get; set; }
+    /// <summary>
+    /// x����
+    /// </summary>
+    public int x { get; set; }
+    /// <summary>
+    /// y����
+    /// </summary>
+    public int y { get; set; }
+}
+
+/// <summary>
+/// �����˵�ͼ
+/// </summary>
+public class RobotMap
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public RobotMapInfo info { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string limit_speed_area { get; set; }
+    /// <summary>
+    /// ��ͼ����
+    /// </summary>
+    public string map_name { get; set; }
+    /// <summary>
+    /// ��ͼ����
+    /// </summary>
+    public string png_map { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public List<RobotMapPoint> point { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string tracker { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string umap { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public List<RobotMapWall> wall { get; set; }
+}
+
+/// <summary>
+/// �����˵�ͼ��������������
+/// </summary>
+public class RobotMapPoint
+{
+    /// <summary>
+    /// ����
+    /// </summary>
+    public string description { get; set; }
+    /// <summary>
+    /// ��ʾx����
+    /// </summary>
+    public double display_x { get; set; }
+    /// <summary>
+    /// ��ʾy����
+    /// </summary>
+    public double display_y { get; set; }
+    /// <summary>
+    /// ��ͼx����
+    /// </summary>
+    public double map_x { get; set; }
+    /// <summary>
+    /// ��ͼy����
+    /// </summary>
+    public double map_y { get; set; }
+    /// <summary>
+    /// �����
+    /// </summary>
+    public string point_name { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string point_type { get; set; }
+    /// <summary>
+    /// �Ƕ�
+    /// </summary>
+    public double theta { get; set; }
+}
+
+/// <summary>
+/// �����˵�ͼWall
+/// </summary>
+public class RobotMapWall
+{
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public List<double> data { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string type { get; set; }
+}
+#endregion
+
+
+/// <summary>
+/// ��������-Ѳ����б�
+/// </summary>
+public class RobotFixedPointins
+{
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string cabinId { get; set; }
+    /// <summary>
+    /// ��ע
+    /// </summary>
+    public string remark { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string directionName { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string cabinType { get; set; }
+    /// <summary>
+    /// Ѳ�����
+    /// </summary>
+    public string pointNo { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinNo { get; set; }
+    /// <summary>
+    /// �����
+    /// </summary>
+    public int sequence { get; set; }
+    /// <summary>
+    /// ������������
+    /// </summary>
+    public string cabinTypeName { get; set; }
+    /// <summary>
+    /// Ѳ���id
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string cabinName { get; set; }
+    /// <summary>
+    /// ���������
+    /// </summary>
+    public string direction { get; set; }
+    /// <summary>
+    /// Ѳ���״̬
+    /// </summary>
+    public int status { get; set; }
+}
+
+#region ������λ��״̬��Ϣ
+
+/// <summary>
+/// ��ǰ����
+/// </summary>
+public class Current_pose
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// �Ƕ�
+    /// </summary>
+    public double theta { get; set; }
+    /// <summary>
+    /// x����
+    /// </summary>
+    public double x { get; set; }
+    /// <summary>
+    /// y����
+    /// </summary>
+    public double y { get; set; }
+}
+
+/// <summary>
+/// ������λ��״̬��Ϣ
+/// </summary>
+public class RobotPos
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string base_url { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int battery { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string current_mapname { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public Current_pose current_pose { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string mode { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string name { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string robotId { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string status { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string system_status { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int system_status_code { get; set; }
+}
+
+#endregion
+
+#region ��������Ϣ
+
+public class RobotInfo
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pm25_value { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int modelId { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string temperature_value { get; set; }
+    /// <summary>
+    /// ʪ��
+    /// </summary>
+    public string humidity_text { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string ipAddr { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string picUrl { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string onOffLineStatus { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string model { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int power { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string runStatus { get; set; }
+    /// <summary>
+    /// Ѳ�������
+    /// </summary>
+    public string robotName { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pm25_text { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string updateTime { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string modelType { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string roomName { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pileout_time { get; set; }
+    /// <summary>
+    /// �¶�
+    /// </summary>
+    public string temperature_text { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string robot_status { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int charger { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string humidity_value { get; set; }
+    /// <summary>
+    /// �豸�¶�
+    /// </summary>
+    public string equipment_temperature_text { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string robot_id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string patrol_point_no { get; set; }
+    /// <summary>
+    /// Ѳ�������
+    /// </summary>
+    public string name { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string task_type { get; set; }
+    /// <summary>
+    /// ����
+    /// </summary>
+    public string noise_text { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string noise_value { get; set; }
+}
+
+#endregion
+
+public class RobotTask
+{
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public List<RobotTask_data> data { get; set; }
+    /// <summary>
+    /// ������id
+    /// </summary>
+    public string robotId { get; set; }
+}
+/// <summary>
+/// ���������������
+/// </summary>
+public class RobotTask_data
+{
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string Tast_Id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string Ins_Id { get; set; }
+    /// <summary>
+    /// �������id
+    /// </summary>
+    public string TaskQueue_Id { get; set; }
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string Task_State { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string taskName { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string Task_Name { get; set; }
+    /// <summary>
+    /// ������������
+    /// </summary>
+    public string taskTypeName { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public static string Task_type{get;set;}
+    /// <summary>
+    /// ����㼯��
+    /// </summary>
+    public List<RobotTask_pois> Pois { get; set; }
+}
+
+/// <summary>
+/// 
+/// </summary>
+public class RobotTask_pois
+{
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string OpenDoor_State { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string Point_Name { get; set; }
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string Sensor_State { get; set; }
+    /// <summary>
+    /// �ȳ���״̬
+    /// </summary>
+    public string Inventory_State { get; set; }
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string CloseDoor_State { get; set; }
+    /// <summary>
+    /// ��׼��״̬
+    /// </summary>
+    public string TakeNormalPhoto_State { get; set; }
+    /// <summary>
+    /// ��״̬
+    /// </summary>
+    public string Point_State { get; set; }
+    /// <summary>
+    /// ��ά���̵�״̬
+    /// </summary>
+    public string QrInventory_State { get; set; }
+    /// <summary>
+    /// ����״̬
+    /// </summary>
+    public string Photo_State { get; set; }
+    /// <summary>
+    /// ������Ƶ״̬
+    /// </summary>
+    public string Voice_State { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinNo { get; set; }
+}
+
+#region Ѳ�챨������
+
+public class InsItem
+{
+    /// <summary>
+    /// �澯��¼id
+    /// </summary>
+    public string alarmId { get; set; }
+    /// <summary>
+    /// �澯�ȼ�
+    /// </summary>
+    public string alarmLevel { get; set; }
+    /// <summary>
+    /// �澯�ȼ�����
+    /// </summary>
+    public string alarmLevelName { get; set; }
+    /// <summary>
+    /// �澯״̬ 1�澯 0 δ�澯
+    /// </summary>
+    public string alarmStatus { get; set; }
+    /// <summary>
+    /// �澯����
+    /// </summary>
+    public string alarmType { get; set; }
+    /// <summary>
+    /// �澯��������
+    /// </summary>
+    public string alarmTypeName { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string cabinId { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string cabinName { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinNo { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string cabinType { get; set; }
+    /// <summary>
+    /// �豸id
+    /// </summary>
+    public string equipmentId { get; set; }
+    /// <summary>
+    /// �豸����
+    /// </summary>
+    public string equipmentName { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string image { get; set; }
+    /// <summary>
+    /// ���
+    /// </summary>
+    public int index { get; set; }
+    /// <summary>
+    /// Ѳ���¼id
+    /// </summary>
+    public string inspectionId { get; set; }
+    /// <summary>
+    /// �ɼ���ͼƬ��ַ
+    /// </summary>
+    public string picUrl { get; set; }
+    /// <summary>
+    /// ʶ�������
+    /// </summary>
+    public string pointStation { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string position { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string positionName { get; set; }
+    /// <summary>
+    /// ʶ���id
+    /// </summary>
+    public string resizePointId { get; set; }
+    /// <summary>
+    /// ʶ�������
+    /// </summary>
+    public string resizePointName { get; set; }
+    /// <summary>
+    /// ʶ�������
+    /// </summary>
+    public string resizePointType { get; set; }
+    /// <summary>
+    /// ʶ�����������
+    /// </summary>
+    public string resizePointTypeName { get; set; }
+    /// <summary>
+    /// ������id
+    /// </summary>
+    public string robotId { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string robotName { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string roomName { get; set; }
+    /// <summary>
+    /// ʶ���ʶ����
+    /// </summary>
+    public string status { get; set; }
+    /// <summary>
+    /// ����ʱ��
+    /// </summary>
+    public string updateTime { get; set; }
+}
+
+public class ThermalItem
+{
+    /// <summary>
+    /// �澯�ȼ�
+    /// </summary>
+    public string alarmLevel { get; set; }
+    /// <summary>
+    /// �澯�ȼ�����
+    /// </summary>
+    public string alarmLevelName { get; set; }
+    /// <summary>
+    /// �澯״̬ 1�澯 0δ�澯
+    /// </summary>
+    public string alarmStatus { get; set; }
+    /// <summary>
+    /// �澯����
+    /// </summary>
+    public string alarmType { get; set; }
+    /// <summary>
+    /// �澯��������
+    /// </summary>
+    public string alarmTypeName { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinDirection { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string cabinId { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinName { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string cabinNo { get; set; }
+    /// <summary>
+    /// �ȳ������ݼ�¼id
+    /// </summary>
+    public string id { get; set; }
+    /// <summary>
+    /// ����
+    /// </summary>
+    public int index { get; set; }
+    /// <summary>
+    /// Ѳ���¼id
+    /// </summary>
+    public string inspectionId { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic1 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic2 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic3 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic4 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic5 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic6 { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string pic7 { get; set; }
+    /// <summary>
+    /// ������id
+    /// </summary>
+    public string robotId { get; set; }
+    /// <summary>
+    /// ����������
+    /// </summary>
+    public string robotName { get; set; }
+    /// <summary>
+    /// ����id
+    /// </summary>
+    public string roomId { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string roomName { get; set; }
+    /// <summary>
+    /// �ȳ�����Ƭ������Ϣ
+    /// </summary>
+    public string status { get; set; }
+    /// <summary>
+    /// �ȳ�������
+    /// </summary>
+    public string thermalData { get; set; }
+    /// <summary>
+    /// �澯ʱ��
+    /// </summary>
+    public string time { get; set; }
+}
+
+/// <summary>
+/// Ѳ�챨��
+/// </summary>
+public class InsReport
+{
+    /// <summary>
+    /// ��ɱ���
+    /// </summary>
+    public string completionRatio { get; set; }
+    /// <summary>
+    /// �������ʱ��
+    /// </summary>
+    public string endTime { get; set; }
+    /// <summary>
+    /// �ɼ�������
+    /// </summary>
+    public List<InsItem> ins { get; set; }
+    /// <summary>
+    /// ������
+    /// </summary>
+    public string pointNum { get; set; }
+    /// <summary>
+    /// ����ʼʱ��
+    /// </summary>
+    public string startTime { get; set; }
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public string taskName { get; set; }
+    /// <summary>
+    /// �ȳ�������
+    /// </summary>
+    public List<ThermalItem> thermal { get; set; }
+    /// <summary>
+    /// �������ʱ�� ����
+    /// </summary>
+    public string times { get; set; }
+}
+
+#endregion
+
+
+public class ResponseData_ma
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public string code { get; set; }
+    /// <summary>
+    /// �����ɹ�
+    /// </summary>
+    public string message { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public object data { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string serverTime { get; set; }
+}
+
+/// <summary>
+/// Ѳ��������
+/// </summary>
+public class InspectionResult
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public int id { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string inspectionResult { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public int instructId { get; set; }
+    /// <summary>
+    /// 
+    /// </summary>
+    public string createTime { get; set; }
+}
\ No newline at end of file
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs.meta
new file mode 100644
index 000000000..87baa94e5
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/Classes.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 150239179b5713241b84cb14da8f8fa8
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs
new file mode 100644
index 000000000..9740dbbaf
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs
@@ -0,0 +1,273 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using UnityEngine;
+using UnityEngine.Networking;
+
+public static class InterfaceManager
+{
+    #region �ӿڵ�ַ
+
+    /// <summary>
+    /// �Ƿ����
+    /// </summary>
+    public static bool isLive = false;
+
+    /// <summary>
+    /// http�ӿ�ip��ַ
+    /// </summary>
+    public static string http_ip_address {  get; set; }
+
+    /// <summary>
+    /// ws�����ַ
+    /// </summary>
+    public static string ws_ip_address { get; set; }
+
+    /// <summary>
+    /// ���ʲ��ṩ�ĺ�̨ip,
+    /// </summary>
+    public static string http_ip_ma_address {  get; set; }
+
+    /// <summary>
+    /// ����ͷ
+    /// </summary>
+    public static Dictionary<string, string> request_header = new Dictionary<string, string>() { { "Authorization", "none" } };
+
+    /// <summary>
+    /// �����б�
+    /// ������
+    /// isExport=false&currentPage=1&pageSize=10
+    /// </summary>
+    public static string get_room_list => "/jk/room/list";
+
+    /// <summary>
+    /// Ѳ������
+    /// ������
+    /// pageSize=1&currentPage=0&isExport=false
+    /// </summary>
+    public static string get_record_list => "/jk/record/list";
+
+    /// <summary>
+    /// �������б�
+    /// </summary>
+    public static string get_robot_list => "/jk/robot/list";
+
+    /// <summary>
+    /// �豸�б�
+    /// ������
+    /// isExport=false
+    /// </summary>
+    public static string get_device_list => "/jk/device/list";
+
+    /// <summary>
+    /// �����б�
+    /// ������
+    /// isExport=false
+    /// pageSize=200
+    /// </summary>
+    public static string get_cabin_list => "/jk/cabin/list";
+
+    /// <summary>
+    /// ����������ͷ��Ϣ
+    /// ������
+    /// robotId=56ce6c39b8144d91ac3767e757933955
+    /// </summary>
+    public static string get_robot_camera_rtsp => "/jk/robotParam/getCameraRtspParams";
+
+    /// <summary>
+    /// �����˵�ͼ
+    /// ע��ӿڲ�����/robot/{robotId}/map
+    /// ������
+    /// robotId=56ce6c39b8144d91ac3767e757933955
+    /// </summary>
+    public static string get_robot_map => "/jk/robot/";
+
+    /// <summary>
+    /// �����б���ѯ
+    /// </summary>
+    public static string get_task_list => "/jk/task/list";
+
+    /// <summary>
+    /// ��������
+    /// </summary>
+    public static string get_task => "/jk/task/2fc8b609e202404db573946da7e30b57";
+
+    /// <summary>
+    /// �������������
+    /// 
+    /// </summary>
+    public static string get_task_queue => "/jk/task/taskqueue/list/";
+
+    /// <summary>
+    /// ���������·�
+    /// ������
+    /// {  "robotIp": "192.168.8.198",  "pointList": [    {      "pointNo": "xj01",      "04": "0",      "06": "0",      "01": "1",      "cabinType": "1",      "03": "0",      "05": "0"    }  ]}
+    /// </summary>
+    public static string post_robot_fixed_point => "/jk/robot/dofixedPointins";
+
+    /// <summary>
+    /// ����ִ����������е�����
+    /// ������
+    /// {  "robotId": "3e42c3014eb5463a94602c13dfc0921c",  "TaskQueue_Id": "1686128400786",  "interfaceNo": "goToQueueTask"}
+    /// </summary>
+    public static string post_robot_send_commond => "/jk/interface/sendCommand";
+
+    /// <summary>
+    /// ��������-Ѳ����б���ѯ�ӿ�
+    /// ������
+    /// roomId=0703de6c8f6111eeb00f0242ac0a0005
+    /// </summary>
+    public static string get_robot_fixed_pointins => "/jk/robot/fixedPointins";
+
+    /// <summary>
+    /// Ѳ�������·�
+    /// ������
+    /// {  "taskId": "",  "robotId": "56ce6c39b8144d91ac3767e757933955",  "robotIp": "192.168.8.198"}
+    /// </summary>
+    public static string post_robot_doins_task => "/jk/robot/doinsTask";
+
+    /// <summary>
+    /// Ѳ������-�����б���ѯ�ӿ�
+    /// ������
+    /// roomId=0703de6c8f6111eeb00f0242ac0a0005
+    /// </summary>
+    public static string get_robot_ins_task => "/jk/robot/insTask";
+
+    /// <summary>
+    /// ��ѯѲ�챨������
+    /// ������
+    /// insId=6978d1982a4449c48f7e4b2064d1b28b
+    /// </summary>
+    public static string get_record_ins_report => "/jk/record/insReport";
+
+    /// <summary>
+    /// Ѳ�����ݸ澯����
+    /// ������
+    /// isExport=false 
+    /// rocerdId=1f77ddf75f9f490ba84fb2a125962903
+    /// </summary>
+    public static string get_record_task_list => "/jk/record/tasklist";
+
+    /// <summary>
+    /// Ѳ������ͣ��λ�ø澯�б�
+    /// ������
+    /// inspectionPointId=1f77ddf75f9f490ba84fb2a125962903
+    /// </summary>
+    public static string get_record_dev_list => "/jk/record/devList";
+
+    /// <summary>
+    /// Ѳ������ͣ��λ��Ѳ��ͼƬ
+    /// ������
+    /// inspectionPointId=1f77ddf75f9f490ba84fb2a125962903
+    /// </summary>
+    public static string get_record_pic => "/jk/record/getPic";
+
+    /// <summary>
+    /// ��ȡ��������Ϣ
+    /// </summary>
+    public static string ws_robot_info => "/jk/api/robotinfo/clkc5gnu5000d3p6p8lu41tnj-clkc5gnu5000e3p6pvux9aid3-socket_index_page_robot_info";
+
+    /// <summary>
+    /// ������λ��״̬��Ϣ
+    /// ������
+    /// ������id��ֱ��ƴ���ڵ�ַ����
+    /// </summary>
+    public static string ws_robot_html5 => "/jk/api/html5/";
+
+    /// <summary>
+    /// Ѳ����
+    /// </summary>
+    public static string get_inspection => "/robot/queryInspection";
+
+    #endregion
+
+    #region ���ӿ�
+
+    /// <summary>
+    /// Get����
+    /// </summary>
+    /// <param name="_url"></param>
+    /// <param name="_header"></param>
+    /// <param name="_query"></param>
+    /// <param name="_callback"></param>
+    /// <returns></returns>
+    public static IEnumerator GetRequest(string _url, Dictionary<string, string> _header = null, Dictionary<string, string> _query = null, Action<string, string> _callback = null)
+    {
+
+        StringBuilder builder = new StringBuilder();
+        builder.Append(_url);
+
+        if (_query != null)
+        {
+            builder.Append("?");
+            int i = 0;
+            foreach (var item in _query)
+            {
+                if (i > 0)
+                    builder.Append("&");
+                builder.AppendFormat("{0}={1}", item.Key, item.Value);
+                i++;
+            }
+        }
+
+        using (UnityWebRequest request = UnityWebRequest.Get(builder.ToString()))
+        {
+            if (_header != null)
+            {
+                foreach (var item in _header)
+                {
+                    request.SetRequestHeader(item.Key, item.Value);
+                }
+            }
+
+            yield return request.SendWebRequest();
+
+            if (request.error != null)
+            {
+                _callback?.Invoke(request.error, null);
+            }
+            else
+            {
+                _callback?.Invoke(null, request.downloadHandler.text);
+            }
+        }
+    }
+
+    /// <summary>
+    /// Post����
+    /// </summary>
+    /// <param name="_url"></param>
+    /// <param name="_post_json"></param>
+    /// <param name="_callback"></param>
+    /// <returns></returns>
+    public static IEnumerator PostRequest(string _url, string _post_json, Dictionary<string, string> _header = null, Action<string, string> _callback = null)
+    {
+        using (UnityWebRequest request = new UnityWebRequest(_url, "POST"))
+        {
+            var data = Encoding.UTF8.GetBytes(_post_json);
+            request.uploadHandler = new UploadHandlerRaw(data);
+            request.downloadHandler = new DownloadHandlerBuffer();
+
+            if (_header != null)
+            {
+                foreach (var item in _header)
+                {
+                    request.SetRequestHeader(item.Key, item.Value);
+                }
+            }
+
+            yield return request.SendWebRequest();
+            if (request.error != null)
+            {
+                _callback?.Invoke(request.error, null);
+            }
+            else
+            {
+                _callback?.Invoke(null, request.downloadHandler.text);
+            }
+        }
+    }
+
+    #endregion
+}
diff --git a/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs.meta b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs.meta
new file mode 100644
index 000000000..5a8e733fb
--- /dev/null
+++ b/GQ_URP/GQ/Assets/Scripts/WJ/Utilities/InterfaceManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fd68e83d441514845924ab921fd17b5d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/GQ_URP/GQ/Assets/StreamingAssets/robot.txt b/GQ_URP/GQ/Assets/StreamingAssets/robot.txt
new file mode 100644
index 000000000..574eca184
--- /dev/null
+++ b/GQ_URP/GQ/Assets/StreamingAssets/robot.txt
@@ -0,0 +1,5 @@
+{
+"http":"http://192.168.8.11:8000",
+"ws":"ws://192.168.8.11:8000",
+"http_ma":"http://192.168.8.11:8081"
+}
\ No newline at end of file
diff --git a/GQ_URP/GQ/Assets/StreamingAssets/robot.txt.meta b/GQ_URP/GQ/Assets/StreamingAssets/robot.txt.meta
new file mode 100644
index 000000000..40eed85a1
--- /dev/null
+++ b/GQ_URP/GQ/Assets/StreamingAssets/robot.txt.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d0d0e688921029c41990e42fdb1ab73b
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: