From fc12b173d531c2d69718bf0d624808c3e7aef024 Mon Sep 17 00:00:00 2001 From: Hyunseok Date: Thu, 26 Jan 2023 13:12:19 +0900 Subject: [PATCH] CLOiSim-3.1.0 [Major Changes] - Upgrade Unity editor version: 2021.3.17f1 (LTS) - Device: Modify destination format for AsyncGpuReadback in DepthCamera/Camera [Minor Changes] - Device.Sensor: Separate LaserData.DepthCamBuffer into DepthData.CamBuffer - Device.Sensor: Set dithering true for camera sensor in Lidar/Camera/DepthCamera - UI: Modify properties for RuntimeGizmo - UI: Modify multiplying handle length in RuntimeGizmo - General: Modify parameter in UniversalRenderPipelineGlobalSettings [Bug fix] - Device: Modify Camera(Depth) sensor device to fix wrong depth information with L16 - Device: Modify LiftControl::DoLifting() to prevent shaking object during lifting - UI: Prevent bouncing from floor during tranforming target --- ...niversalRenderPipelineGlobalSettings.asset | 2 +- .../Shader/DepthBufferScaling.compute | 62 +-- .../Shader/DepthBufferScaling.compute.meta | 3 +- Assets/Scenes/MainScene.unity | 409 +++++++++--------- .../CLOiSimPlugins/Modules/LiftControl.cs | 42 +- .../Scripts/CLOiSimPlugins/RealSensePlugin.cs | 6 +- Assets/Scripts/Devices/Camera.cs | 75 ++-- Assets/Scripts/Devices/DepthCamera.cs | 196 ++++++--- Assets/Scripts/Devices/Lidar.cs | 17 +- Assets/Scripts/Devices/Modules/CameraData.cs | 49 +-- Assets/Scripts/Devices/Modules/DepthData.cs | 78 ++++ .../Scripts/Devices/Modules/DepthData.cs.meta | 11 + Assets/Scripts/Devices/Modules/LaserData.cs | 67 +-- .../Devices/Modules/RandomNumberGenerator.cs | 2 +- Assets/Scripts/Main.cs | 4 + .../Tools/SDF/Implement/Implement.Sensor.cs | 10 +- .../UI/RuntimeGizmo/TransformGizmo.axis.cs | 27 +- .../Scripts/UI/RuntimeGizmo/TransformGizmo.cs | 37 +- Packages/manifest.json | 2 +- Packages/packages-lock.json | 12 +- ProjectSettings/EditorSettings.asset | 19 +- ProjectSettings/ProjectSettings.asset | 2 +- ProjectSettings/ProjectVersion.txt | 4 +- 23 files changed, 633 insertions(+), 503 deletions(-) create mode 100644 Assets/Scripts/Devices/Modules/DepthData.cs create mode 100644 Assets/Scripts/Devices/Modules/DepthData.cs.meta diff --git a/Assets/Resources/RenderPipelines/UniversalRenderPipelineGlobalSettings.asset b/Assets/Resources/RenderPipelines/UniversalRenderPipelineGlobalSettings.asset index a996a2e6..f84421db 100644 --- a/Assets/Resources/RenderPipelines/UniversalRenderPipelineGlobalSettings.asset +++ b/Assets/Resources/RenderPipelines/UniversalRenderPipelineGlobalSettings.asset @@ -22,6 +22,6 @@ MonoBehaviour: lightLayerName6: Light Layer 6 lightLayerName7: Light Layer 7 m_StripDebugVariants: 1 - m_StripUnusedPostProcessingVariants: 0 + m_StripUnusedPostProcessingVariants: 1 m_StripUnusedVariants: 1 supportRuntimeDebugDisplay: 0 diff --git a/Assets/Resources/Shader/DepthBufferScaling.compute b/Assets/Resources/Shader/DepthBufferScaling.compute index ab704910..a26857a5 100644 --- a/Assets/Resources/Shader/DepthBufferScaling.compute +++ b/Assets/Resources/Shader/DepthBufferScaling.compute @@ -1,35 +1,45 @@ -// Each #kernel tells which function to compile; you can have many kernels -#pragma kernel CSDepthBufferScaling +#pragma kernel CSScaleDepthBuffer -#define MaxValue16Bits 65535.0f; -#define THREADS 8 -#define GROUPS 4 +#define THREADS 32 +#define GROUPS 32 -RWByteAddressBuffer _Buffer; +#define MAX_RANGE_16BITS 65535.0 +#define MAX_RANGE_8BITS 255.0 + +StructuredBuffer _Input; +RWStructuredBuffer _Output; -float _inverseMaxValue16Bits = 1 / MaxValue16Bits; -float _DepthMin; float _DepthMax; float _DepthScale; - -uint getDepthDataIn16BitsScaled(uint depthData) -{ - float depthDataRatio = (float)depthData * _inverseMaxValue16Bits; - - uint scaledDepthData = (uint)(depthDataRatio * _DepthMax * _DepthScale); - uint finalData = ((scaledDepthData & 0xff) << 8) | (scaledDepthData >> 8); - return finalData; -} +uint _Width; +int _UnitSize; [numthreads(THREADS, GROUPS, 1)] -void CSDepthBufferScaling(uint3 id : SV_DispatchThreadID) +void CSScaleDepthBuffer(uint3 id : SV_DispatchThreadID) { - uint index = id.x + id.y; - uint data = _Buffer.Load(index); - - uint part1 = getDepthDataIn16BitsScaled(data & 0xffff); - uint part2 = getDepthDataIn16BitsScaled(data >> 16); - - uint finalData = (part2 << 16) | (part1 & 0xffff); - _Buffer.Store(index, finalData); + const uint bufIndex = id.y *_Width + id.x; + const float data = _Input.Load(bufIndex); + const float rangedData = data * _DepthMax; + + if (_UnitSize == 4) + { + _Output[bufIndex] = asuint(rangedData); + } + else + { + uint finalData; + if (_UnitSize == 2) + { + const float max_scaled_range = MAX_RANGE_16BITS / _DepthScale; + const float scaledData = ((rangedData > max_scaled_range)? max_scaled_range : rangedData) * _DepthScale; + finalData = asuint((uint)scaledData) & 0xFFFF; + } + else // 1 + { + // const float max_scaled_range = MAX_RANGE_8BITS; + const float scaledData = rangedData / _DepthMax * MAX_RANGE_8BITS;//((rangedData > max_scaled_range)? max_scaled_range : rangedData) * _DepthScale; + finalData = asuint((uint)scaledData) & 0xFF; + } + _Output[bufIndex] = finalData; + } } \ No newline at end of file diff --git a/Assets/Resources/Shader/DepthBufferScaling.compute.meta b/Assets/Resources/Shader/DepthBufferScaling.compute.meta index ccfa0dfa..4a277fac 100644 --- a/Assets/Resources/Shader/DepthBufferScaling.compute.meta +++ b/Assets/Resources/Shader/DepthBufferScaling.compute.meta @@ -1,8 +1,7 @@ fileFormatVersion: 2 -guid: 308cae4c97a72337ab1577bcc62d8394 +guid: 2b8e7ba273ad64b5fb7d210bd8d1ae93 ComputeShaderImporter: externalObjects: {} - currentAPIMask: 2097152 preprocessorOverride: 0 userData: assetBundleName: diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity index 3e258d85..76b7d144 100644 --- a/Assets/Scenes/MainScene.unity +++ b/Assets/Scenes/MainScene.unity @@ -220,8 +220,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -276,8 +276,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_ShowMaskGraphic: 0 --- !u!114 &20107709 MonoBehaviour: @@ -289,8 +289,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -414,8 +414,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -552,8 +552,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -598,7 +598,7 @@ MonoBehaviour: m_HideMobileInput: 1 m_HideSoftKeyboard: 1 m_CharacterValidation: 0 - m_RegexValue: + m_RegexValue: m_GlobalPointSize: 11 m_CharacterLimit: 0 m_OnEndEdit: @@ -650,8 +650,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 @@ -810,8 +810,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreLayout: 1 m_MinWidth: -1 m_MinHeight: -1 @@ -830,8 +830,8 @@ MonoBehaviour: m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -840,7 +840,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -1010,8 +1010,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: be8cb11b3f09b3a1aba92262370480ce, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!1 &145835752 GameObject: m_ObjectHideFlags: 0 @@ -1060,8 +1060,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -1309,8 +1309,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -1433,8 +1433,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cb1f25bcbdf8dbeb2910354dd18778b2, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: hasRootArticulationBody: 0 isStatic: 0 --- !u!1 &227849490 @@ -1487,8 +1487,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -1533,7 +1533,7 @@ MonoBehaviour: m_HideMobileInput: 1 m_HideSoftKeyboard: 1 m_CharacterValidation: 0 - m_RegexValue: + m_RegexValue: m_GlobalPointSize: 11 m_CharacterLimit: 0 m_OnEndEdit: @@ -1585,8 +1585,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 @@ -1661,8 +1661,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -1790,8 +1790,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 009f9fd72f864e0feb5c2bbc723e437e, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: doNotLoad: 0 clearAllOnStart: 1 worldFileName: lg_seocho_with_actors.world @@ -1949,8 +1949,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreLayout: 1 m_MinWidth: -1 m_MinHeight: -1 @@ -1969,8 +1969,8 @@ MonoBehaviour: m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -1979,7 +1979,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -2106,8 +2106,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -2150,8 +2150,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -2260,8 +2260,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -2303,7 +2303,7 @@ MonoBehaviour: m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_IntArgument: 0 m_FloatArgument: 0 - m_StringArgument: + m_StringArgument: m_BoolArgument: 0 m_CallState: 2 --- !u!114 &382802154 @@ -2316,8 +2316,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -2354,8 +2354,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd1d2678ff4e224f5a4ee866f3d7af53, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: maxRayDistance: 100 --- !u!1 &387521878 GameObject: @@ -2405,8 +2405,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -2415,7 +2415,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -2540,8 +2540,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -2725,8 +2725,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -2887,8 +2887,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -2897,7 +2897,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -3022,8 +3022,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -3098,8 +3098,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: m_Left: 10 m_Right: 10 @@ -3124,8 +3124,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 1 --- !u!1 &514533865 @@ -3251,8 +3251,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreLayout: 1 m_MinWidth: -1 m_MinHeight: -1 @@ -3271,8 +3271,8 @@ MonoBehaviour: m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -3281,7 +3281,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -3598,8 +3598,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -3734,8 +3734,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -3769,9 +3769,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 16254889ddec0ce0ba7f7db671e92d0b, type: 3} - m_Name: - m_EditorClassIdentifier: - targetLidarName: + m_Name: + m_EditorClassIdentifier: + targetLidarName: textureSize: 0 updateRate: 0.1 --- !u!1 &619652670 @@ -3823,8 +3823,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} --- !u!1 &622325894 @@ -3903,8 +3903,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -4009,8 +4009,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_SendPointerHoverToParent: 1 m_HorizontalAxis: Horizontal m_VerticalAxis: Vertical @@ -4029,8 +4029,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} m_sendNavigationEvents: 1 m_DragThreshold: 10 @@ -4044,8 +4044,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f36ccde904b2caf1a9710801807136b0, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!114 &683297089 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4056,8 +4056,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cbae07c6267889cceacfaf4e676c5ccf, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!114 &683297090 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4068,8 +4068,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 6f27710de512a0490b04a13f196dea25, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!114 &683297091 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4080,8 +4080,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 838111eae051196519d8d7728664669c, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!1 &702124002 GameObject: m_ObjectHideFlags: 0 @@ -4337,8 +4337,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Version: 1 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 @@ -4395,8 +4395,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -4674,8 +4674,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cb1f25bcbdf8dbeb2910354dd18778b2, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: hasRootArticulationBody: 0 isStatic: 0 --- !u!1 &775674121 @@ -4729,8 +4729,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Content: {fileID: 514347283} m_Horizontal: 0 m_Vertical: 1 @@ -4759,8 +4759,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 @@ -5177,8 +5177,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -5407,8 +5407,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -5453,7 +5453,7 @@ MonoBehaviour: m_HideMobileInput: 1 m_HideSoftKeyboard: 1 m_CharacterValidation: 0 - m_RegexValue: + m_RegexValue: m_GlobalPointSize: 11 m_CharacterLimit: 0 m_OnEndEdit: @@ -5505,8 +5505,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 @@ -5564,8 +5564,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 8ec65e03504ece92cbeb7b40065a589c, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: mainSpeed: 2.5 shiftAdd: 15 maxShift: 200 @@ -5642,8 +5642,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: c0a0594d67b881919b42a82caeb95d57, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: blockControl: 0 distance: 1 height: 3 @@ -5660,8 +5660,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1c0ad0e8e55c95c4e931911c4b943a64, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: space: 1 transformType: 0 pivot: 0 @@ -5669,14 +5669,15 @@ MonoBehaviour: planesOpacity: 0.2 movementSnap: 0.5 rotationSnap: 10 - handleLength: 0.1 + handleLength: 0.15 handleWidth: 0.003 - planeSize: 0.025 + planeSize: 0.03 triangleSize: 0.015 boxSize: 0.02 circleDetail: 50 allMoveHandleLengthMultiplier: 1 allRotateHandleLengthMultiplier: 1 + minimumDistanceHandleLengthMultiplier: 3 minSelectedDistanceCheck: 0.01 moveSpeedMultiplier: 1 rotateSpeedMultiplier: 1 @@ -5706,8 +5707,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_RenderShadows: 1 m_RequiresDepthTextureOption: 0 m_RequiresOpaqueTextureOption: 0 @@ -5779,8 +5780,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 2 m_WrapAround: 0 @@ -5828,8 +5829,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -5904,8 +5905,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -6039,8 +6040,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -6424,8 +6425,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -6462,8 +6463,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_ShowMaskGraphic: 0 --- !u!1 &1150143107 GameObject: @@ -6515,8 +6516,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -6564,8 +6565,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -6642,8 +6643,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -6709,8 +6710,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 m_BlockingObjects: 0 m_BlockingMask: @@ -6726,8 +6727,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_UiScaleMode: 0 m_ReferencePixelsPerUnit: 100 m_ScaleFactor: 1 @@ -6838,8 +6839,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} --- !u!1 &1314072909 @@ -7040,8 +7041,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 @@ -7399,8 +7400,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -7917,8 +7918,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -8238,8 +8239,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -8284,7 +8285,7 @@ MonoBehaviour: m_HideMobileInput: 1 m_HideSoftKeyboard: 1 m_CharacterValidation: 0 - m_RegexValue: + m_RegexValue: m_GlobalPointSize: 11 m_CharacterLimit: 0 m_OnEndEdit: @@ -8336,8 +8337,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 @@ -8417,8 +8418,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: b5c17b89baebdeca597971fbfdf4b2e9, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: --- !u!114 &1655136416 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8429,8 +8430,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -8483,8 +8484,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -8562,8 +8563,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Content: {fileID: 536702293} m_Horizontal: 0 m_Vertical: 1 @@ -8592,8 +8593,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -8818,8 +8819,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -8943,8 +8944,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cb1f25bcbdf8dbeb2910354dd18778b2, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: hasRootArticulationBody: 0 isStatic: 0 --- !u!1 &1750713662 @@ -9272,8 +9273,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} --- !u!1 &1791041572 @@ -9373,8 +9374,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5f9694630fd757ed38508aa2d402926b, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: drawInertia: 0 isSelfCollide: 0 useGravity: 0 @@ -9426,8 +9427,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -9714,8 +9715,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreLayout: 1 m_MinWidth: -1 m_MinHeight: -1 @@ -9734,8 +9735,8 @@ MonoBehaviour: m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -9744,7 +9745,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -9959,8 +9960,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_IgnoreLayout: 1 m_MinWidth: -1 m_MinHeight: -1 @@ -9979,8 +9980,8 @@ MonoBehaviour: m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -9989,7 +9990,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -10115,8 +10116,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} --- !u!1 &1928431085 @@ -10169,8 +10170,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 @@ -10215,7 +10216,7 @@ MonoBehaviour: m_HideMobileInput: 1 m_HideSoftKeyboard: 1 m_CharacterValidation: 0 - m_RegexValue: + m_RegexValue: m_GlobalPointSize: 11 m_CharacterLimit: 0 m_OnEndEdit: @@ -10267,8 +10268,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 0 @@ -10343,8 +10344,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_RaycastTarget: 1 @@ -10419,8 +10420,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 @@ -10496,8 +10497,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} --- !u!1 &2106501632 @@ -10599,8 +10600,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: cb1f25bcbdf8dbeb2910354dd18778b2, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: hasRootArticulationBody: 0 isStatic: 0 --- !u!1 &2130172959 @@ -10651,8 +10652,8 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 diff --git a/Assets/Scripts/CLOiSimPlugins/Modules/LiftControl.cs b/Assets/Scripts/CLOiSimPlugins/Modules/LiftControl.cs index 7b172bae..e3a5a84a 100644 --- a/Assets/Scripts/CLOiSimPlugins/Modules/LiftControl.cs +++ b/Assets/Scripts/CLOiSimPlugins/Modules/LiftControl.cs @@ -16,6 +16,8 @@ public class LiftControl : MonoBehaviour private Actuator lift = new Actuator(); + + private Dictionary bodyOriginalTransform = new Dictionary(); private HashSet hashsetLiftingObjects = new HashSet(); private HashSet hashsetLiftingProps = new HashSet(); @@ -136,10 +138,6 @@ public void MoveTo(in float targetHeight) private IEnumerator DoLifting() { - var waitForEOF = new WaitForEndOfFrame(); - - var bodyOriginalTransform = new Dictionary(); - // handling the gameobhect which has articulation body foreach (var obj in hashsetLiftingObjects) { @@ -154,33 +152,43 @@ private IEnumerator DoLifting() } } + var waitForEOF = new WaitForEndOfFrame(); + var waitForFU = new WaitForFixedUpdate(); + do { lift.Drive(); - - // find root articulation body and teleport the body following as - foreach (var item in bodyOriginalTransform) - { - var articulationBody = item.Key; - var originalTransform = item.Value; - var newWorldPose = originalTransform.position; - newWorldPose.y = transform.localPosition.y; - articulationBody.Sleep(); - articulationBody.TeleportRoot(newWorldPose, originalTransform.localRotation); - } - yield return waitForEOF; + yield return waitForFU; } while (lift.IsMoving); bodyOriginalTransform.Clear(); DropLiftedObjects(); - finishedLiftingEvent.Invoke(); yield return null; } + void FixedUpdate() + { + const float GAP_BETWEEN_ELEVATOR_FLOOR = 0.02f; + + if (bodyOriginalTransform.Count > 0) + { + // find root articulation body and teleport the body following as elevator's height + foreach (var item in bodyOriginalTransform) + { + var articulationBody = item.Key; + var originalTransform = item.Value; + var newWorldPose = originalTransform.position; + newWorldPose.y = transform.localPosition.y + GAP_BETWEEN_ELEVATOR_FLOOR; + articulationBody.Sleep(); + articulationBody.TeleportRoot(newWorldPose, originalTransform.localRotation); + } + } + } + #if UNITY_EDITOR // just for test // void Update() diff --git a/Assets/Scripts/CLOiSimPlugins/RealSensePlugin.cs b/Assets/Scripts/CLOiSimPlugins/RealSensePlugin.cs index 86c23b50..8cff4869 100644 --- a/Assets/Scripts/CLOiSimPlugins/RealSensePlugin.cs +++ b/Assets/Scripts/CLOiSimPlugins/RealSensePlugin.cs @@ -27,7 +27,6 @@ protected override void OnAwake() protected override void OnStart() { var depthScale = GetPluginParameters().GetValue("configuration/depth_scale", 1000); - var colorName = GetPluginParameters().GetValue("activate/module[@name='color']"); var leftImagerName = GetPluginParameters().GetValue("activate/module[@name='left_imager']"); var rightImagerName = GetPluginParameters().GetValue("activate/module[@name='right_imager']"); @@ -93,8 +92,7 @@ private void FindAndAddDepthCameraPlugin(in string name, in uint depthScale) if (depthCamera != null) { - depthCamera.ReverseDepthData(false); - depthCamera.depthScale = depthScale; + depthCamera.SetDepthScale(depthScale); } } } @@ -154,7 +152,7 @@ private void SetModuleListInfoResponse(ref DeviceMessage msModuleInfo) { var moduleInfo = new messages.Param(); moduleInfo.Name = "module"; - moduleInfo.Value = new Any { Type = Any.ValueType.None}; + moduleInfo.Value = new Any { Type = Any.ValueType.None }; var moduleType = new messages.Param(); moduleType.Name = "type"; diff --git a/Assets/Scripts/Devices/Camera.cs b/Assets/Scripts/Devices/Camera.cs index 38ca46b8..703a6ca4 100644 --- a/Assets/Scripts/Devices/Camera.cs +++ b/Assets/Scripts/Devices/Camera.cs @@ -9,8 +9,8 @@ using UnityEngine.Rendering.Universal; using UnityEngine.Rendering; using UnityEngine.Experimental.Rendering; - using messages = cloisim.msgs; +using Unity.Collections; namespace SensorDevices { @@ -32,11 +32,12 @@ public class Camera : Device protected string targetRTname; protected GraphicsFormat targetColorFormat; - protected TextureFormat readbackDstFormat; - private CameraData.ImageData camImageData; + protected GraphicsFormat readbackDstFormat; + + private CameraData.Image camImageData; private List _readbackList = new List(); public Noise noise = null; - private bool _startCameraWork = false; + protected bool _startCameraWork = false; private float _lastTimeCameraWork = 0f; private RTHandle _rtHandle; @@ -93,13 +94,14 @@ protected override void OnStart() protected virtual void SetupTexture() { + camSensor.clearFlags = CameraClearFlags.Nothing; + camSensor.allowHDR = true; camSensor.depthTextureMode = DepthTextureMode.None; _universalCamData.requiresColorOption = CameraOverrideOption.On; _universalCamData.requiresDepthOption = CameraOverrideOption.Off; _universalCamData.requiresColorTexture = true; _universalCamData.requiresDepthTexture = false; _universalCamData.renderShadows = true; - _universalCamData.allowXRRendering = false; // Debug.Log("This is not a Depth Camera!"); targetRTname = "CameraColorTexture"; @@ -109,15 +111,17 @@ protected virtual void SetupTexture() { case CameraData.PixelFormat.L_INT8: targetColorFormat = GraphicsFormat.R8G8B8A8_SRGB; - readbackDstFormat = TextureFormat.R8; + readbackDstFormat = GraphicsFormat.R8_SRGB; break; case CameraData.PixelFormat.RGB_INT8: default: targetColorFormat = GraphicsFormat.R8G8B8A8_SRGB; - readbackDstFormat = TextureFormat.RGB24; + readbackDstFormat = GraphicsFormat.R8G8B8_SRGB; break; } + + camImageData = new CameraData.Image(camParameter.image.width, camParameter.image.height, pixelFormat); } protected override void InitializeMessages() @@ -168,13 +172,11 @@ private void SetupCamera() camSensor.ResetWorldToCameraMatrix(); camSensor.ResetProjectionMatrix(); - camSensor.allowHDR = true; + camSensor.renderingPath = RenderingPath.DeferredLighting; camSensor.allowMSAA = true; camSensor.allowDynamicResolution = true; camSensor.useOcclusionCulling = true; - camSensor.stereoTargetEye = StereoTargetEyeMask.None; - camSensor.orthographic = false; camSensor.nearClipPlane = (float)camParameter.clip.near; camSensor.farClipPlane = (float)camParameter.clip.far; @@ -215,11 +217,11 @@ private void SetupCamera() _universalCamData.enabled = false; _universalCamData.stopNaN = true; + _universalCamData.dithering = true; _universalCamData.renderPostProcessing = false; _universalCamData.allowXRRendering = false; _universalCamData.volumeLayerMask = LayerMask.GetMask("Nothing"); _universalCamData.renderType = CameraRenderType.Base; - _universalCamData.renderShadows = true; _universalCamData.cameraStack.Clear(); camSensor.enabled = false; @@ -227,8 +229,6 @@ private void SetupCamera() RenderPipelineManager.endCameraRendering += OnEndCameraRendering; // camSensor.hideFlags |= HideFlags.NotEditable; - - camImageData = new CameraData.ImageData(camParameter.image.width, camParameter.image.height, camParameter.image.format); } protected new void OnDestroy() @@ -265,7 +265,7 @@ private void CameraWorker() var readbackRequest = AsyncGPUReadback.Request(camSensor.targetTexture, 0, readbackDstFormat, OnCompleteAsyncReadback); - lock(_readbackList) + lock (_readbackList) { _readbackList.Add(readbackRequest); } @@ -281,35 +281,18 @@ protected void OnCompleteAsyncReadback(AsyncGPUReadbackRequest request) { if (request.hasError) { - Debug.LogError("Failed to read GPU texture"); + Debug.LogErrorFormat("{0}: Failed to read GPU texture", name); } else if (request.done) { checked { var readbackData = request.GetData(); - camImageData.SetTextureBufferData(readbackData); - var image = imageStamped.Image; - if (image.Data.Length == camImageData.GetImageDataLength()) - { - var imageData = camImageData.GetImageData(); - - PostProcessing(ref imageData); - - image.Data = imageData; - // Debug.Log(imageStamped.Image.Height + "," + imageStamped.Image.Width); - - if (camParameter.save_enabled) - { - var saveName = name + "_" + Time.time; - camImageData.SaveRawImageData(camParameter.save_path, saveName); - // Debug.LogFormat("{0}|{1} captured", camParameter.save_path, saveName); - } - } + ImageProcessing(ref readbackData); readbackData.Dispose(); } - lock(_readbackList) + lock (_readbackList) { _readbackList.Remove(request); } @@ -322,7 +305,27 @@ protected override void GenerateMessage() PushDeviceMessage(imageStamped); } - protected virtual void PostProcessing(ref byte[] buffer) { } + protected virtual void ImageProcessing(ref NativeArray readbackData) + { + var image = imageStamped.Image; + camImageData.SetTextureBufferData(readbackData); + + var imageData = camImageData.GetImageData(image.Data.Length); + if (imageData != null) + { + image.Data = imageData; + if (camParameter.save_enabled && _startCameraWork) + { + var saveName = name + "_" + Time.time; + camImageData.SaveRawImageData(camParameter.save_path, saveName); + // Debug.LogFormat("{0}|{1} captured", camParameter.save_path, saveName); + } + } + else + { + Debug.LogWarningFormat("{0}: Failed to get image Data", name); + } + } public messages.CameraSensor GetCameraInfo() { @@ -331,7 +334,7 @@ public messages.CameraSensor GetCameraInfo() public messages.Image GetImageDataMessage() { - return (imageStamped == null || imageStamped.Image == null)? null:imageStamped.Image; + return (imageStamped == null || imageStamped.Image == null) ? null : imageStamped.Image; } } } \ No newline at end of file diff --git a/Assets/Scripts/Devices/DepthCamera.cs b/Assets/Scripts/Devices/DepthCamera.cs index 688d452a..1d834d2a 100644 --- a/Assets/Scripts/Devices/DepthCamera.cs +++ b/Assets/Scripts/Devices/DepthCamera.cs @@ -8,18 +8,57 @@ using UnityEngine.Rendering.Universal; using UnityEngine.Rendering; using UnityEngine.Experimental.Rendering; +using Unity.Collections; +using Unity.Jobs; +using System.Threading.Tasks; namespace SensorDevices { public class DepthCamera : Camera { + #region "For Compute Shader" + private static ComputeShader ComputeShaderDepthBuffer = null; private ComputeShader computeShader = null; - private int kernelIndex = -1; + private int _kernelIndex = -1; + private const int ThreadGroupsX = 32; + private const int ThreadGroupsY = 32; + private int _threadGroupX; + private int _threadGroupY; + + #endregion private Material depthMaterial = null; - public uint depthScale = 1; + private uint depthScale = 1; + private int _imageDepth; + + private const int BatchSize = 64; + private DepthData.CamBuffer _depthCamBuffer; + private byte[] _computedBufferOutput; + private const uint OutputUnitSize = 4; + private int _computedBufferOutputUnitLength; + private CameraData.Image _depthCamImage; + private Texture2D _textureForCapture; + + + public static void LoadComputeShader() + { + if (ComputeShaderDepthBuffer == null) + { + ComputeShaderDepthBuffer = Resources.Load("Shader/DepthBufferScaling"); + } + } + + public static void UnloadComputeShader() + { + if (ComputeShaderDepthBuffer != null) + { + Resources.UnloadAsset(ComputeShaderDepthBuffer); + Resources.UnloadUnusedAssets(); + ComputeShaderDepthBuffer = null; + } + } public void ReverseDepthData(in bool reverse) { @@ -27,6 +66,8 @@ public void ReverseDepthData(in bool reverse) { depthMaterial.SetInt("_ReverseData", (reverse) ? 1 : 0); } + else + Debug.Log("is null"); } public void FlipXDepthData(in bool flip) @@ -37,49 +78,41 @@ public void FlipXDepthData(in bool flip) } } + public void SetDepthScale(in uint value) + { + depthScale = value; + + if (computeShader != null) + { + computeShader.SetFloat("_DepthScale", (float)depthScale); + } + } + new void OnDestroy() { // Debug.Log("OnDestroy(Depth Camera)"); Destroy(computeShader); computeShader = null; - Resources.UnloadAsset(ComputeShaderDepthBuffer); - Resources.UnloadUnusedAssets(); base.OnDestroy(); } protected override void SetupTexture() { - if (ComputeShaderDepthBuffer == null) - { - ComputeShaderDepthBuffer = Resources.Load("Shader/DepthBufferScaling"); - } - computeShader = Instantiate(ComputeShaderDepthBuffer); - kernelIndex = computeShader.FindKernel("CSDepthBufferScaling"); + _kernelIndex = computeShader.FindKernel("CSScaleDepthBuffer"); var depthShader = Shader.Find("Sensor/Depth"); depthMaterial = new Material(depthShader); - if (computeShader != null) - { - computeShader.SetFloat("_DepthMin", (float)camParameter.clip.near); - computeShader.SetFloat("_DepthMax", (float)camParameter.clip.far); - computeShader.SetFloat("_DepthScale", (float)depthScale); - } - - ReverseDepthData(true); - FlipXDepthData(false); - if (camParameter.depth_camera_output.Equals("points")) { Debug.Log("Enable Point Cloud data mode - NOT SUPPORT YET!"); camParameter.image.format = "RGB_FLOAT32"; } - camSensor.backgroundColor = Color.white; - camSensor.clearFlags = CameraClearFlags.SolidColor; - + camSensor.clearFlags = CameraClearFlags.Depth; + camSensor.allowHDR = false; camSensor.depthTextureMode = DepthTextureMode.Depth; _universalCamData.requiresColorOption = CameraOverrideOption.Off; _universalCamData.requiresDepthOption = CameraOverrideOption.On; @@ -89,24 +122,7 @@ protected override void SetupTexture() targetRTname = "CameraDepthTexture"; targetColorFormat = GraphicsFormat.R8G8B8A8_UNorm; - - var pixelFormat = CameraData.GetPixelFormat(camParameter.image.format); - switch (pixelFormat) - { - case CameraData.PixelFormat.L_INT16: - readbackDstFormat = TextureFormat.R16; - break; - - case CameraData.PixelFormat.R_FLOAT16: - readbackDstFormat = TextureFormat.RHalf; - break; - - case CameraData.PixelFormat.R_FLOAT32: - default: - Debug.Log("32bits depth format may cause application freezing."); - readbackDstFormat = TextureFormat.RFloat; - break; - } + readbackDstFormat = GraphicsFormat.R8G8B8A8_UNorm; var cb = new CommandBuffer(); cb.name = "CommandBufferForDepthShading"; @@ -116,25 +132,95 @@ protected override void SetupTexture() cb.ReleaseTemporaryRT(tempTextureId); camSensor.AddCommandBuffer(CameraEvent.AfterEverything, cb); cb.Release(); - } - private int threadGroupsX = 8; - private int threadGroupsY = 4; + var width = camParameter.image.width; + var height = camParameter.image.height; + var format = CameraData.GetPixelFormat(camParameter.image.format); + GraphicsFormat graphicFormat; + switch (format) + { + case CameraData.PixelFormat.L_INT8: + graphicFormat = GraphicsFormat.R8_UNorm; + break; + case CameraData.PixelFormat.R_FLOAT32: + graphicFormat = GraphicsFormat.R16G16_UNorm; + break; + case CameraData.PixelFormat.L_INT16: + default: + graphicFormat = GraphicsFormat.R16_UNorm; + break; + } + _textureForCapture = new Texture2D(width, height, graphicFormat, 0, TextureCreationFlags.None); + + _depthCamBuffer = new DepthData.CamBuffer(width, height); + _computedBufferOutputUnitLength = width * height; + _computedBufferOutput = new byte[_computedBufferOutputUnitLength * OutputUnitSize]; + + _depthCamImage = new CameraData.Image(width, height, format); - protected override void PostProcessing(ref byte[] buffer) + if (computeShader != null) + { + _imageDepth = CameraData.GetImageDepth(format); + computeShader.SetFloat("_DepthMax", (float)camParameter.clip.far); + computeShader.SetInt("_Width", width); + computeShader.SetInt("_UnitSize", _imageDepth); + } + + ReverseDepthData(false); + FlipXDepthData(false); + + _threadGroupX = width / ThreadGroupsX; + _threadGroupY = height / ThreadGroupsY; + } + + protected override void ImageProcessing(ref NativeArray readbackData) { - if (readbackDstFormat.Equals(TextureFormat.R16) && computeShader != null) + _depthCamBuffer.Allocate(); + _depthCamBuffer.raw = readbackData; + + if (_depthCamBuffer.depth.IsCreated && computeShader != null) { - var computeBuffer = new ComputeBuffer(buffer.Length, sizeof(byte)); - computeShader.SetBuffer(kernelIndex, "_Buffer", computeBuffer); - computeBuffer.SetData(buffer); - - var threadGroupX = camParameter.image.width / threadGroupsX; - var threadGroupY = camParameter.image.height / threadGroupsY; - computeShader.Dispatch(kernelIndex, threadGroupX, threadGroupY, 1); - computeBuffer.GetData(buffer); - computeBuffer.Release(); + var jobHandleDepthCamBuffer = _depthCamBuffer.Schedule(_depthCamBuffer.Length(), BatchSize); + jobHandleDepthCamBuffer.Complete(); + + var computeBufferSrc = new ComputeBuffer(_depthCamBuffer.depth.Length, sizeof(float)); + computeShader.SetBuffer(_kernelIndex, "_Input", computeBufferSrc); + computeBufferSrc.SetData(_depthCamBuffer.depth); + + var computeBufferDst = new ComputeBuffer(_computedBufferOutput.Length, sizeof(byte)); + computeShader.SetBuffer(_kernelIndex, "_Output", computeBufferDst); + computeShader.Dispatch(_kernelIndex, _threadGroupX, _threadGroupY, 1); + computeBufferDst.GetData(_computedBufferOutput); + + computeBufferSrc.Release(); + computeBufferDst.Release(); + + Parallel.For(0, _computedBufferOutputUnitLength, (int i) => + { + for (int j = 0; j < _imageDepth; j++) + imageStamped.Image.Data[i * _imageDepth + j] = _computedBufferOutput[i * OutputUnitSize + j]; + }); + + // Debug.LogFormat("{0:X} {1:X} {2:X} {3:X} => {4}, {5}, {6}, {7}", image.Data[0], image.Data[1], image.Data[2], image.Data[3], System.BitConverter.ToInt16(image.Data, 0), System.BitConverter.ToUInt16(image.Data, 2), System.BitConverter.ToInt32(image.Data, 0), System.BitConverter.ToSingle(image.Data, 0)); + + if (camParameter.save_enabled && _startCameraWork) + { + SaveRawImageData(); + } } + _depthCamBuffer.Deallocate(); + } + + private void SaveRawImageData() + { + var saveName = name + "_" + Time.time; + _textureForCapture.SetPixelData(imageStamped.Image.Data, 0); + _textureForCapture.filterMode = FilterMode.Point; + _textureForCapture.Apply(); + var bytes = _textureForCapture.EncodeToJPG(); + var fileName = string.Format("{0}/{1}.jpg", camParameter.save_path, saveName); + System.IO.File.WriteAllBytes(fileName, bytes); + // Debug.LogFormat("{0}|{1} captured", camParameter.save_path, saveName); } } } \ No newline at end of file diff --git a/Assets/Scripts/Devices/Lidar.cs b/Assets/Scripts/Devices/Lidar.cs index c36aa5a5..0fd70f8d 100644 --- a/Assets/Scripts/Devices/Lidar.cs +++ b/Assets/Scripts/Devices/Lidar.cs @@ -67,7 +67,7 @@ public AsyncLaserWork(in int dataIndex, in AsyncGPUReadbackRequest request) } } private List _asyncWorkList = new List(); - private LaserData.DepthCamBuffer[] _depthCamBuffers; + private DepthData.CamBuffer[] _depthCamBuffers; private LaserData.LaserCamData[] _laserCamData; private LaserData.LaserDataOutput[] _laserDataOutput; private LaserFilter laserFilter = null; @@ -224,6 +224,7 @@ private void SetupLaserCamera() var universalLaserCamData = laserCam.GetUniversalAdditionalCameraData(); universalLaserCamData.renderShadows = false; + universalLaserCamData.dithering = true; universalLaserCamData.allowXRRendering = false; universalLaserCamData.volumeLayerMask = LayerMask.GetMask("Nothing"); universalLaserCamData.renderType = CameraRenderType.Base; @@ -266,7 +267,7 @@ private void SetupLaserCameraData() _parallelOptions = new ParallelOptions { MaxDegreeOfParallelism = numberOfLaserCamData }; _laserCamData = new LaserData.LaserCamData[numberOfLaserCamData]; - _depthCamBuffers = new LaserData.DepthCamBuffer[numberOfLaserCamData]; + _depthCamBuffers = new DepthData.CamBuffer[numberOfLaserCamData]; _laserDataOutput = new LaserData.LaserDataOutput[numberOfLaserCamData]; var targetDepthRT = laserCam.targetTexture; @@ -276,7 +277,7 @@ private void SetupLaserCameraData() for (var index = 0; index < numberOfLaserCamData; index++) { - _depthCamBuffers[index] = new LaserData.DepthCamBuffer(width, height); + _depthCamBuffers[index] = new DepthData.CamBuffer(width, height); var centerAngle = LaserCameraRotationAngle * index + centerAngleOffset; _laserCamData[index] = new LaserData.LaserCamData(width, height, range, laserAngleResolution, centerAngle, LaserCameraHFovHalf, LaserCameraVFovHalf); @@ -325,7 +326,7 @@ private void LaserCameraWorker() if (laserCam.isActiveAndEnabled) { laserCam.Render(); - var readbackRequest = AsyncGPUReadback.Request(laserCam.targetTexture, 0, TextureFormat.RGBA32, OnCompleteAsyncReadback); + var readbackRequest = AsyncGPUReadback.Request(laserCam.targetTexture, 0, GraphicsFormat.R8G8B8A8_UNorm, OnCompleteAsyncReadback); lock (_asyncWorkList) { _asyncWorkList.Add(new AsyncLaserWork(dataIndex, readbackRequest)); @@ -356,15 +357,15 @@ protected void OnCompleteAsyncReadback(AsyncGPUReadbackRequest request) var depthCamBuffer = _depthCamBuffers[dataIndex]; depthCamBuffer.Allocate(); - depthCamBuffer.imageBuffer = request.GetData(); + depthCamBuffer.raw = request.GetData(); - if (depthCamBuffer.depthBuffer.IsCreated) + if (depthCamBuffer.depth.IsCreated) { var jobHandleDepthCamBuffer = depthCamBuffer.Schedule(depthCamBuffer.Length(), BatchSize); jobHandleDepthCamBuffer.Complete(); var laserCamData = _laserCamData[dataIndex]; - laserCamData.depthBuffer = depthCamBuffer.depthBuffer; + laserCamData.depthBuffer = depthCamBuffer.depth; laserCamData.Allocate(); var jobHandle = laserCamData.Schedule(laserCamData.OutputLength(), BatchSize); @@ -479,7 +480,7 @@ protected override void GenerateMessage() break; case 3: - dataLengthRatio =(laserEndAngleH - dataStartAngleH) * dividedDataTotalAngleH; + dataLengthRatio = (laserEndAngleH - dataStartAngleH) * dividedDataTotalAngleH; copyLength = Mathf.CeilToInt(srcBufferHorizontalLength * dataLengthRatio); srcBufferOffset = srcBufferHorizontalLength * (sampleIndexV + 1) - copyLength; dstBufferOffset = laserSamplesH * sampleIndexV + 1; diff --git a/Assets/Scripts/Devices/Modules/CameraData.cs b/Assets/Scripts/Devices/Modules/CameraData.cs index 4adad191..60ea45ea 100644 --- a/Assets/Scripts/Devices/Modules/CameraData.cs +++ b/Assets/Scripts/Devices/Modules/CameraData.cs @@ -114,67 +114,60 @@ public static int GetImageDepth(in PixelFormat pixelFormat) return depth; } - public struct ImageData + public struct Image { - private NativeArray imageBuffer; + private NativeArray buffer; - private Texture2D cameraImage; + private Texture2D textureForCapture; - public ImageData(in int width, in int height, in string imageFormat) + public Image(in int width, in int height, in CameraData.PixelFormat pixelFormat) { - var isLinear = false; var textureFormat = TextureFormat.RGB24; - var format = GetPixelFormat(imageFormat); - switch (format) + switch (pixelFormat) { case PixelFormat.L_INT8: textureFormat = TextureFormat.R8; break; case PixelFormat.L_INT16: - textureFormat = TextureFormat.RG16; + textureFormat = TextureFormat.R16; break; - case PixelFormat.R_FLOAT32: - textureFormat = TextureFormat.ARGB32; - isLinear = true; + case PixelFormat.R_FLOAT16: + textureFormat = TextureFormat.RHalf; break; - case PixelFormat.RGB_FLOAT32: - textureFormat = TextureFormat.ARGB32; - isLinear = true; + case PixelFormat.R_FLOAT32: + textureFormat = TextureFormat.RFloat; break; + case PixelFormat.RGB_FLOAT32: case PixelFormat.RGB_INT8: default: + textureFormat = TextureFormat.RGB24; break; } - imageBuffer = default(NativeArray); - cameraImage = new Texture2D(width, height, textureFormat, false, isLinear); + buffer = default(NativeArray); + textureForCapture = new Texture2D(width, height, textureFormat, false, true); } - public void SetTextureBufferData(in NativeArray buffer) + public void SetTextureBufferData(in NativeArray data) { - imageBuffer = buffer; + buffer = data; } - public int GetImageDataLength() + public byte[] GetImageData(in int targetLength) { - return imageBuffer.Length; + return (targetLength == buffer.Length) ? buffer.ToArray() : null; } - public byte[] GetImageData() - { - return imageBuffer.ToArray(); - } - public void SaveRawImageData(in string path, in string name) { - cameraImage.SetPixelData(imageBuffer, 0); - cameraImage.Apply(); - var bytes = cameraImage.EncodeToPNG(); + textureForCapture.SetPixelData(buffer, 0); + textureForCapture.Apply(); + var bytes = textureForCapture.EncodeToPNG(); var fileName = string.Format("{0}/{1}.png", path, name); System.IO.File.WriteAllBytes(fileName, bytes); } diff --git a/Assets/Scripts/Devices/Modules/DepthData.cs b/Assets/Scripts/Devices/Modules/DepthData.cs new file mode 100644 index 00000000..bc7aca1e --- /dev/null +++ b/Assets/Scripts/Devices/Modules/DepthData.cs @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2020 LG Electronics Inc. + * + * SPDX-License-Identifier: MIT + */ + +using Unity.Collections; +using Unity.Jobs; + +namespace SensorDevices +{ + public static class DepthData + { + private const int ColorFormatUnitSize = sizeof(float); + + public struct CamBuffer : IJobParallelFor + { + + [ReadOnly] + public NativeArray raw; + + public NativeArray depth; + private readonly int depthLength; + + public CamBuffer(in int width, in int height) + { + this.raw = default(NativeArray); + this.depthLength = width * height; + this.depth = default(NativeArray); + } + + public void Allocate() + { + this.depth = new NativeArray(this.depthLength, Allocator.TempJob); + } + + public void Deallocate() + { + this.raw.Dispose(); + this.depth.Dispose(); + } + + public int Length() + { + return depth.Length; + } + + public void Execute(int i) + { + depth[i] = GetDecodedData(i); + } + + private float GetDecodedData(in int index) + { + var imageOffset = index * ColorFormatUnitSize; + if (raw != null && imageOffset < raw.Length) + { + var r = raw[imageOffset]; + var g = raw[imageOffset + 1]; + var b = raw[imageOffset + 2]; + var a = raw[imageOffset + 3]; + + return DecodeFloatRGBA(r, g, b, a); + } + else + { + return 0; + } + } + + private float DecodeFloatRGBA(in byte r, in byte g, in byte b, in byte a) + { + // decodedData = (r / 255f) + (g / 255f) / 255f + (b / 255f) / 65025f + (a / 255f) / 16581375f; + return (r * 0.00392156862f) + (g * 0.0000153787f) + (b * 0.0000000603086f) + (a * 0.0000000002365f); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Devices/Modules/DepthData.cs.meta b/Assets/Scripts/Devices/Modules/DepthData.cs.meta new file mode 100644 index 00000000..b9caa7d6 --- /dev/null +++ b/Assets/Scripts/Devices/Modules/DepthData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29316c9ee34b8a89cb862e03fd7952ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Devices/Modules/LaserData.cs b/Assets/Scripts/Devices/Modules/LaserData.cs index dfa4cc27..fa5f34c3 100644 --- a/Assets/Scripts/Devices/Modules/LaserData.cs +++ b/Assets/Scripts/Devices/Modules/LaserData.cs @@ -73,69 +73,6 @@ public AngleResolution(in float angleResolutionH = 0, in float angleResolutionV } } - private const int ColorFormatUnitSize = sizeof(float); - - public struct DepthCamBuffer : IJobParallelFor - { - private readonly int imageDataLength; - - [ReadOnly] - public NativeArray imageBuffer; - public NativeArray depthBuffer; - - public DepthCamBuffer(in int width, in int height) - { - this.imageDataLength = width * height; - this.imageBuffer = default(NativeArray); - this.depthBuffer = default(NativeArray); - } - - public void Allocate() - { - this.depthBuffer = new NativeArray(this.imageDataLength, Allocator.TempJob); - } - - public void Deallocate() - { - this.imageBuffer.Dispose(); - this.depthBuffer.Dispose(); - } - - public int Length() - { - return depthBuffer.Length; - } - - public void Execute(int i) - { - depthBuffer[i] = GetDecodedData(i); - } - - private float GetDecodedData(in int index) - { - var imageOffset = index * ColorFormatUnitSize; - if (imageBuffer != null && imageOffset < imageBuffer.Length) - { - var r = imageBuffer[imageOffset]; - var g = imageBuffer[imageOffset + 1]; - var b = imageBuffer[imageOffset + 2]; - var a = imageBuffer[imageOffset + 3]; - - return DecodeFloatRGBA(r, g, b, a); - } - else - { - return 0; - } - } - - private float DecodeFloatRGBA(in byte r, in byte g, in byte b, in byte a) - { - // decodedData = (r / 255f) + (g / 255f) / 255f + (b / 255f) / 65025f + (a / 255f) / 16581375f; - return (r * 0.0039215686f) + (g * 0.0000153787f) + (b * 0.0000000603f) + (a * 0.0000000002f); - } - } - public struct LaserDataOutput { public double[] data; @@ -253,7 +190,7 @@ private void ResolveLaserRange(in int index) // filter min/max range var rayDistance = depthData * range.max; - laserData[index] = (rayDistance < range.min)? double.NaN: rayDistance; + laserData[index] = (rayDistance < range.min) ? double.NaN : rayDistance; } // The code actually running on the job @@ -268,4 +205,4 @@ public double[] GetLaserData() } } } -} +} \ No newline at end of file diff --git a/Assets/Scripts/Devices/Modules/RandomNumberGenerator.cs b/Assets/Scripts/Devices/Modules/RandomNumberGenerator.cs index 3c6de9a5..e2ccb670 100644 --- a/Assets/Scripts/Devices/Modules/RandomNumberGenerator.cs +++ b/Assets/Scripts/Devices/Modules/RandomNumberGenerator.cs @@ -81,7 +81,7 @@ public static double GetNormal() // Get normal (Gaussian) random sample with specified mean and standard deviation public static double GetNormal(in double mean, in double standardDeviation) { - if (standardDeviation <= 0.0) + if (standardDeviation <= 0) { var msg = string.Format("Shape must be positive. Received {0}.", standardDeviation); // throw new ArgumentOutOfRangeException(msg); diff --git a/Assets/Scripts/Main.cs b/Assets/Scripts/Main.cs index 98f0306b..ebc2fad2 100644 --- a/Assets/Scripts/Main.cs +++ b/Assets/Scripts/Main.cs @@ -234,6 +234,8 @@ void Awake() DeviceHelper.SetGlobalSphericalCoordinates(sphericalCoordinates); gameObject.AddComponent(); + + SensorDevices.DepthCamera.LoadComputeShader(); } void Start() @@ -467,6 +469,8 @@ private static string GetArgument(in string arg_name) void OnDestroy() { + SensorDevices.DepthCamera.UnloadComputeShader(); + Main.bridgeManager.Dispose(); Main.simulationService.Dispose(); diff --git a/Assets/Scripts/Tools/SDF/Implement/Implement.Sensor.cs b/Assets/Scripts/Tools/SDF/Implement/Implement.Sensor.cs index da5a6043..b4047fad 100644 --- a/Assets/Scripts/Tools/SDF/Implement/Implement.Sensor.cs +++ b/Assets/Scripts/Tools/SDF/Implement/Implement.Sensor.cs @@ -108,24 +108,24 @@ public static Device AddDepthCamera(in SDF.Camera element, in GameObject targetO switch (element.image.format) { case "L16": - case "R_FLOAT16": + case "L8": case "R_FLOAT32": - case "L_INT16": case "L_UINT16": + case "L_INT16": + case "L_INT8": // Debug.Log("Supporting data type for Depth camera"); break; default: if (element.image.format.Equals(string.Empty)) { - Debug.LogWarning(element.name + " 'R_FLOAT16' will be set for Depth camera's image format"); + Debug.LogWarningFormat("'L16' will be set for Depth camera({0})'s image format", element.name); } else { Debug.LogWarningFormat("Not supporting data type({0}) for Depth camera", element.image.format); } - - element.image.format = "R_FLOAT16"; + element.image.format = "L16"; break; } diff --git a/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.axis.cs b/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.axis.cs index ecbe08cb..30ab9cfd 100644 --- a/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.axis.cs +++ b/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.axis.cs @@ -272,26 +272,6 @@ float ClosestDistanceFromMouseToPlanes(List planePoints) return closestDistance; } - //float DistanceFromMouseToPlane(List planeLines) - //{ - // if (planeLines.Count >= 4) - // { - // Ray mouseRay = myCamera.ScreenPointToRay(Input.mousePosition); - // Plane plane = new Plane(planeLines[0], planeLines[1], planeLines[2]); - - // float distanceToPlane; - // if (plane.Raycast(mouseRay, out distanceToPlane)) - // { - // Vector3 pointOnPlane = mouseRay.origin + (mouseRay.direction * distanceToPlane); - // Vector3 planeCenter = (planeLines[0] + planeLines[1] + planeLines[2] + planeLines[3]) / 4f; - - // return Vector3.Distance(planeCenter, pointOnPlane); - // } - // } - - // return float.MaxValue; - //} - void SetAxisInfo() { if (mainTargetRoot != null) @@ -300,14 +280,13 @@ void SetAxisInfo() } } - //This helps keep the size consistent no matter how far we are from it. + // This helps keep the size consistent no matter how far we are from it. public float GetDistanceMultiplier() { if (mainTargetRoot == null) return 0f; - if (myCamera.orthographic) return Mathf.Max(.01f, myCamera.orthographicSize * 2f); - return Mathf.Max(.01f, Mathf.Abs(ExtVector3.MagnitudeInDirection(pivotPoint - transform.position, myCamera.transform.forward))); + var mag = Mathf.Abs(ExtVector3.MagnitudeInDirection(pivotPoint - transform.position, myCamera.transform.forward)); + return Mathf.Max(this.minimumDistanceHandleLengthMultiplier, mag); } - } } \ No newline at end of file diff --git a/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.cs b/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.cs index 8621ca6f..2bd82f68 100644 --- a/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.cs +++ b/Assets/Scripts/UI/RuntimeGizmo/TransformGizmo.cs @@ -33,6 +33,7 @@ public partial class TransformGizmo : MonoBehaviour public int circleDetail = 40; public float allMoveHandleLengthMultiplier = 1f; public float allRotateHandleLengthMultiplier = 1.4f; + public float minimumDistanceHandleLengthMultiplier = 2f; public float minSelectedDistanceCheck = .01f; public float moveSpeedMultiplier = 1f; public float rotateSpeedMultiplier = 1f; @@ -61,18 +62,18 @@ public partial class TransformGizmo : MonoBehaviour public Action onCheckForSelectedAxis; public Action onDrawCustomGizmo; - public Camera myCamera {get; private set;} + public Camera myCamera { get; private set; } - public bool isTransforming {get; private set;} - public Quaternion totalRotationAmount {get; private set;} - public Axis translatingAxis {get {return nearAxis;}} - public Axis translatingAxisPlane {get {return planeAxis;}} - public bool hasTranslatingAxisPlane {get {return translatingAxisPlane != Axis.None && translatingAxisPlane != Axis.Any;}} - public TransformType transformingType {get {return translatingType;}} + public bool isTransforming { get; private set; } + public Quaternion totalRotationAmount { get; private set; } + public Axis translatingAxis { get { return nearAxis; } } + public Axis translatingAxisPlane { get { return planeAxis; } } + public bool hasTranslatingAxisPlane { get { return translatingAxisPlane != Axis.None && translatingAxisPlane != Axis.Any; } } + public TransformType transformingType { get { return translatingType; } } - public Vector3 pivotPoint {get; private set;} + public Vector3 pivotPoint { get; private set; } - public Transform mainTargetRoot {get {return (targetRootsOrdered.Count > 0)? ((useFirstSelectedAsMain)? targetRootsOrdered[0]:targetRootsOrdered[targetRootsOrdered.Count - 1]):null;}} + public Transform mainTargetRoot { get { return (targetRootsOrdered.Count > 0) ? ((useFirstSelectedAsMain) ? targetRootsOrdered[0] : targetRootsOrdered[targetRootsOrdered.Count - 1]) : null; } } private Axis nearAxis = Axis.None; private Axis planeAxis = Axis.None; @@ -153,7 +154,7 @@ void LateUpdate() { if (mainTargetRoot == null) { - return; + return; } // We run this in lateupdate since coroutines run after update and we want our gizmos to have the updated target transform position after TransformSelected() @@ -270,6 +271,8 @@ void TransformSelected() private void MakeImmovableBodyTransformSelected(in bool value) { + const float MarginForPositionY = 0.005f; + for (var i = 0; i < targetRootsOrdered.Count; i++) { var target = targetRootsOrdered[i]; @@ -278,6 +281,14 @@ private void MakeImmovableBodyTransformSelected(in bool value) if (articulationBody != null && articulationBody.isRoot) { articulationBody.immovable = value; + + if (articulationBody.immovable) + { + articulationBody.Sleep(); + var marginForTransform = new Pose(articulationBody.transform.position, articulationBody.transform.rotation); + marginForTransform.position.y += MarginForPositionY; + articulationBody.TeleportRoot(marginForTransform.position, marginForTransform.rotation); + } } else { @@ -312,6 +323,8 @@ IEnumerator TransformSelected(TransformType transType) var mousePosition = Geometry.LinePlaneIntersect(mouseRay.origin, mouseRay.direction, originalPivot, planeNormal); var isSnapping = Input.GetKey(translationSnapping); + mousePosition.y += 0.1f; + if (previousMousePosition != Vector3.zero && mousePosition != Vector3.zero) { switch (transType) @@ -376,7 +389,7 @@ IEnumerator TransformSelected(TransformType transType) var articulationBody = target.GetComponent(); if (articulationBody != null && articulationBody.isRoot) { - var newPose = new Pose(target.transform.position, target.transform.rotation); + var newPose = new Pose(articulationBody.transform.position, articulationBody.transform.rotation); newPose.position += movement; articulationBody.Sleep(); articulationBody.TeleportRoot(newPose.position, newPose.rotation); @@ -456,7 +469,7 @@ IEnumerator TransformSelected(TransformType transType) var articulationBody = target.GetComponent(); if (articulationBody != null && articulationBody.isRoot) { - var newPose = new Pose(target.transform.position, target.transform.rotation); + var newPose = new Pose(articulationBody.transform.position, articulationBody.transform.rotation); articulationBody.Sleep(); articulationBody.TeleportRoot(newPose.position, newPose.rotation); } diff --git a/Packages/manifest.json b/Packages/manifest.json index b54dc913..0c576b42 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -4,7 +4,7 @@ "com.unity.ide.vscode": "1.2.5", "com.unity.mathematics": "1.2.6", "com.unity.performance.profile-analyzer": "1.1.1", - "com.unity.render-pipelines.universal": "12.1.8", + "com.unity.render-pipelines.universal": "12.1.9", "com.unity.searcher": "4.9.2", "com.unity.textmeshpro": "3.0.6", "com.unity.toolchain.linux-x86_64": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 53393414..00cf3334 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -40,7 +40,7 @@ "url": "https://packages.unity.com" }, "com.unity.render-pipelines.core": { - "version": "12.1.8", + "version": "12.1.9", "depth": 1, "source": "builtin", "dependencies": { @@ -50,14 +50,14 @@ } }, "com.unity.render-pipelines.universal": { - "version": "12.1.8", + "version": "12.1.9", "depth": 0, "source": "builtin", "dependencies": { "com.unity.mathematics": "1.2.1", "com.unity.burst": "1.8.2", - "com.unity.render-pipelines.core": "12.1.8", - "com.unity.shadergraph": "12.1.8" + "com.unity.render-pipelines.core": "12.1.9", + "com.unity.shadergraph": "12.1.9" } }, "com.unity.searcher": { @@ -68,11 +68,11 @@ "url": "https://packages.unity.com" }, "com.unity.shadergraph": { - "version": "12.1.8", + "version": "12.1.9", "depth": 1, "source": "builtin", "dependencies": { - "com.unity.render-pipelines.core": "12.1.8", + "com.unity.render-pipelines.core": "12.1.9", "com.unity.searcher": "4.9.1" } }, diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index 48170f20..2a760fd3 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -3,8 +3,7 @@ --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 - m_ExternalVersionControlSupport: Visible Meta Files + serializedVersion: 11 m_SerializationMode: 2 m_LineEndingsForNewScripts: 0 m_DefaultBehaviorMode: 0 @@ -12,24 +11,34 @@ EditorSettings: m_PrefabUIEnvironment: {fileID: 0} m_SpritePackerMode: 0 m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 m_EtcTextureCompressorBehavior: 1 m_EtcTextureFastCompressor: 1 m_EtcTextureNormalCompressor: 2 m_EtcTextureBestCompressor: 4 m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref m_ProjectGenerationRootNamespace: - m_CollabEditorSettings: - inProgressEnabled: 1 m_EnableTextureStreamingInEditMode: 1 m_EnableTextureStreamingInPlayMode: 1 m_AsyncShaderCompilation: 1 + m_CachingShaderPreprocessor: 1 + m_PrefabModeAllowAutoSave: 1 m_EnterPlayModeOptionsEnabled: 0 m_EnterPlayModeOptions: 3 - m_ShowLightmapResolutionOverlay: 1 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 m_UseLegacyProbeSampleCount: 1 + m_SerializeInlineMappingsOnOneLine: 0 + m_DisableCookiesInLightmapper: 1 m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 m_CacheServerMode: 0 m_CacheServerEndpoint: m_CacheServerNamespacePrefix: default m_CacheServerEnableDownload: 1 m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 5e4fcf3d..94e755bb 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -134,7 +134,7 @@ PlayerSettings: 16:10: 1 16:9: 1 Others: 1 - bundleVersion: 3.0.6 + bundleVersion: 3.1.0 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 3643b022..1a9f85a6 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2021.3.16f1 -m_EditorVersionWithRevision: 2021.3.16f1 (4016570cf34f) +m_EditorVersion: 2021.3.17f1 +m_EditorVersionWithRevision: 2021.3.17f1 (3e8111cac19d)