From fdd91f7c52dfae868b136c75b4f4d0decdd083d7 Mon Sep 17 00:00:00 2001 From: Andy Baker Date: Sat, 1 Apr 2023 14:49:33 +0100 Subject: [PATCH] Transform gizmos and bug fixes 1. Transform gizmos (mainly for debug at the moment) 2. Fix getting transforms from layers when scene has been transformed 3. WIP include widgets in canvas bounds 4. GetAllUnselectedActiveWidgets was ignoring non-main canvases 5. Add method for GetLayerByIndex [CI BUILD] --- Assets/Materials/BoundsGhost.mat | 35 + Assets/Materials/BoundsGhost.mat.meta | 8 + Assets/Prefabs/CanvasTransformPrefab.prefab | 1359 +++++++++++++++++ .../Prefabs/CanvasTransformPrefab.prefab.meta | 7 + Assets/Prefabs/TranslationAxisGizmo.prefab | 285 ++++ .../Prefabs/TranslationAxisGizmo.prefab.meta | 7 + Assets/Scenes/Main.unity | 5 +- .../API/Lua/Wrappers/OpenBrushAppWrappers.cs | 41 +- Assets/Scripts/CanvasScript.cs | 62 +- Assets/Scripts/CanvasTransformGizmo.cs | 45 + Assets/Scripts/CanvasTransformGizmo.cs.meta | 11 + Assets/Scripts/SceneScript.cs | 19 + Assets/Scripts/WidgetManager.cs | 14 +- Assets/Scripts/Widgets/GrabWidget.cs | 24 + 14 files changed, 1894 insertions(+), 28 deletions(-) create mode 100644 Assets/Materials/BoundsGhost.mat create mode 100644 Assets/Materials/BoundsGhost.mat.meta create mode 100644 Assets/Prefabs/CanvasTransformPrefab.prefab create mode 100644 Assets/Prefabs/CanvasTransformPrefab.prefab.meta create mode 100644 Assets/Prefabs/TranslationAxisGizmo.prefab create mode 100644 Assets/Prefabs/TranslationAxisGizmo.prefab.meta create mode 100644 Assets/Scripts/CanvasTransformGizmo.cs create mode 100644 Assets/Scripts/CanvasTransformGizmo.cs.meta diff --git a/Assets/Materials/BoundsGhost.mat b/Assets/Materials/BoundsGhost.mat new file mode 100644 index 0000000000..c96d169076 --- /dev/null +++ b/Assets/Materials/BoundsGhost.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BoundsGhost + m_Shader: {fileID: 4800000, guid: 9f2e62d534247cc4183f14aa0d7a810b, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: c7a663eacfb5db7488d34ffe9c07736b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Intensity: 1 + - _OutlineWidth: 0.02 + m_Colors: + - _Color: {r: 0.31132078, g: 0.29565683, b: 0.29565683, a: 1} + - _PulseColor: {r: 1, g: 1, b: 1, a: 1} + - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/BoundsGhost.mat.meta b/Assets/Materials/BoundsGhost.mat.meta new file mode 100644 index 0000000000..76136a1356 --- /dev/null +++ b/Assets/Materials/BoundsGhost.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c49deb473777ca7469e43bc791aa4da8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/CanvasTransformPrefab.prefab b/Assets/Prefabs/CanvasTransformPrefab.prefab new file mode 100644 index 0000000000..7d167ccd34 --- /dev/null +++ b/Assets/Prefabs/CanvasTransformPrefab.prefab @@ -0,0 +1,1359 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &342221202440401067 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 342221202440760459} + m_Layer: 0 + m_Name: Translation Gizmo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &342221202440760459 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 342221202440401067} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3281319212657035744} + - {fileID: 2144174280643775429} + - {fileID: 2805616396807955978} + m_Father: {fileID: 3644847496883318441} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3644847496883318437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3644847496883318441} + - component: {fileID: 7169007076560010293} + m_Layer: 0 + m_Name: CanvasTransformPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3644847496883318441 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3644847496883318437} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8130878385308699160} + - {fileID: 342221202440760459} + - {fileID: 2993349352741478836} + - {fileID: 2417705963213796695} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7169007076560010293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3644847496883318437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 43356aba113d6ed4a8c3048a8e7b3f1d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AxesColors: + - {r: 0.78431374, g: 0.29411766, b: 0.29411766, a: 0} + - {r: 0.29411766, g: 0.78431374, b: 0.29411766, a: 0} + - {r: 0.29411766, g: 0.29411766, b: 0.78431374, a: 0} + m_TranslationAxes: + - {fileID: 2788007039815378558} + - {fileID: 1655293813761025115} + - {fileID: 3303081287770851732} + m_RotationAxes: + - {fileID: 665277398300324610} + - {fileID: 7373620248263218477} + - {fileID: 6202329649780594022} + m_ScaleAxes: + - {fileID: 5087227553455651616} + - {fileID: 499304759808543758} + - {fileID: 7936669589486479852} + - {fileID: 2211768309312949730} + TranslationGizmo: {fileID: 342221202440760459} + RotationGizmo: {fileID: 2993349352741478836} + ScaleGizmo: {fileID: 2417705963213796695} + BoundsGhost: {fileID: 8130878385308699160} +--- !u!1 &4594249103751736317 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2417705963213796695} + m_Layer: 0 + m_Name: Scale Gizmo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2417705963213796695 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4594249103751736317} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5593502968392455358} + - {fileID: 996571884711666576} + - {fileID: 7286222906941572722} + - {fileID: 1551679594921009788} + m_Father: {fileID: 3644847496883318441} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5187741151462484702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2993349352741478836} + m_Layer: 0 + m_Name: RotationGizmo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2993349352741478836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5187741151462484702} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 665277398300684066} + - {fileID: 7373620248263313677} + - {fileID: 6202329649780623686} + m_Father: {fileID: 3644847496883318441} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6522511828434440643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8130878385308699160} + - component: {fileID: 1346428308195943094} + - component: {fileID: 7235526064812817601} + - component: {fileID: 3544951512850476828} + m_Layer: 0 + m_Name: Bounds Ghost + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8130878385308699160 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6522511828434440643} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3644847496883318441} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1346428308195943094 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6522511828434440643} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7235526064812817601 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6522511828434440643} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c49deb473777ca7469e43bc791aa4da8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3544951512850476828 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6522511828434440643} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &665277398300292514 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2993349352741478836} + m_Modifications: + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Name + value: RX + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, type: 2} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - target: {fileID: 3300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 43128847356581602, guid: eb32a73de999860498953bf6c8960982, + type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} +--- !u!1 &665277398300324610 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 665277398300292514} + m_PrefabAsset: {fileID: 0} +--- !u!4 &665277398300684066 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 665277398300292514} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1455684188253317689 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2417705963213796695} + m_Modifications: + - target: {fileID: 1582633104988386475, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104989284523, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242487797810, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242491020338, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: SX + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!1 &5087227553455651616 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 1455684188253317689} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5593502968392455358 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 1455684188253317689} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4363532290585590005 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2417705963213796695} + m_Modifications: + - target: {fileID: 1582633104988386475, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104989284523, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242487797810, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242491020338, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: SZ + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!4 &7286222906941572722 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 4363532290585590005} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7936669589486479852 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 4363532290585590005} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4923031956726281538 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 342221202440760459} + m_Modifications: + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: TY + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!1 &1655293813761025115 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 4923031956726281538} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2144174280643775429 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 4923031956726281538} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5483994564456930555 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2417705963213796695} + m_Modifications: + - target: {fileID: 1582633104988386475, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1582633104989284523, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242487797810, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242491020338, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 4043587242491020338, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: SU + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8117169264225060810, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!4 &1551679594921009788 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 5483994564456930555} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2211768309312949730 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 5483994564456930555} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6072880380006669591 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2417705963213796695} + m_Modifications: + - target: {fileID: 1582633104988386475, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104988481675, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1582633104989284523, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242487797810, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - target: {fileID: 4043587242491020338, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4043587242491189266, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalScale.z + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: SY + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!1 &499304759808543758 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 6072880380006669591} + m_PrefabAsset: {fileID: 0} +--- !u!4 &996571884711666576 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 6072880380006669591} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6202329649780495302 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2993349352741478836} + m_Modifications: + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Name + value: RZ + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, type: 2} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - target: {fileID: 3300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 43128847356581602, guid: eb32a73de999860498953bf6c8960982, + type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} +--- !u!1 &6202329649780594022 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 6202329649780495302} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6202329649780623686 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 6202329649780495302} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7373620248263185293 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2993349352741478836} + m_Modifications: + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Name + value: RY + objectReference: {fileID: 0} + - target: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, type: 2} + - target: {fileID: 2300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - target: {fileID: 3300006, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 43128847356581602, guid: eb32a73de999860498953bf6c8960982, + type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 535a5aa7349085e42b210f7d2bdbe548, type: 3} +--- !u!1 &7373620248263218477 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 100000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 7373620248263185293} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7373620248263313677 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400000, guid: 535a5aa7349085e42b210f7d2bdbe548, + type: 3} + m_PrefabInstance: {fileID: 7373620248263185293} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8366045637968115559 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 342221202440760459} + m_Modifications: + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: TX + objectReference: {fileID: 0} + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!1 &2788007039815378558 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 8366045637968115559} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3281319212657035744 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 8366045637968115559} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9186271634412148877 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 342221202440760459} + m_Modifications: + - target: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_Name + value: TZ + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7a70c36311ab6aa45a08b5a5d3272adc, type: 3} +--- !u!4 &2805616396807955978 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6454709806771863175, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 9186271634412148877} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3303081287770851732 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5956810467114504473, guid: 7a70c36311ab6aa45a08b5a5d3272adc, + type: 3} + m_PrefabInstance: {fileID: 9186271634412148877} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/CanvasTransformPrefab.prefab.meta b/Assets/Prefabs/CanvasTransformPrefab.prefab.meta new file mode 100644 index 0000000000..adc056f758 --- /dev/null +++ b/Assets/Prefabs/CanvasTransformPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 546467450645e1140902522a7f7baf56 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/TranslationAxisGizmo.prefab b/Assets/Prefabs/TranslationAxisGizmo.prefab new file mode 100644 index 0000000000..9b2cdd6c38 --- /dev/null +++ b/Assets/Prefabs/TranslationAxisGizmo.prefab @@ -0,0 +1,285 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5956810467114504473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6454709806771863175} + m_Layer: 0 + m_Name: TranslationAxisGizmo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6454709806771863175 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5956810467114504473} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8117169264225229802} + - {fileID: 4043587242491189266} + - {fileID: 1582633104988481675} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8117169264225060810 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8117169264225229802} + - component: {fileID: 8117169264226032586} + - component: {fileID: 8117169264226998538} + m_Layer: 0 + m_Name: Rod + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8117169264225229802 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8117169264225060810} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.0125, z: 0.0125} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6454709806771863175} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8117169264226032586 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8117169264225060810} + m_Mesh: {fileID: 4300000, guid: 5ef960ddf11c1fd4983638f56f6a8be0, type: 3} +--- !u!23 &8117169264226998538 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8117169264225060810} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &1582633104988353035 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6454709806771863175} + m_Modifications: + - target: {fileID: 100000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_Name + value: Cone + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.x + value: 0.050000004 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.y + value: 0.10000001 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.z + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.x + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2300000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} +--- !u!4 &1582633104988481675 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, + type: 3} + m_PrefabInstance: {fileID: 1582633104988353035} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4043587242491052690 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6454709806771863175} + m_Modifications: + - target: {fileID: 100000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_Name + value: Cone + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.x + value: 0.050000004 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.y + value: 0.10000001 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalScale.z + value: 0.05 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalRotation.z + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2300000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 32562375f01c8c845a494d700c4ef48d, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 37df52d344e450048b391c2c86ea76c6, type: 3} +--- !u!4 &4043587242491189266 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400000, guid: 37df52d344e450048b391c2c86ea76c6, + type: 3} + m_PrefabInstance: {fileID: 4043587242491052690} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/TranslationAxisGizmo.prefab.meta b/Assets/Prefabs/TranslationAxisGizmo.prefab.meta new file mode 100644 index 0000000000..0846edf552 --- /dev/null +++ b/Assets/Prefabs/TranslationAxisGizmo.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7a70c36311ab6aa45a08b5a5d3272adc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 35ae78cac6..c6a0de7a99 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -17579,6 +17579,8 @@ MonoBehaviour: m_EditorClassIdentifier: m_MainCanvas: {fileID: 1843608206} m_SelectionCanvas: {fileID: 1830711221} + m_CanvasTransformPrefab: {fileID: 3644847496883318441, guid: 546467450645e1140902522a7f7baf56, + type: 3} --- !u!1 &1372392204 GameObject: m_ObjectHideFlags: 0 @@ -18260,7 +18262,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ffad114bb615d7c48879446723017243, type: 3} m_Name: m_EditorClassIdentifier: - m_GvrOverlayPrefab: {fileID: 0} m_VrSystem: {fileID: 17776372} m_UnityXRUninitializedControlsPrefab: {fileID: 1585114503440396, guid: dcbeb61cc5ebbbb4d9727e864c5c03d5, type: 3} @@ -18276,6 +18277,8 @@ MonoBehaviour: type: 3} m_UnityXRCosmosControlsPrefab: {fileID: 1268974758188984, guid: 85fc13e5ae2f36048a146dc67041a295, type: 3} + m_UnityXRNeo3ControlsPrefab: {fileID: 0} + m_UnityXRPhoenixControlsPrefab: {fileID: 0} m_OculusRiftControlsPrefab: {fileID: 2302704768686387309, guid: 6fb051841cd1bcb4dbc6c246b98d97c8, type: 3} m_OculusQuestControlsPrefab: {fileID: 2302704768686387309, guid: 6fb051841cd1bcb4dbc6c246b98d97c8, diff --git a/Assets/Scripts/API/Lua/Wrappers/OpenBrushAppWrappers.cs b/Assets/Scripts/API/Lua/Wrappers/OpenBrushAppWrappers.cs index f1a587eb49..b8bc0695a2 100644 --- a/Assets/Scripts/API/Lua/Wrappers/OpenBrushAppWrappers.cs +++ b/Assets/Scripts/API/Lua/Wrappers/OpenBrushAppWrappers.cs @@ -280,20 +280,20 @@ public static Quaternion rotation public static class LayerApiWrapper { public static int getActive => App.Scene.LayerCanvases.ToList().IndexOf(App.Scene.ActiveCanvas); - public static Vector3 getPosition(int index) => App.Scene.LayerCanvases.ToList()[index].Pose.translation; + public static Vector3 getPosition(int index) => (App.Scene.Pose.inverse * App.Scene.GetLayerByIndex(index).Pose).translation; public static void setPosition(int index, Vector3 position) { - var layer = App.Scene.LayerCanvases.ToList()[index]; + var layer = App.Scene.GetLayerByIndex(index); var tr = layer.Pose; var newTransform = TrTransform.T(position); newTransform = App.Scene.Pose * newTransform; tr.translation = newTransform.translation; layer.Pose = tr; } - public static Quaternion getRotation(int index) => App.Scene.LayerCanvases.ToList()[index].Pose.rotation; + public static Quaternion getRotation(int index) => (App.Scene.Pose.inverse * App.Scene.GetLayerByIndex(index).Pose).rotation; public static void setRotation(int index, Quaternion rotation) { - var layer = App.Scene.LayerCanvases.ToList()[index]; + var layer = App.Scene.GetLayerByIndex(index); var tr = layer.Pose; var newTransform = TrTransform.R(rotation); newTransform = App.Scene.Pose * newTransform; @@ -303,27 +303,24 @@ public static void setRotation(int index, Quaternion rotation) public static void centerPivot(int index) { - var layer = App.Scene.LayerCanvases.ToList()[index]; - var pose_WS = layer.Pose; + App.Scene.GetLayerByIndex(index).CenterPivot(); + } - var bounds_CS = layer.GetCanvasBoundingBox(true); - var center_WS = bounds_CS.center + pose_WS.translation; - var offset = pose_WS.translation - center_WS; - pose_WS.translation -= offset; - layer.Pose = pose_WS; + public static void showPivot(int index) + { + App.Scene.GetLayerByIndex(index).ShowGizmo(); + } - var strokes = SketchMemoryScript.m_Instance.GetAllUnselectedActiveStrokes(layer); - foreach (var stroke in strokes) - { - stroke.Recreate(TrTransform.T(offset)); - } + public static void hidePivot(int index) + { + App.Scene.GetLayerByIndex(index).HideGizmo(); } - public static TrTransform getTransform(int index) => App.Scene.LayerCanvases.ToList()[index].Pose; + public static TrTransform getTransform(int index) => App.Scene.Pose.inverse * App.Scene.GetLayerByIndex(index).Pose; public static void setTransform(int index, TrTransform newTransform) { newTransform = App.Scene.Pose * newTransform; - App.Scene.LayerCanvases.ToList()[index].Pose = newTransform; + App.Scene.GetLayerByIndex(index).Pose = newTransform; } public static void add() => ApiMethods.AddLayer(); public static void clear(int index) => ApiMethods.ClearLayer(index); @@ -342,9 +339,9 @@ public static class ImageApiWrapper public static void import(string location) => ApiMethods.ImportImage(location); public static void select(int index) => ApiMethods.SelectImage(index); public static void moveTo(int index, Vector3 position) => ApiMethods.PositionImage(index, position); - public static TrTransform getTransform(int index) => App.Scene.LayerCanvases.ToList()[index].Pose; - public static Vector3 getPosition(int index) => App.Scene.LayerCanvases.ToList()[index].Pose.translation; - public static Quaternion getRotation(int index) => App.Scene.LayerCanvases.ToList()[index].Pose.rotation; + public static TrTransform getTransform(int index) => App.Scene.GetLayerByIndex(index).Pose; + public static Vector3 getPosition(int index) => App.Scene.GetLayerByIndex(index).Pose.translation; + public static Quaternion getRotation(int index) => App.Scene.GetLayerByIndex(index).Pose.rotation; public static void setPosition(int index, Vector3 position) => Utils._Transform(ItemType.Image, index, TrTransform.T(position)); public static void setRotation(int index, Quaternion rotation) => Utils._Transform(ItemType.Image, index, TrTransform.R(rotation)); } @@ -354,7 +351,7 @@ public static class ModelApiWrapper { // public static void import() => ApiMethods.ImportModel(); public static void select(int index) => ApiMethods.SelectModel(index); - public static TrTransform getTransform(int index) => App.Scene.LayerCanvases.ToList()[index].Pose; + public static TrTransform getTransform(int index) => App.Scene.GetLayerByIndex(index).Pose; public static Vector3 getPosition(int index) => WidgetManager.m_Instance.ActiveModelWidgets[index].WidgetScript.transform.position; public static Vector3 getRotation(int index) => WidgetManager.m_Instance.ActiveModelWidgets[index].WidgetScript.transform.position; public static void setPosition(int index, Vector3 position) => Utils._Transform(ItemType.Model, index, TrTransform.T(position)); diff --git a/Assets/Scripts/CanvasScript.cs b/Assets/Scripts/CanvasScript.cs index a5b6ef5ac4..2e01844b1b 100644 --- a/Assets/Scripts/CanvasScript.cs +++ b/Assets/Scripts/CanvasScript.cs @@ -49,6 +49,8 @@ public static void UnitTestTearDown(GameObject container) private const float kScaleMax = 1e4f; private bool m_bInitialized; + private Transform m_CanvasTransformPrefab; + private CanvasTransformGizmo m_CanvasTransformGizmo; private BatchManager m_BatchManager; public event PoseChangedEventHandler PoseChanged; @@ -130,6 +132,9 @@ public void Init() { return; } + m_CanvasTransformPrefab = Instantiate(App.Scene.CanvasTransformPrefab, transform); + m_CanvasTransformGizmo = m_CanvasTransformPrefab.GetComponent(); + HideGizmo(); m_bInitialized = true; AsCanvas = new TransformExtensions.RelativeAccessor(transform); @@ -167,9 +172,20 @@ public void RegisterHighlight() } // Returns a bounds object that encompasses all strokes on the canvas. - public Bounds GetCanvasBoundingBox(bool onlyActive = false) + public Bounds GetCanvasBoundingBox(bool onlyActive = false, bool includeWidgets = false) { - return m_BatchManager.GetBoundsOfAllStrokes(onlyActive); + var bounds = m_BatchManager.GetBoundsOfAllStrokes(onlyActive); + + if (includeWidgets) + { + foreach (GrabWidget widget in WidgetManager.m_Instance.GetAllUnselectedActiveWidgets(this)) + { + if (widget.Canvas != this) continue; + Bounds widgetBounds_CS = widget.GetBounds(); + bounds.Encapsulate(widgetBounds_CS); + } + } + return bounds; } // Should only be called by friend classes (Coords, SceneScript) @@ -184,6 +200,48 @@ public void OnScenePoseChanged(TrTransform previousScene, TrTransform currentSce PoseChanged(previousScene * local, currentScene * local); } } + + private void UpdateBoundsGizmo() + { + var bounds_CS = GetCanvasBoundingBox(onlyActive: true, includeWidgets: true); + m_CanvasTransformGizmo.SetBoundsGhost(bounds_CS); + } + + public void ShowGizmo() + { + UpdateBoundsGizmo(); + m_CanvasTransformPrefab.gameObject.SetActive(true); + } + + public void HideGizmo() + { + m_CanvasTransformPrefab.gameObject.SetActive(false); + } + + public void CenterPivot() + { + var pose_WS = Pose; + var bounds_CS = GetCanvasBoundingBox(true); + var center_WS = bounds_CS.center + pose_WS.translation; + var offset = pose_WS.translation - center_WS; + pose_WS.translation -= offset; + Pose = pose_WS; + + // Reposition strokes + var strokes = SketchMemoryScript.m_Instance.GetAllUnselectedActiveStrokes(this); + foreach (var stroke in strokes) + { + stroke.Recreate(TrTransform.T(offset)); + } + + // Reposition widgets + foreach (GrabWidget widget in WidgetManager.m_Instance.GetAllUnselectedActiveWidgets(this)) + { + var tr = widget.LocalTransform; + tr.translation += offset; + widget.LocalTransform = tr; + } + } } } // namespace TiltBrush diff --git a/Assets/Scripts/CanvasTransformGizmo.cs b/Assets/Scripts/CanvasTransformGizmo.cs new file mode 100644 index 0000000000..1a0bf3279a --- /dev/null +++ b/Assets/Scripts/CanvasTransformGizmo.cs @@ -0,0 +1,45 @@ +using UnityEngine; + +public class CanvasTransformGizmo : MonoBehaviour +{ + public Color[] m_AxesColors; + + public GameObject[] m_TranslationAxes; + public GameObject[] m_RotationAxes; + public GameObject[] m_ScaleAxes; + + public Transform TranslationGizmo; + public Transform RotationGizmo; + public Transform ScaleGizmo; + + public Transform BoundsGhost; + + private void Awake() + { + SetAxisColors(); + } + + public void SetBoundsGhost(Bounds bounds_CS) + { + BoundsGhost.localScale = bounds_CS.size; + } + + public void SetAxisColors() + { + for (int i = 0; i < Mathf.Min(m_AxesColors.Length, m_AxesColors.Length); ++i) + { + foreach (var mr in m_TranslationAxes[i].GetComponentsInChildren()) + { + mr.material.SetColor("_Color", m_AxesColors[i]); + } + foreach (var mr in m_RotationAxes[i].GetComponentsInChildren()) + { + mr.material.SetColor("_Color", m_AxesColors[i]); + } + foreach (var mr in m_ScaleAxes[i].GetComponentsInChildren()) + { + mr.material.SetColor("_Color", m_AxesColors[i]); + } + } + } +} diff --git a/Assets/Scripts/CanvasTransformGizmo.cs.meta b/Assets/Scripts/CanvasTransformGizmo.cs.meta new file mode 100644 index 0000000000..25069562e1 --- /dev/null +++ b/Assets/Scripts/CanvasTransformGizmo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43356aba113d6ed4a8c3048a8e7b3f1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SceneScript.cs b/Assets/Scripts/SceneScript.cs index 4911f23dc2..bd5c147afd 100644 --- a/Assets/Scripts/SceneScript.cs +++ b/Assets/Scripts/SceneScript.cs @@ -17,6 +17,7 @@ using System.IO; using System.Linq; using UnityEngine; +using UnityEngine.Serialization; namespace TiltBrush { @@ -38,6 +39,7 @@ public class SceneScript : MonoBehaviour [SerializeField] private CanvasScript m_MainCanvas; [SerializeField] private CanvasScript m_SelectionCanvas; + [SerializeField] private Transform m_CanvasTransformPrefab; private bool m_bInitialized; private Light[] m_Lights; @@ -144,6 +146,7 @@ public CanvasScript ActiveCanvas /// The initial start-up canvas; guaranteed to always exist public CanvasScript MainCanvas { get { return m_MainCanvas; } } public CanvasScript SelectionCanvas { get { return m_SelectionCanvas; } } + public Transform CanvasTransformPrefab { get { return m_CanvasTransformPrefab; } } public IEnumerable AllCanvases { @@ -183,6 +186,22 @@ public IEnumerable LayerCanvases } } + public CanvasScript GetLayerByIndex(int index) + { + if (index == 0) return MainCanvas; + if (m_LayerCanvases != null) + { + int count = 1; + for (int i = 0; i < m_LayerCanvases.Count; ++i) + { + if (m_DeletedLayers.Contains(i)) continue; + if (count == index) return m_LayerCanvases[i]; + count++; + } + } + return null; + } + public void ResetLayers(bool notify = false) { if (m_LayerCanvases != null) diff --git a/Assets/Scripts/WidgetManager.cs b/Assets/Scripts/WidgetManager.cs index 1826c9f7a4..9bb89ae2ed 100644 --- a/Assets/Scripts/WidgetManager.cs +++ b/Assets/Scripts/WidgetManager.cs @@ -1013,7 +1013,8 @@ public IEnumerable ImageWidgets } } - public List GetAllUnselectedActiveWidgets() + // If canvas is null then return all widgets + public List GetAllUnselectedActiveWidgets(CanvasScript canvas = null) { List widgets = new List(); GetUnselectedActiveWidgetsInList(m_ModelWidgets); @@ -1030,9 +1031,16 @@ public List GetAllUnselectedActiveWidgets() for (int i = 0; i < list.Count; ++i) { GrabWidget w = list[i].m_WidgetScript; - if (!w.Pinned && w.transform.parent == App.Scene.MainCanvas.transform && - w.gameObject.activeSelf) + if (!w.Pinned && w.gameObject.activeSelf) { + if ( + // If canvas == null then get all unselected widgets + (canvas == null && w.transform.parent != App.Scene.SelectionCanvas.transform) || + + // Or else only on the specified canvas + w.transform.parent != canvas.transform + + ) continue; widgets.Add(w); } } diff --git a/Assets/Scripts/Widgets/GrabWidget.cs b/Assets/Scripts/Widgets/GrabWidget.cs index 3b93535eb9..3e927abdc6 100644 --- a/Assets/Scripts/Widgets/GrabWidget.cs +++ b/Assets/Scripts/Widgets/GrabWidget.cs @@ -397,6 +397,30 @@ public virtual Axis GetScaleAxis(Vector3 handA, Vector3 handB, out Vector3 axisD return Axis.Invalid; } + // Return the bounds + public virtual Bounds GetBounds() + { + if (m_BoxCollider != null) + { + TrTransform boxColliderToCanvasXf = TrTransform.FromTransform(m_BoxCollider.transform); + Bounds bounds = new Bounds(boxColliderToCanvasXf * m_BoxCollider.center, Vector3.zero); + + // Transform the corners of the widget bounds into canvas space and extend the total bounds + // to encapsulate them. + for (int i = 0; i < 8; i++) + { + bounds.Encapsulate(boxColliderToCanvasXf * (m_BoxCollider.center + Vector3.Scale( + m_BoxCollider.size, + new Vector3((i & 1) == 0 ? -0.5f : 0.5f, + (i & 2) == 0 ? -0.5f : 0.5f, + (i & 4) == 0 ? -0.5f : 0.5f)))); + } + + return bounds; + } + return new Bounds(); + } + // Return the bounds in selection canvas space. public virtual Bounds GetBounds_SelectionCanvasSpace() {