From b12afe2ddca0a2cc128ebdcf4572424439e95db0 Mon Sep 17 00:00:00 2001 From: MaZiFAU <63099053+MaZiFAU@users.noreply.github.com> Date: Thu, 29 Jun 2023 02:35:53 +0200 Subject: [PATCH] Bug Fixes; Prtially new Naming method for FactPrefabs; Prtially new Naming method for FactPrefabs: +using new logic in FactOrganizer Bug Fixes: +FactObject and Circlecollider not the same; +missing behaviour (deleted) +Z-fighting for CircleFact +Annoying Warnings and Errors --- Assets/Resources/Prefabs/Facts/Angle.prefab | 61 +++++++- Assets/Resources/Prefabs/Facts/Circle.prefab | 55 +++++-- Assets/Resources/Prefabs/Facts/Line.prefab | 69 +++++---- Assets/Resources/Prefabs/Facts/Point.prefab | 31 +++- Assets/Resources/Prefabs/Facts/Ray.prefab | 31 +++- Assets/Resources/Prefabs/Facts/Ring.prefab | 31 +++- Assets/Resources/Prefabs/Stage_Default.prefab | 2 +- .../UI/Icons/FactIcons/DisplayTestFact.prefab | 144 +++++++++++++++++- .../Prefabs/UI/Icons/GadgetButton.prefab | 35 ++++- .../FactHandling/FactObject.cs | 81 +++++++--- .../FactHandling/FactSpawner.cs | 23 ++- .../FactHandling/Facts/FunctionFact.cs | 6 +- .../Scripts/InteractionEngine/ShinyThings.cs | 4 +- .../TBD/AttachedPositionFunctionBehaviour.cs | 23 ++- Assets/Scripts/InventoryStuff/DropHandling.cs | 2 +- Assets/Scripts/MeshGenerator/ConeGenerator.cs | 3 + .../Scripts/MeshGenerator/TorusGenerator.cs | 3 + Assets/Scripts/SoundManager.cs | 23 ++- .../Extensions/GameObjectExtensions.cs | 3 + UserSettings/EditorUserSettings.asset | 4 +- 20 files changed, 509 insertions(+), 125 deletions(-) diff --git a/Assets/Resources/Prefabs/Facts/Angle.prefab b/Assets/Resources/Prefabs/Facts/Angle.prefab index 97ed6895..8d1a7343 100644 --- a/Assets/Resources/Prefabs/Facts/Angle.prefab +++ b/Assets/Resources/Prefabs/Facts/Angle.prefab @@ -299,15 +299,14 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} + FactText: + - {fileID: 3527746868028771423} + - {fileID: 6234540560952625969} + StringLabelFormats: + - '{0}' + - '{0}' renderer: - {fileID: 3394522495515098202} - cascade: [] Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} @@ -325,6 +324,7 @@ GameObject: - component: {fileID: 3394522496185282005} - component: {fileID: 3394522496185282006} - component: {fileID: 3394522496185282007} + - component: {fileID: 8694869230573919100} m_Layer: 12 m_Name: AngleInner m_TagString: Selectable @@ -427,6 +427,29 @@ MonoBehaviour: m_EditorClassIdentifier: radius: 0.95 height: 0.01 +--- !u!114 &8694869230573919100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3394522496185282000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: + - {fileID: 3527746868028771423} + - {fileID: 6234540560952625969} + StringLabelFormats: + - '{0}' + - '{0}' + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &7144232170300037021 GameObject: m_ObjectHideFlags: 0 @@ -436,6 +459,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5781467132517744785} + - component: {fileID: 8440018597956601917} m_Layer: 12 m_Name: Angle m_TagString: Selectable @@ -459,6 +483,29 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8440018597956601917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7144232170300037021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: + - {fileID: 3527746868028771423} + - {fileID: 6234540560952625969} + StringLabelFormats: + - '{0}' + - '{0}' + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &8247887023038618208 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/Facts/Circle.prefab b/Assets/Resources/Prefabs/Facts/Circle.prefab index dffff6e9..f58a40eb 100644 --- a/Assets/Resources/Prefabs/Facts/Circle.prefab +++ b/Assets/Resources/Prefabs/Facts/Circle.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 1312883106029576503} - component: {fileID: 5284903402926663935} - component: {fileID: 2574848627300415222} + - component: {fileID: 7280041197286401157} m_Layer: 15 m_Name: Mesh Down m_TagString: SnapZone @@ -27,7 +28,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3319392661904935552} m_LocalRotation: {x: 1, y: 0, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: -0.01, z: 0} m_LocalScale: {x: 1, y: 0.01, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -99,6 +100,25 @@ MeshCollider: m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 0} +--- !u!114 &7280041197286401157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3319392661904935552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: [] + StringLabelFormats: [] + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &4682201382595328041 GameObject: m_ObjectHideFlags: 0 @@ -116,7 +136,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &6787775389045427190 Transform: m_ObjectHideFlags: 0 @@ -277,6 +297,7 @@ GameObject: - component: {fileID: 7167210412035754299} - component: {fileID: 1078883255209641429} - component: {fileID: 8526453253978894086} + - component: {fileID: -7239156242830623982} m_Layer: 15 m_Name: Mesh Up m_TagString: SnapZone @@ -292,7 +313,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6262947649539239553} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0.01, z: 0} m_LocalScale: {x: 1, y: 0.01, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -364,6 +385,25 @@ MeshCollider: m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 0} +--- !u!114 &-7239156242830623982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6262947649539239553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: [] + StringLabelFormats: [] + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &6839596689016440457 GameObject: m_ObjectHideFlags: 0 @@ -430,15 +470,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} + FactText: [] + StringLabelFormats: [] renderer: - {fileID: 1078883255209641429} - cascade: [] Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} diff --git a/Assets/Resources/Prefabs/Facts/Line.prefab b/Assets/Resources/Prefabs/Facts/Line.prefab index 97d90b5c..9da29198 100644 --- a/Assets/Resources/Prefabs/Facts/Line.prefab +++ b/Assets/Resources/Prefabs/Facts/Line.prefab @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5818562496562931847} + - component: {fileID: 2028494018615604281} m_Layer: 11 m_Name: Line m_TagString: Selectable @@ -33,6 +34,27 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2028494018615604281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2317807655120713368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: + - {fileID: 1723009895384754658} + StringLabelFormats: + - '{0}' + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &4853696702160906218 GameObject: m_ObjectHideFlags: 0 @@ -348,9 +370,9 @@ GameObject: - component: {fileID: 3517099398133763913} - component: {fileID: 6398251481098695290} - component: {fileID: 6015977261426572496} - - component: {fileID: 9069160241511124499} - component: {fileID: 6179051021116985022} - component: {fileID: 9072308735336053453} + - component: {fileID: 184519196497952346} m_Layer: 11 m_Name: LineOuter m_TagString: SnapZone @@ -423,31 +445,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &9069160241511124499 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6378548342073962023} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} - m_Name: - m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} - renderer: - - {fileID: 6015977261426572496} - cascade: [] - Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} --- !u!65 &6179051021116985022 BoxCollider: m_ObjectHideFlags: 0 @@ -481,6 +478,26 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &184519196497952346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6378548342073962023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: [] + StringLabelFormats: [] + renderer: + - {fileID: 6015977261426572496} + Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} + Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} + Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} + Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} --- !u!1 &6754103560634016048 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/Facts/Point.prefab b/Assets/Resources/Prefabs/Facts/Point.prefab index 2e66ce01..9ea49bf4 100644 --- a/Assets/Resources/Prefabs/Facts/Point.prefab +++ b/Assets/Resources/Prefabs/Facts/Point.prefab @@ -115,15 +115,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} + FactText: + - {fileID: 4028707725789292921} + StringLabelFormats: + - '{0}' renderer: - {fileID: 1075046474335495899} - cascade: [] Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} @@ -339,6 +336,7 @@ GameObject: m_Component: - component: {fileID: 1897634834899172406} - component: {fileID: 2282314938058693146} + - component: {fileID: -1711701745619400267} m_Layer: 10 m_Name: SnapSphere m_TagString: SnapZone @@ -374,6 +372,25 @@ SphereCollider: serializedVersion: 2 m_Radius: 0.5 m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &-1711701745619400267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3501726312507320707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: [] + StringLabelFormats: [] + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &7522635739010457072 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/Facts/Ray.prefab b/Assets/Resources/Prefabs/Facts/Ray.prefab index 7362fd75..e1d3fca6 100644 --- a/Assets/Resources/Prefabs/Facts/Ray.prefab +++ b/Assets/Resources/Prefabs/Facts/Ray.prefab @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5818562496562931847} + - component: {fileID: 4167478318603126375} m_Layer: 13 m_Name: Ray m_TagString: Selectable @@ -33,6 +34,27 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4167478318603126375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2317807655120713368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: + - {fileID: 1723009895384754658} + StringLabelFormats: + - '{0}' + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &2715767601543569183 GameObject: m_ObjectHideFlags: 0 @@ -435,15 +457,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} + FactText: [] + StringLabelFormats: [] renderer: - {fileID: 6015977261426572496} - cascade: [] Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} diff --git a/Assets/Resources/Prefabs/Facts/Ring.prefab b/Assets/Resources/Prefabs/Facts/Ring.prefab index a6109248..12e90109 100644 --- a/Assets/Resources/Prefabs/Facts/Ring.prefab +++ b/Assets/Resources/Prefabs/Facts/Ring.prefab @@ -288,15 +288,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - URI: - materials: - - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} - - {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} - - {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} - - {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2} + FactText: [] + StringLabelFormats: [] renderer: - {fileID: 4181090182545414655} - cascade: [] Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2} Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2} Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2} @@ -446,6 +441,7 @@ GameObject: m_Component: - component: {fileID: 2014127074789226423} - component: {fileID: 2449733549921447938} + - component: {fileID: 3963086670126537751} m_Layer: 14 m_Name: Ring m_TagString: Selectable @@ -487,6 +483,27 @@ MonoBehaviour: ringSegmentCount: 50 segmentSideCount: 30 torusMesh: {fileID: 6307794999199274257} +--- !u!114 &3963086670126537751 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7644263571880024739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} + m_Name: + m_EditorClassIdentifier: + FactText: + - {fileID: 1254072669719294581} + StringLabelFormats: + - '{0}' + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} --- !u!1 &8117705180640636930 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/Stage_Default.prefab b/Assets/Resources/Prefabs/Stage_Default.prefab index 4172763d..81d29468 100644 --- a/Assets/Resources/Prefabs/Stage_Default.prefab +++ b/Assets/Resources/Prefabs/Stage_Default.prefab @@ -2246,7 +2246,7 @@ PrefabInstance: - target: {fileID: 861183262417667852, guid: b996060e27da25c498842defc1996d84, type: 3} propertyPath: m_Value - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 861183262417667854, guid: b996060e27da25c498842defc1996d84, type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab index 884c0b8c..3a97fdcb 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab @@ -35,7 +35,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 5306809593801141744} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -132,8 +133,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - FactText: [] - StringLabelFormats: [] + FactText: + - {fileID: 6086025492030478819} + StringLabelFormats: + - '{0}' renderer: [] Default: {fileID: 0} Selected: {fileID: 0} @@ -167,3 +170,138 @@ MonoBehaviour: m_EditorClassIdentifier: favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, type: 3} +--- !u!1 &6391605716120646375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5306809593801141744} + - component: {fileID: 4435419560705582795} + - component: {fileID: 6086025492030478819} + m_Layer: 5 + m_Name: point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5306809593801141744 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6391605716120646375} + 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: 6755804354927699367} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -25} + m_SizeDelta: {x: 100, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4435419560705582795 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6391605716120646375} + m_CullTransparentMesh: 0 +--- !u!114 &6086025492030478819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6391605716120646375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Resources/Prefabs/UI/Icons/GadgetButton.prefab b/Assets/Resources/Prefabs/UI/Icons/GadgetButton.prefab index 502f249b..e108a5f1 100644 --- a/Assets/Resources/Prefabs/UI/Icons/GadgetButton.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/GadgetButton.prefab @@ -12,8 +12,9 @@ GameObject: - component: {fileID: 4469453702329312233} - component: {fileID: 565795937736748943} - component: {fileID: 6315983451093957514} - - component: {fileID: 6972799681139387453} - component: {fileID: 1550777745310495707} + - component: {fileID: 6845160251704569511} + - component: {fileID: 8946782148301631239} m_Layer: 5 m_Name: GadgetButton m_TagString: Untagged @@ -123,7 +124,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!114 &6972799681139387453 +--- !u!114 &1550777745310495707 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -132,10 +133,12 @@ MonoBehaviour: m_GameObject: {fileID: 5345241908758045532} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ed0bcd3d8d9996d4f86c0a2b8b71c6bf, type: 3} + m_Script: {fileID: 11500000, guid: a1ed516d861fa2c45a2b1767d1217acb, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &1550777745310495707 + factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, + type: 3} +--- !u!114 &6845160251704569511 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -144,8 +147,26 @@ MonoBehaviour: m_GameObject: {fileID: 5345241908758045532} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a1ed516d861fa2c45a2b1767d1217acb, type: 3} + m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3} m_Name: m_EditorClassIdentifier: - factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, - type: 3} + FactText: [] + StringLabelFormats: [] + renderer: [] + Default: {fileID: 0} + Selected: {fileID: 0} + Hint: {fileID: 0} + Solution: {fileID: 0} +--- !u!114 &8946782148301631239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5345241908758045532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3} + m_Name: + m_EditorClassIdentifier: + dragged: 0 diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactObject.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactObject.cs index 63cdc1a8..021eee07 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/FactObject.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/FactObject.cs @@ -4,11 +4,12 @@ using UnityEngine; using System.Collections; using TMPro; +using UnityEditor; /// <summary> /// <see cref="Fact.Id"/>/ <c>MonoBehaviour</c> wrapper to be attached to <see cref="Fact.Representation"/> /// </summary> -[DisallowMultipleComponent] +//[DisallowMultipleComponent] public class FactObject : MonoBehaviour, ISerializationCallbackReceiver { /// <summary> @@ -21,7 +22,7 @@ public string URI { _Fact = null; _URI = value; - ReLabel(); + FactUpdated(); } } private string _URI; @@ -40,7 +41,7 @@ public Fact Fact { _Fact = value; _URI = value.Id; - ReLabel(); + FactUpdated(); } } private Fact _Fact; @@ -54,14 +55,14 @@ public enum FactMaterials } - [SerializeField] private List<TextMeshProUGUI> FactText; - [SerializeField] private List<string> StringLabelFormats; + [SerializeField] protected List<TMP_Text> FactText; + [SerializeField] protected List<string> StringLabelFormats; [NonSerialized] public Material[] materials; public new Renderer[] renderer; [NonSerialized] - private List<FactObject> cascade; + protected List<FactObject> AllChildren; #region Unity Serialization public Material Default; @@ -74,15 +75,16 @@ void ISerializationCallbackReceiver.OnBeforeSerialize() if (FactText == null || FactText.Count() == 0) { FactText = transform - .GetComponentsInChildren<TextMeshProUGUI>(includeInactive: true) + .GetComponentsInChildren<TMP_Text>(includeInactive: true) .ToList(); } { StringLabelFormats ??= new(); - int i = Math.Min(FactText.Count(), StringLabelFormats.Count()); - int end = Math.Max(FactText.Count(), StringLabelFormats.Count()); + int i = StringLabelFormats.Count(); + int end = FactText.Count(); + for (; i < end; i++) StringLabelFormats.Add("{" + (i + 1) + "}"); } @@ -94,6 +96,21 @@ void ISerializationCallbackReceiver.OnBeforeSerialize() Hint = materials[(int)FactMaterials.Hint]; Solution = materials[(int)FactMaterials.Solution]; } + +#if UNITY_EDITOR // not working + if (EditorApplication.isPlaying) + return; + + foreach (Collider collider in transform.GetComponentsInChildren<Collider>(includeInactive: true)) + { + if (!collider.gameObject.GetComponent<FactObject>()) + try + { + collider.gameObject.AddComponent<FactObject>(); + } + catch(Exception) { } + } +#endif } void ISerializationCallbackReceiver.OnAfterDeserialize() @@ -110,15 +127,32 @@ void ISerializationCallbackReceiver.OnAfterDeserialize() private void Awake() { - cascade = new() { this, }; - cascade.AddRange(transform.GetComponentsInChildren<FactObject>(includeInactive: true)); + AllChildren = transform.GetComponentsInChildren<FactObject>(includeInactive: true).ToList(); + AllChildren.Remove(this); + } + + protected virtual void FactUpdated() + { + Awake(); + + ReLabel(); + + foreach (FactObject childObject in AllChildren) + { + childObject._URI = _URI; + childObject._Fact = null; + childObject.FactUpdated(); + } } public void ReLabel() { string[] mother_child_labels = new[] { URI }.ShallowCloneAppend(Fact.DependentFactIds) - .Select(fid => FactOrganizer.AllFacts[fid].Label) + .Select(fid => + FactOrganizer.AllFacts.TryGetValue(fid, out Fact fact) + ? fact.Label + : "N/A") .ToArray(); string indexoverflow = "{" + mother_child_labels.Length.ToString() + "}"; @@ -132,11 +166,21 @@ public void ReLabel() } FactText[i].text = string.Format(StringLabelFormats[i], mother_child_labels); } + + switch (Fact) // for highly customized labels + { + case TestFact testFact: + //FactText[0].text = testFact.Label; + break; + default: + break; + } } - public void CascadeForChildren(Action<FactObject> func) + public void CascadeForMeAndChildren(Action<FactObject> func) { - foreach (FactObject fo in cascade) + func(this); + foreach (FactObject fo in AllChildren) func(fo); } @@ -146,12 +190,13 @@ public void ForAllRenderer(Action<Renderer> func) func(ren); } - public void CoroutineCascadeForChildrenAllRenderer(Func<FactObject, Renderer, IEnumerator> func) + public void CoroutineCascadeForMeAndChildrenAllRenderer(Func<FactObject, Renderer, IEnumerator> func) { this.StopAllCoroutines(); - foreach (FactObject fo in cascade) - foreach (Renderer ren in fo.renderer) - StartCoroutine(func(fo, ren)); + CascadeForMeAndChildren((FactObject fo) => + fo.ForAllRenderer((Renderer ren) => + StartCoroutine(func(fo, ren)) + )); } } diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs index a68fa0f2..8e4ed366 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs @@ -57,9 +57,9 @@ public void SpawnAttachedPositionFunction(AttachedPositionFunction fact) public void SpawnPoint(PointFact fact) { GameObject point = GameObject.Instantiate(Sphere); - point.transform.SetPositionAndRotation(fact.Position, fact.Rotation); - point.GetComponentInChildren<TextMeshPro>().text = fact.Label; point.GetComponent<FactObject>().URI = fact.Id; + point.transform.SetPositionAndRotation(fact.Position, fact.Rotation); + //point.GetComponentInChildren<TextMeshPro>().text = fact.Label; fact.Representation = point; } @@ -67,6 +67,7 @@ public void SpawnLine(LineFact fact) { //Change FactRepresentation to Line GameObject line = GameObject.Instantiate(Line); + line.GetComponentInChildren<FactObject>().URI = fact.Id; //Place the Line in the centre of the two points line.transform.position = fact.Position; @@ -77,7 +78,6 @@ public void SpawnLine(LineFact fact) line.GetComponentInChildren<TextMeshPro>().text = fact.Label + " = " + Math.Round(fact.Distance, 2) + " m"; - line.GetComponentInChildren<FactObject>().URI = fact.Id; fact.Representation = line; } @@ -86,6 +86,7 @@ public void SpawnRay(RayFact fact) { //Change FactRepresentation to Line GameObject line = GameObject.Instantiate(Ray); + line.GetComponentInChildren<FactObject>().URI = fact.Id; //Place the Line in the centre of the two points line.transform.position = fact.Position; @@ -94,8 +95,7 @@ public void SpawnRay(RayFact fact) line.transform.GetChild(0).localScale = fact.LocalScale; line.transform.GetChild(0).rotation = fact.Rotation; - line.GetComponentInChildren<TextMeshPro>().text = fact.Label; - line.GetComponentInChildren<FactObject>().URI = fact.Id; + //line.GetComponentInChildren<TextMeshPro>().text = fact.Label; fact.Representation = line; } @@ -109,6 +109,7 @@ public void SpawnAngle(AbstractAngleFact fact) //Change FactRepresentation to Angle GameObject angle = GameObject.Instantiate(Angle); + angle.GetComponentInChildren<FactObject>().URI = fact.Id; //Place the Angle at position of point2 angle.transform.SetPositionAndRotation(Psotion, Rotation); @@ -126,7 +127,6 @@ public void SpawnAngle(AbstractAngleFact fact) foreach (CircleSegmentGenerator c in segments) c.setAngle(angleValue); - angle.GetComponentInChildren<FactObject>().URI = fact.Id; fact.Representation = angle; } @@ -145,17 +145,14 @@ public void SpawnRingAndCircle(CircleFact fact) public void SpawnRing(CircleFact circleFact, Transform parent = null) { GameObject ring = GameObject.Instantiate(Ring, parent); - var tori = ring.GetComponentsInChildren<TorusGenerator>(); - var tmpText = ring.GetComponentInChildren<TextMeshPro>(); - var FactObj = ring.GetComponentInChildren<FactObject>(); + ring.GetComponentInChildren<FactObject>().URI = circleFact.Id; - //Set radii + var tori = ring.GetComponentsInChildren<TorusGenerator>(); foreach (var torus in tori) torus.torusRadius = circleFact.radius; - tmpText.text = $"â—‹{circleFact.Point1.Label}"; - - FactObj.URI = circleFact.Id; + //var tmpText = ring.GetComponentInChildren<TextMeshPro>(); + //tmpText.text = $"â—‹{circleFact.Point1.Label}"; } public void SpawnCircle(CircleFact circleFact, Transform parent = null) diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/FunctionFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/FunctionFact.cs index 99686910..d77e7f88 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/FunctionFact.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/FunctionFact.cs @@ -185,7 +185,7 @@ public class AttachedPositionFunction : FactWrappedCRTP<AttachedPositionFunction public Fact Fact => FactOrganizer.AllFacts[fid]; [JsonIgnore] - public FunctionCallFact[] FunctionFacts + public FunctionCallFact[] FunctionCallFacts => func_call_ids.Select(f => FactOrganizer.AllFacts[f] as FunctionCallFact).ToArray(); /// <summary>\copydoc Fact.Fact()</summary> @@ -196,7 +196,7 @@ public AttachedPositionFunction(string fid, string[] funcids, FactOrganizer orga { init(fid, funcids); //TODO: call MMT, set URI - _URI = Fact.Id + "{" + string.Join(", ", FunctionFacts.Select(f => f.Id)) + "}"; + _URI = Fact.Id + "{" + string.Join(", ", FunctionCallFacts.Select(f => f.Id)) + "}"; } private void init(string fid, string[] funcids) @@ -229,7 +229,7 @@ protected override string[] GetGetDependentFactIds() => new string[] { fid }.ShallowCloneAppend(func_call_ids); public override int GetHashCode() - => Fact.GetHashCode() ^ FunctionFacts.GetHashCode(); + => Fact.GetHashCode() ^ FunctionCallFacts.GetHashCode(); protected override bool EquivalentWrapped(AttachedPositionFunction f1, AttachedPositionFunction f2) => DependentFactsEquivalent(f1, f2); diff --git a/Assets/Scripts/InteractionEngine/ShinyThings.cs b/Assets/Scripts/InteractionEngine/ShinyThings.cs index 4be58172..7a073353 100644 --- a/Assets/Scripts/InteractionEngine/ShinyThings.cs +++ b/Assets/Scripts/InteractionEngine/ShinyThings.cs @@ -75,7 +75,7 @@ private void HighlightCurserHit(RaycastHit hit) } void ApplyMaterial(FactObject root, Material new_mat) => - root.CoroutineCascadeForChildrenAllRenderer( + root.CoroutineCascadeForMeAndChildrenAllRenderer( (_, renderer) => renderer.ProgrammMaterialChange(new[] { (0f, lerpTime, new_mat), @@ -90,7 +90,7 @@ public static void HighlightFact(Fact startFact, FactObject.FactMaterials tmp_ma FactObject selected_fact_obj = startFact.Representation.GetComponentInChildren<FactObject>(); - selected_fact_obj.CoroutineCascadeForChildrenAllRenderer( + selected_fact_obj.CoroutineCascadeForMeAndChildrenAllRenderer( (fact_obj, renderer) => renderer.ProgrammMaterialChange(new[] { (0f, lerpTime, fact_obj.materials[(int) tmp_mat]), diff --git a/Assets/Scripts/InteractionEngine/TBD/AttachedPositionFunctionBehaviour.cs b/Assets/Scripts/InteractionEngine/TBD/AttachedPositionFunctionBehaviour.cs index 91c99ec4..b48e502a 100644 --- a/Assets/Scripts/InteractionEngine/TBD/AttachedPositionFunctionBehaviour.cs +++ b/Assets/Scripts/InteractionEngine/TBD/AttachedPositionFunctionBehaviour.cs @@ -49,18 +49,33 @@ public void NewExecutingInstance() if (!original) return; + GameObject clone = Instantiate(gameObject); + clone.GetComponent<FactObject>().URI = (Fact as AttachedPositionFunction).Fact.Id; + AttachedPositionFunctionBehaviour cloneComp = - GameObject.Instantiate(gameObject)//, gameObject.transform) - .GetComponent<AttachedPositionFunctionBehaviour>(); - cloneComp.Start(); + clone.GetComponent<AttachedPositionFunctionBehaviour>(); + cloneComp.URI = URI; cloneComp.original = false; + + cloneComp.Start(); cloneComp.StartExecution(); } + private void Awake() + { + // TODO! SE: not great, but terrible + AllChildren = new(); + FactText = new(); + StringLabelFormats = new(); + } + + // TODO! SE: not great, but terrible + protected override void FactUpdated() { } + private void Start() { startcondition = transform; - f_t_to_pos = (Fact as AttachedPositionFunction).FunctionFacts.ToList(); + f_t_to_pos = (Fact as AttachedPositionFunction).FunctionCallFacts.ToList(); } private void OnEnable() diff --git a/Assets/Scripts/InventoryStuff/DropHandling.cs b/Assets/Scripts/InventoryStuff/DropHandling.cs index 0fea168f..fe635297 100644 --- a/Assets/Scripts/InventoryStuff/DropHandling.cs +++ b/Assets/Scripts/InventoryStuff/DropHandling.cs @@ -11,7 +11,7 @@ public void OnDrop(PointerEventData eventData) var scrollFact = gameObject.GetComponent<RenderedScrollFact>(); Debug.Log(eventData.pointerDrag.GetComponent<FactObject>().Fact.Label + " was dropped on " - + gameObject.name + " " + scrollFact.ID + "/" + + + gameObject.name + " " + (scrollFact.ID + 1) + "/" + ScrollDetails.ParameterDisplays.Count + " label: " + scrollFact.Label); Destroy(current); diff --git a/Assets/Scripts/MeshGenerator/ConeGenerator.cs b/Assets/Scripts/MeshGenerator/ConeGenerator.cs index 717cd56f..73cc6833 100644 --- a/Assets/Scripts/MeshGenerator/ConeGenerator.cs +++ b/Assets/Scripts/MeshGenerator/ConeGenerator.cs @@ -29,6 +29,9 @@ protected override void GenerateShape() Vector3[] bottomCircle = GetCirclePoints(bottomRadius, sideCount); Vector3[] topCircle = GetCirclePoints(topRadius, sideCount, topPosition); + if (sideMesh == null || topMesh == null || bottomMesh == null) + return; + //side if (sideMesh.sharedMesh != null) sideMesh.sharedMesh.Clear(); diff --git a/Assets/Scripts/MeshGenerator/TorusGenerator.cs b/Assets/Scripts/MeshGenerator/TorusGenerator.cs index ab05a782..f93ed849 100644 --- a/Assets/Scripts/MeshGenerator/TorusGenerator.cs +++ b/Assets/Scripts/MeshGenerator/TorusGenerator.cs @@ -22,6 +22,9 @@ public class TorusGenerator : ShapeGenerator #region Implementation protected override void GenerateShape() { + if (torusMesh == null) + return; + if (torusMesh.sharedMesh != null) torusMesh.sharedMesh.Clear(); diff --git a/Assets/Scripts/SoundManager.cs b/Assets/Scripts/SoundManager.cs index 492de203..f1af5e0d 100644 --- a/Assets/Scripts/SoundManager.cs +++ b/Assets/Scripts/SoundManager.cs @@ -11,10 +11,12 @@ public class SoundManager : MonoBehaviour // Start is called before the first frame update void Start() { - if(!PlayerPrefs.HasKey("soundVolume")) { + if (!PlayerPrefs.HasKey("soundVolume")) + { PlayerPrefs.SetFloat("soundVolume", defaultVolume); Load(); - } else + } + else { Load(); } @@ -23,16 +25,24 @@ void Start() public void Awake() { //singleton - if(Instance == null) + if (Instance == null) { Instance = this; - DontDestroyOnLoad(gameObject); - } else + if (gameObject.IsRoot()) + DontDestroyOnLoad(gameObject); + } + else { Destroy(gameObject); } } + private void OnDestroy() + { + if (!gameObject.IsRoot()) + Instance = null; + } + public void ChangeVolume() { AudioListener.volume = volumeSlider.value; @@ -43,10 +53,9 @@ private void Load() { volumeSlider.value = PlayerPrefs.GetFloat("soundVolume"); } + private void Save() { PlayerPrefs.SetFloat("soundVolume", volumeSlider.value); } - - } diff --git a/Assets/Scripts/Utility/Extensions/GameObjectExtensions.cs b/Assets/Scripts/Utility/Extensions/GameObjectExtensions.cs index 003876b4..86b5c77a 100644 --- a/Assets/Scripts/Utility/Extensions/GameObjectExtensions.cs +++ b/Assets/Scripts/Utility/Extensions/GameObjectExtensions.cs @@ -5,6 +5,9 @@ public static class GameObjectExtensions { + public static bool IsRoot(this GameObject root) + => root.transform.parent == null; + public static void SetActiveByTagRecursive(this GameObject root, string tag, bool enable) => root.ForAllChildren(child => { if (child.CompareTag(tag)) diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 2f91af0d..70253e43 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -12,10 +12,10 @@ EditorUserSettings: value: 5b01035553515d0e0b0f5b7415725d444e4f1d2b2e782332757f4863e4e6673c flags: 0 RecentlyUsedSceneGuid-2: - value: 5b5200520604510a5b5b587642270744124e4e7a7e7f2764742f1b61b0e6613a + value: 0502505152005e020c0d0e2446275e44144f19287f707e362c7c4b60b2b9353c flags: 0 RecentlyUsedSceneGuid-3: - value: 0502505152005e020c0d0e2446275e44144f19287f707e362c7c4b60b2b9353c + value: 5b5200520604510a5b5b587642270744124e4e7a7e7f2764742f1b61b0e6613a flags: 0 RecentlyUsedSceneGuid-4: value: 0709560454055c0d0c5e5c2444740b4413154a72792d22627c714963e0b6373d -- GitLab