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¤tPage=1&pageSize=10 + /// </summary> + public static string get_room_list => "/jk/room/list"; + + /// <summary> + /// Ѳ������ + /// ������ + /// pageSize=1¤tPage=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: