diff --git a/Assets/Prefabs/Panels/GuideToolsPanel.prefab b/Assets/Prefabs/Panels/GuideToolsPanel.prefab index 0adf32441a..00d78aca9f 100644 --- a/Assets/Prefabs/Panels/GuideToolsPanel.prefab +++ b/Assets/Prefabs/Panels/GuideToolsPanel.prefab @@ -37,6 +37,7 @@ Transform: - {fileID: 4000011754324068} - {fileID: 4000010950163592} - {fileID: 4000012016487442} + - {fileID: 1316736359741259463} m_Father: {fileID: 464110} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -222,7 +223,7 @@ BoxCollider: m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1.4, y: 1.1, z: 0.02} + m_Size: {x: 1.4, y: 1.5, z: 0.02} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &178704 GameObject: @@ -262,7 +263,7 @@ MeshFilter: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 178704} - m_Mesh: {fileID: 4300000, guid: f74ab64bbd1dd3a4e8fc536254e3ac66, type: 3} + m_Mesh: {fileID: 4300000, guid: bfb0baf1a986fe5479556d1776afff52, type: 3} --- !u!1 &195514 GameObject: m_ObjectHideFlags: 0 @@ -305,7 +306,7 @@ BoxCollider: m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1.9, y: 1.6, z: 0.5} + m_Size: {x: 1.9, y: 2.4, z: 0.5} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1000010407002122 GameObject: @@ -335,7 +336,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000010407002122} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.21000004, z: 0.05} + m_LocalPosition: {x: 0, y: 0.39499998, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -458,7 +459,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000011539968446} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.416, y: 0.21000004, z: 0.05} + m_LocalPosition: {x: 0.416, y: 0.39499998, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -593,7 +594,7 @@ MeshFilter: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000011773655602} - m_Mesh: {fileID: 4300000, guid: 70d5ab47bcc3aa0439e20bd40350c05a, type: 3} + m_Mesh: {fileID: 4300000, guid: abfb1ed71d7809e4ca432a0cb90d676b, type: 3} --- !u!23 &23000014277342512 MeshRenderer: m_ObjectHideFlags: 0 @@ -886,7 +887,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000012314343422} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.416, y: -0.21, z: 0.05} + m_LocalPosition: {x: 0.416, y: -0.02500005, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -1019,7 +1020,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000013220144578} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.416, y: -0.21000004, z: 0.05} + m_LocalPosition: {x: -0.416, y: -0.025000095, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -1142,7 +1143,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000013984474622} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.21, z: 0.05} + m_LocalPosition: {x: 0, y: -0.02500005, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -1237,6 +1238,257 @@ MonoBehaviour: m_HoverBoxColliderGrow: 0.2 m_AddOverlay: 0 m_Type: 3 +--- !u!1 &1550163199324860026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3803312389844076658} + - component: {fileID: 3547328506435963864} + - component: {fileID: 1379298806110779130} + - component: {fileID: 3866069622247236081} + m_Layer: 16 + m_Name: MinIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3803312389844076658 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550163199324860026} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.5, y: 0, z: 0.05} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3547328506435963864 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550163199324860026} + m_Mesh: {fileID: 4300000, guid: 260cc07aabcea6d41a633a35c1103a6c, type: 3} +--- !u!23 &1379298806110779130 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550163199324860026} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, 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: 0 + 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 +--- !u!114 &3866069622247236081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550163199324860026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0fda994627665a24b888af25f8c55ce4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Icon: {fileID: 2800000, guid: 8e733c6b71b90e94c8b99c3c58de9b65, type: 3} +--- !u!1 &2367366186935301193 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7073141969335549376} + - component: {fileID: 1445699866193492073} + - component: {fileID: 4940418778313840920} + m_Layer: 16 + m_Name: Cap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7073141969335549376 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2367366186935301193} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.3, y: -0.007, z: 0.05} + m_LocalScale: {x: 0.11, y: 0.11, z: 0.1} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1445699866193492073 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2367366186935301193} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4940418778313840920 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2367366186935301193} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ca448c25e886c544796b10b98d8aa9cc, 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: 0 + 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 +--- !u!1 &3049231379317704024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5102288384282107253} + - component: {fileID: 4364491759810234094} + - component: {fileID: 1848207878205953585} + m_Layer: 16 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5102288384282107253 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049231379317704024} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.007, z: 0.05} + m_LocalScale: {x: 0.5, y: 0.11, z: 1} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &4364491759810234094 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049231379317704024} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: db2d9e5107064e64ea8ce921e6f24458, 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: 0 + 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 +--- !u!33 &1848207878205953585 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049231379317704024} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &4099382765129129040 GameObject: m_ObjectHideFlags: 0 @@ -1265,7 +1517,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4099382765129129040} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.416, y: 0.21000004, z: 0.05} + m_LocalPosition: {x: -0.416, y: 0.395, z: 0.05} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_Children: [] m_Father: {fileID: 417900} @@ -1345,7 +1597,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_DescriptionType: 0 m_DescriptionYOffset: 0 - m_DescriptionText: Plane Guide + m_DescriptionText: Cube Guide m_DescriptionTextExtra: m_DescriptionActivateSpeed: 12 m_DescriptionZScale: 1 @@ -1360,3 +1612,372 @@ MonoBehaviour: m_HoverBoxColliderGrow: 0.2 m_AddOverlay: 0 m_Type: 0 +--- !u!1 &4569872940874874763 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3485900823514689920} + - component: {fileID: 1676445595468297063} + - component: {fileID: 4050451989915629480} + - component: {fileID: 7964947906979514262} + m_Layer: 16 + m_Name: MaxIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3485900823514689920 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4569872940874874763} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.5, y: 0, z: 0.05} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1676445595468297063 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4569872940874874763} + m_Mesh: {fileID: 4300000, guid: 260cc07aabcea6d41a633a35c1103a6c, type: 3} +--- !u!23 &4050451989915629480 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4569872940874874763} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, 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: 0 + 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 +--- !u!114 &7964947906979514262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4569872940874874763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0fda994627665a24b888af25f8c55ce4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Icon: {fileID: 2800000, guid: a68fb700064025245af41e5c5c784e6c, type: 3} +--- !u!1 &5870803456983517396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1123594689280486007} + - component: {fileID: 3257035217372399836} + - component: {fileID: 2393163081835804903} + - component: {fileID: 135177317302905413} + m_Layer: 16 + m_Name: SliderPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1123594689280486007 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5870803456983517396} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.25, y: 0, z: 0.05} + m_LocalScale: {x: 0.03, y: 0.08, z: 0.02} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3257035217372399836 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5870803456983517396} + m_Mesh: {fileID: 4300000, guid: 5ef960ddf11c1fd4983638f56f6a8be0, type: 3} +--- !u!23 &2393163081835804903 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5870803456983517396} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 3e92ccbfed650604686991e69902e663, 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: 0 + 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 +--- !u!114 &135177317302905413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5870803456983517396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aaefde5afe80784e908d27fcb05a101, type: 3} + m_Name: + m_EditorClassIdentifier: + m_OffsetOverride: -1 +--- !u!1 &6586607949392129858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6543848254959986636} + - component: {fileID: 3867175151653350535} + - component: {fileID: 8597531002982106244} + m_Layer: 16 + m_Name: Cap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6543848254959986636 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6586607949392129858} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0.3, y: -0.007, z: 0.05} + m_LocalScale: {x: 0.11, y: 0.11, z: 0.1} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3867175151653350535 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6586607949392129858} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8597531002982106244 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6586607949392129858} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ca448c25e886c544796b10b98d8aa9cc, 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: 0 + 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 +--- !u!1 &6700719502845980796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 805220852689684092} + - component: {fileID: 6621977532987318059} + m_Layer: 16 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &805220852689684092 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6700719502845980796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.109721534, z: 1} + m_Children: [] + m_Father: {fileID: 1316736359741259463} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &6621977532987318059 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6700719502845980796} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.181115, y: 0.96581644, z: 0.1} + m_Center: {x: -0.0031256676, y: -0.05127492, z: 0} +--- !u!1 &7062107329111215505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1316736359741259463} + - component: {fileID: 5111839456371936364} + m_Layer: 16 + m_Name: PointerSnapSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1316736359741259463 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7062107329111215505} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.443, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 805220852689684092} + - {fileID: 5102288384282107253} + - {fileID: 1123594689280486007} + - {fileID: 6543848254959986636} + - {fileID: 7073141969335549376} + - {fileID: 3803312389844076658} + - {fileID: 3485900823514689920} + m_Father: {fileID: 417900} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5111839456371936364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7062107329111215505} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83564bfff5bdd8a4eb20117ce11dff66, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 1 + m_DescriptionYOffset: 0 + m_DescriptionText: Snap Distance + m_DescriptionTextExtra: + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 25 + m_Nob: {fileID: 5870803456983517396} + m_Mesh: {fileID: 4364491759810234094} + m_MinAttractDistance: 0.25 + m_MaxAttractDistance: 2 diff --git a/Assets/Resources/Icons/pointersnap.png b/Assets/Resources/Icons/pointersnap.png new file mode 100644 index 0000000000..05cb9ea830 Binary files /dev/null and b/Assets/Resources/Icons/pointersnap.png differ diff --git a/Assets/Resources/Icons/pointersnap.png.meta b/Assets/Resources/Icons/pointersnap.png.meta new file mode 100644 index 0000000000..ce419978dd --- /dev/null +++ b/Assets/Resources/Icons/pointersnap.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 8e733c6b71b90e94c8b99c3c58de9b65 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/pointersnap_space.png b/Assets/Resources/Icons/pointersnap_space.png new file mode 100644 index 0000000000..27d00ac333 Binary files /dev/null and b/Assets/Resources/Icons/pointersnap_space.png differ diff --git a/Assets/Resources/Icons/pointersnap_space.png.meta b/Assets/Resources/Icons/pointersnap_space.png.meta new file mode 100644 index 0000000000..cf6e8a0474 --- /dev/null +++ b/Assets/Resources/Icons/pointersnap_space.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: a68fb700064025245af41e5c5c784e6c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs b/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs new file mode 100644 index 0000000000..5c952e99fa --- /dev/null +++ b/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs @@ -0,0 +1,54 @@ +// Copyright 2021 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace TiltBrush +{ + public class ModifyStencilAttractDistanceCommand : BaseCommand + { + private readonly float m_StartDistance; + private float m_EndDistance; + private bool m_Final; + + public ModifyStencilAttractDistanceCommand(float endDistance, bool final = false, + BaseCommand parent = null) : base(parent) + { + m_StartDistance = WidgetManager.m_Instance.StencilAttractDist; + m_EndDistance = endDistance; + m_Final = final; + } + + public override bool NeedsSave => true; + + protected override void OnUndo() + { + WidgetManager.m_Instance.StencilAttractDist = m_StartDistance; + } + + protected override void OnRedo() + { + WidgetManager.m_Instance.StencilAttractDist = m_EndDistance; + } + + public override bool Merge(BaseCommand other) + { + if (base.Merge(other)) { return true; } + if (m_Final) { return false; } + ModifyStencilAttractDistanceCommand distanceCommand = other as ModifyStencilAttractDistanceCommand; + if (distanceCommand == null) { return false; } + m_EndDistance = distanceCommand.m_EndDistance; + m_Final = distanceCommand.m_Final; + return true; + } + } +} // namespace TiltBrush diff --git a/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs.meta b/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs.meta new file mode 100644 index 0000000000..5c750e710a --- /dev/null +++ b/Assets/Scripts/Commands/ModifyStencilAttractDistanceCommand.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 323e467e51a04cf2ad8c0645b5574710 +timeCreated: 1627927157 \ No newline at end of file diff --git a/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs b/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs new file mode 100644 index 0000000000..1e0091dd90 --- /dev/null +++ b/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs @@ -0,0 +1,83 @@ +// Copyright 2021 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; +using System; + +namespace TiltBrush +{ + public class StencilAttractDistanceSlider : BaseSlider + { + [SerializeField] private float m_MinAttractDistance = 0.25f; + [SerializeField] private float m_MaxAttractDistance = 2f; + + void OnEnable() + { + App.Switchboard.StencilAttractDistChanged += OnStencilAttractDistChanged; + OnStencilAttractDistChanged(); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + App.Switchboard.StencilAttractDistChanged -= OnStencilAttractDistChanged; + } + + public override void UpdateValue(float value) + { + base.UpdateValue(value); + SetSliderPositionToReflectValue(); + + SetDescriptionText(m_DescriptionText, $"{value * 100:0}%"); + } + + // If some other logic (not the slider) changes the value, we + // will be notified here so that we can update the slider visuals + private void OnStencilAttractDistChanged() + { + if (WidgetManager.m_Instance != null) + { + float value = WidgetManager.m_Instance.StencilAttractDist; + float range = m_MaxAttractDistance - m_MinAttractDistance; + float newSliderValue = (value - m_MinAttractDistance) / range; + UpdateValue(newSliderValue); + } + } + + public override void ButtonReleased() + { + base.ButtonReleased(); + EndModifyCommand(); + } + + public override void ResetState() + { + if (m_HadButtonPress) + { + EndModifyCommand(); + } + base.ResetState(); + } + + void EndModifyCommand() + { + float percent = GetCurrentValue(); + float displacement = m_MaxAttractDistance - m_MinAttractDistance; + float newDistance = m_MinAttractDistance + percent * displacement; + + SketchMemoryScript.m_Instance.PerformAndRecordCommand( + new ModifyStencilAttractDistanceCommand(newDistance, true)); + } + } +} // namespace TiltBrush diff --git a/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs.meta b/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs.meta new file mode 100644 index 0000000000..226e1b814f --- /dev/null +++ b/Assets/Scripts/GUI/StencilAttractDistanceSlider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83564bfff5bdd8a4eb20117ce11dff66 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Switchboard.cs b/Assets/Scripts/Switchboard.cs index 5c8831f83e..a5795b23a4 100644 --- a/Assets/Scripts/Switchboard.cs +++ b/Assets/Scripts/Switchboard.cs @@ -22,6 +22,7 @@ public class Switchboard public event Action MirrorVisibilityChanged; public event Action PanelDismissed; public event Action StencilModeChanged; + public event Action StencilAttractDistChanged; public event Action AudioReactiveStateChanged; public event Action MemoryExceededChanged; public event Action MemoryWarningAcceptedChanged; @@ -64,6 +65,11 @@ public void TriggerStencilModeChanged() StencilModeChanged?.Invoke(); } + public void TriggerStencilAttractDistChanged() + { + StencilAttractDistChanged?.Invoke(); + } + public void TriggerAudioReactiveStateChanged() { AudioReactiveStateChanged?.Invoke(); diff --git a/Assets/Scripts/WidgetManager.cs b/Assets/Scripts/WidgetManager.cs index 1da0d66485..bcf03e2238 100644 --- a/Assets/Scripts/WidgetManager.cs +++ b/Assets/Scripts/WidgetManager.cs @@ -206,6 +206,16 @@ public LayerMask StencilLayerMask get { return LayerMask.GetMask(m_StencilLayerName); } } + public float StencilAttractDist + { + get => m_StencilAttractDist; + set + { + m_StencilAttractDist = value; + App.Switchboard.TriggerStencilAttractDistChanged(); + } + } + public List WidgetsNearBrush { get { return m_WidgetsNearBrush; } @@ -857,7 +867,7 @@ public void MagnetizeToStencils(ref Vector3 pos, ref Quaternion rot) Collider collider = stencil.m_WidgetScript.GrabCollider; float centerDist = (collider.bounds.center - samplePos).sqrMagnitude; if (centerDist > - (m_StencilAttractDist * m_StencilAttractDist + collider.bounds.extents.sqrMagnitude)) + (StencilAttractDist * StencilAttractDist + collider.bounds.extents.sqrMagnitude)) { continue; } @@ -867,7 +877,7 @@ public void MagnetizeToStencils(ref Vector3 pos, ref Quaternion rot) // Find out how far we are from this point and save it as a score. float distToSurfactPoint = (m_StencilContactInfos[sIndex].pos - samplePos).magnitude; - float score = 1.0f - (distToSurfactPoint / m_StencilAttractDist); + float score = 1.0f - (distToSurfactPoint / StencilAttractDist); if (score > fBestScore) { iPrimaryIndex = sIndex;