From eec9f204df1349bb43c4835712bad282003c0e5a Mon Sep 17 00:00:00 2001 From: chime08 Date: Thu, 30 Apr 2026 00:07:52 -0400 Subject: [PATCH 1/9] Fixed save/load system using JSON files --- Assets/Scenes/CategoryButton.unity | 1300 ++++++++++++----- Assets/Scripts/GenerateEmbeddedObject.cs | 162 -- Assets/Scripts/SaveLoad/FirebaseHandler.cs | 200 ++- Assets/Scripts/SaveLoad/SaveLoadUI.cs | 32 +- Assets/Scripts/Scene/Login.meta | 8 + Assets/Scripts/Scene/Login/Login.cs | 27 + .../Login/Login.cs.meta} | 2 +- Assets/Scripts/Scene/Login/UserSession.cs | 9 + .../Scripts/Scene/Login/UserSession.cs.meta | 11 + Assets/Scripts/Scene/MaterialLearning.meta | 8 + .../MaterialLearning/MaterialLearnManager.cs | 223 +++ .../MaterialLearnManager.cs.meta | 11 + .../MaterialLearning/SwitchMaterialManager.cs | 64 + .../SwitchMaterialManager.cs.meta | 11 + Assets/Scripts/Scene/Menu.meta | 8 + .../Scene/Menu/AdvancedSettingsMenu.cs | 268 ++++ .../Scene/Menu/AdvancedSettingsMenu.cs.meta | 11 + Assets/Scripts/Scene/Menu/BackToMainMenu.cs | 80 + .../Scripts/Scene/Menu/BackToMainMenu.cs.meta | 11 + Assets/Scripts/Scene/Menu/MainMenu.cs | 128 ++ Assets/Scripts/Scene/Menu/MainMenu.cs.meta | 11 + Assets/Scripts/Scene/Menu/NoImportantMenu.cs | 65 + .../Scene/Menu/NoImportantMenu.cs.meta | 11 + Assets/Scripts/Scene/Menu/SettingsMenu.cs | 275 ++++ .../Scripts/Scene/Menu/SettingsMenu.cs.meta | 11 + Assets/Scripts/Scene/Menu/TutorialMenu.cs | 128 ++ .../Scripts/Scene/Menu/TutorialMenu.cs.meta | 11 + .../Scene/PreScavengerHuntShoreline.meta | 8 + .../PreScavengerHuntShorelineProcess.cs | 94 ++ .../PreScavengerHuntShorelineProcess.cs.meta | 11 + .../Scene/PreScavengerHuntTraining.meta | 8 + .../PreScavengerHuntTrainingProcess.cs | 81 + .../PreScavengerHuntTrainingProcess.cs.meta | 11 + .../PreScavengerHuntTraining/Treasure.cs | 20 + .../PreScavengerHuntTraining/Treasure.cs.meta | 11 + Assets/Scripts/Scene/StreetExploration.meta | 8 + .../StreetExplorationManager.cs | 85 ++ .../StreetExplorationManager.cs.meta | 11 + Assets/Scripts/Scene/TrickyScenario.meta | 8 + .../TrickyScenario/TrickyScenarioProcess.cs | 135 ++ .../TrickyScenarioProcess.cs.meta | 11 + .../Scene/TrickyScenarioWithShoreline.meta | 8 + .../TrickyScenarioTargetProcess.cs | 184 +++ .../TrickyScenarioTargetProcess.cs.meta | 11 + .../TrickyScenarioWithShorelineProcess.cs | 125 ++ ...TrickyScenarioWithShorelineProcess.cs.meta | 11 + ...TutorialPart1_InteractiveQuestionGame.meta | 8 + .../AnswerChoiceManager.cs | 52 + .../AnswerChoiceManager.cs.meta | 11 + .../QuestionSceneProcess.cs | 381 +++++ .../QuestionSceneProcess.cs.meta | 11 + ...rialPart2_Exploration_NavigationTasks.meta | 8 + .../TutorialPart2CaneInteraction.cs | 25 + .../TutorialPart2CaneInteraction.cs.meta | 11 + .../TutorialPart2Process.cs | 112 ++ .../TutorialPart2Process.cs.meta | 11 + .../Scene/Tutorial_GestureAndLaser.meta | 8 + .../GestureAndLaserTutorialProcess.cs | 425 ++++++ .../GestureAndLaserTutorialProcess.cs.meta | 11 + Assets/Scripts/Scene/Tutorial_Shoreline.meta | 8 + .../Tutorial_Shoreline/QuizTutorial.meta | 8 + .../QuizTutorial/DetectCaneContact.cs | 43 + .../QuizTutorial/DetectCaneContact.cs.meta | 11 + .../QuizTutorial/DetectUserContact.cs | 30 + .../QuizTutorial/DetectUserContact.cs.meta | 11 + .../ShorelineTutorialProcess_Quiz.cs | 76 + .../ShorelineTutorialProcess_Quiz.cs.meta | 11 + .../QuizTutorial/ShorelineTutorial_Quiz.cs | 391 +++++ .../ShorelineTutorial_Quiz.cs.meta | 11 + .../Tutorial_Shoreline/RockTutorial.meta | 8 + .../RockTutorial/BoundaryDetector.cs | 44 + .../RockTutorial/BoundaryDetector.cs.meta | 11 + .../RockTutorial/BoundaryManager.cs | 18 + .../RockTutorial/BoundaryManager.cs.meta | 11 + .../RockTutorial/FloorDetector.cs | 43 + .../RockTutorial/FloorDetector.cs.meta | 11 + .../RockTutorial/RockInsideDetector.cs | 41 + .../RockTutorial/RockInsideDetector.cs.meta | 11 + .../RockTutorial/RockManager.cs | 17 + .../RockTutorial/RockManager.cs.meta | 11 + .../ShorelineTutorialProcess_Rock.cs | 82 ++ .../ShorelineTutorialProcess_Rock.cs.meta | 11 + .../RockTutorial/ShorelineTutorial_Rock.cs | 748 ++++++++++ .../ShorelineTutorial_Rock.cs.meta | 11 + .../RockTutorial/WaypointDetector.cs | 28 + .../RockTutorial/WaypointDetector.cs.meta | 11 + Assets/Scripts/Scene/Tutorial_WayPoint.meta | 8 + .../Scene/Tutorial_WayPoint/GoalBarManager.cs | 23 + .../Tutorial_WayPoint/GoalBarManager.cs.meta | 11 + .../WayPointTutorialProcess_Circle.cs | 78 + .../WayPointTutorialProcess_Circle.cs.meta | 11 + .../WayPointTutorialProcess_Walk.cs | 77 + .../WayPointTutorialProcess_Walk.cs.meta | 11 + .../WayPointTutorial_Circle.cs | 481 ++++++ .../WayPointTutorial_Circle.cs.meta | 11 + .../WayPointTutorial_Walk.cs | 610 ++++++++ .../WayPointTutorial_Walk.cs.meta | 11 + Packages/manifest.json | 3 + 98 files changed, 7390 insertions(+), 663 deletions(-) delete mode 100644 Assets/Scripts/GenerateEmbeddedObject.cs create mode 100644 Assets/Scripts/Scene/Login.meta create mode 100644 Assets/Scripts/Scene/Login/Login.cs rename Assets/Scripts/{GenerateEmbeddedObject.cs.meta => Scene/Login/Login.cs.meta} (83%) create mode 100644 Assets/Scripts/Scene/Login/UserSession.cs create mode 100644 Assets/Scripts/Scene/Login/UserSession.cs.meta create mode 100644 Assets/Scripts/Scene/MaterialLearning.meta create mode 100644 Assets/Scripts/Scene/MaterialLearning/MaterialLearnManager.cs create mode 100644 Assets/Scripts/Scene/MaterialLearning/MaterialLearnManager.cs.meta create mode 100644 Assets/Scripts/Scene/MaterialLearning/SwitchMaterialManager.cs create mode 100644 Assets/Scripts/Scene/MaterialLearning/SwitchMaterialManager.cs.meta create mode 100644 Assets/Scripts/Scene/Menu.meta create mode 100644 Assets/Scripts/Scene/Menu/AdvancedSettingsMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/AdvancedSettingsMenu.cs.meta create mode 100644 Assets/Scripts/Scene/Menu/BackToMainMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/BackToMainMenu.cs.meta create mode 100644 Assets/Scripts/Scene/Menu/MainMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/MainMenu.cs.meta create mode 100644 Assets/Scripts/Scene/Menu/NoImportantMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/NoImportantMenu.cs.meta create mode 100644 Assets/Scripts/Scene/Menu/SettingsMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/SettingsMenu.cs.meta create mode 100644 Assets/Scripts/Scene/Menu/TutorialMenu.cs create mode 100644 Assets/Scripts/Scene/Menu/TutorialMenu.cs.meta create mode 100644 Assets/Scripts/Scene/PreScavengerHuntShoreline.meta create mode 100644 Assets/Scripts/Scene/PreScavengerHuntShoreline/PreScavengerHuntShorelineProcess.cs create mode 100644 Assets/Scripts/Scene/PreScavengerHuntShoreline/PreScavengerHuntShorelineProcess.cs.meta create mode 100644 Assets/Scripts/Scene/PreScavengerHuntTraining.meta create mode 100644 Assets/Scripts/Scene/PreScavengerHuntTraining/PreScavengerHuntTrainingProcess.cs create mode 100644 Assets/Scripts/Scene/PreScavengerHuntTraining/PreScavengerHuntTrainingProcess.cs.meta create mode 100644 Assets/Scripts/Scene/PreScavengerHuntTraining/Treasure.cs create mode 100644 Assets/Scripts/Scene/PreScavengerHuntTraining/Treasure.cs.meta create mode 100644 Assets/Scripts/Scene/StreetExploration.meta create mode 100644 Assets/Scripts/Scene/StreetExploration/StreetExplorationManager.cs create mode 100644 Assets/Scripts/Scene/StreetExploration/StreetExplorationManager.cs.meta create mode 100644 Assets/Scripts/Scene/TrickyScenario.meta create mode 100644 Assets/Scripts/Scene/TrickyScenario/TrickyScenarioProcess.cs create mode 100644 Assets/Scripts/Scene/TrickyScenario/TrickyScenarioProcess.cs.meta create mode 100644 Assets/Scripts/Scene/TrickyScenarioWithShoreline.meta create mode 100644 Assets/Scripts/Scene/TrickyScenarioWithShoreline/TrickyScenarioTargetProcess.cs create mode 100644 Assets/Scripts/Scene/TrickyScenarioWithShoreline/TrickyScenarioTargetProcess.cs.meta create mode 100644 Assets/Scripts/Scene/TrickyScenarioWithShoreline/TrickyScenarioWithShorelineProcess.cs create mode 100644 Assets/Scripts/Scene/TrickyScenarioWithShoreline/TrickyScenarioWithShorelineProcess.cs.meta create mode 100644 Assets/Scripts/Scene/TutorialPart1_InteractiveQuestionGame.meta create mode 100644 Assets/Scripts/Scene/TutorialPart1_InteractiveQuestionGame/AnswerChoiceManager.cs create mode 100644 Assets/Scripts/Scene/TutorialPart1_InteractiveQuestionGame/AnswerChoiceManager.cs.meta create mode 100644 Assets/Scripts/Scene/TutorialPart1_InteractiveQuestionGame/QuestionSceneProcess.cs create mode 100644 Assets/Scripts/Scene/TutorialPart1_InteractiveQuestionGame/QuestionSceneProcess.cs.meta create mode 100644 Assets/Scripts/Scene/TutorialPart2_Exploration_NavigationTasks.meta create mode 100644 Assets/Scripts/Scene/TutorialPart2_Exploration_NavigationTasks/TutorialPart2CaneInteraction.cs create mode 100644 Assets/Scripts/Scene/TutorialPart2_Exploration_NavigationTasks/TutorialPart2CaneInteraction.cs.meta create mode 100644 Assets/Scripts/Scene/TutorialPart2_Exploration_NavigationTasks/TutorialPart2Process.cs create mode 100644 Assets/Scripts/Scene/TutorialPart2_Exploration_NavigationTasks/TutorialPart2Process.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_GestureAndLaser.meta create mode 100644 Assets/Scripts/Scene/Tutorial_GestureAndLaser/GestureAndLaserTutorialProcess.cs create mode 100644 Assets/Scripts/Scene/Tutorial_GestureAndLaser/GestureAndLaserTutorialProcess.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/DetectCaneContact.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/DetectCaneContact.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/DetectUserContact.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/DetectUserContact.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/ShorelineTutorialProcess_Quiz.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/ShorelineTutorialProcess_Quiz.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/ShorelineTutorial_Quiz.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/QuizTutorial/ShorelineTutorial_Quiz.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/BoundaryDetector.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/BoundaryDetector.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/BoundaryManager.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/BoundaryManager.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/FloorDetector.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/FloorDetector.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/RockInsideDetector.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/RockInsideDetector.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/RockManager.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/RockManager.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/ShorelineTutorialProcess_Rock.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/ShorelineTutorialProcess_Rock.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/ShorelineTutorial_Rock.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/ShorelineTutorial_Rock.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/WaypointDetector.cs create mode 100644 Assets/Scripts/Scene/Tutorial_Shoreline/RockTutorial/WaypointDetector.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/GoalBarManager.cs create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/GoalBarManager.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorialProcess_Circle.cs create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorialProcess_Circle.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorialProcess_Walk.cs create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorialProcess_Walk.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorial_Circle.cs create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorial_Circle.cs.meta create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorial_Walk.cs create mode 100644 Assets/Scripts/Scene/Tutorial_WayPoint/WayPointTutorial_Walk.cs.meta diff --git a/Assets/Scenes/CategoryButton.unity b/Assets/Scenes/CategoryButton.unity index b85ad88..9ebd3e8 100644 --- a/Assets/Scenes/CategoryButton.unity +++ b/Assets/Scenes/CategoryButton.unity @@ -38,7 +38,6 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028331, g: 0.2257133, b: 0.3069217, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -422,6 +421,38 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &78208933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 78208934} + m_Layer: 0 + m_Name: Decorations + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &78208934 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 78208933} + serializedVersion: 2 + 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: 1716943585} + m_Father: {fileID: 490645483} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &91666548 GameObject: m_ObjectHideFlags: 0 @@ -556,38 +587,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 91666548} m_CullTransparentMesh: 1 ---- !u!1 &78208933 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 78208934} - m_Layer: 0 - m_Name: Decorations - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &78208934 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 78208933} - serializedVersion: 2 - 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: 1716943585} - m_Father: {fileID: 490645483} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &122002260 GameObject: m_ObjectHideFlags: 0 @@ -2390,7 +2389,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337570031} m_CullTransparentMesh: 1 ---- !u!1 &417928530 +--- !u!1 &407969233 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2398,42 +2397,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 417928531} - - component: {fileID: 417928533} - - component: {fileID: 417928532} + - component: {fileID: 407969234} + - component: {fileID: 407969236} + - component: {fileID: 407969235} m_Layer: 5 - m_Name: LoadText3 + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &417928531 +--- !u!224 &407969234 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 417928530} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 407969233} + 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_LocalScale: {x: 1.017942, y: 1.0884, z: 1.0884} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1069840691} + m_Father: {fileID: 2079155521} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &417928532 + m_AnchoredPosition: {x: 2, y: 2.3151} + m_SizeDelta: {x: 0, y: 75} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &407969235 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 417928530} + m_GameObject: {fileID: 407969233} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -2447,7 +2446,10 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Load Map 3 + m_text: 'Shortcuts + + +' m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -2474,8 +2476,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 + m_fontSize: 36 + m_fontSizeBase: 36 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -2510,21 +2512,21 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} + m_margin: {x: 0, y: 74.63775, z: 1.8633423, w: 82.887924} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &417928533 +--- !u!222 &407969236 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 417928530} + m_GameObject: {fileID: 407969233} m_CullTransparentMesh: 1 ---- !u!1 &407969233 +--- !u!1 &417928530 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2532,42 +2534,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 407969234} - - component: {fileID: 407969236} - - component: {fileID: 407969235} + - component: {fileID: 417928531} + - component: {fileID: 417928533} + - component: {fileID: 417928532} m_Layer: 5 - m_Name: Text + m_Name: LoadText3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &407969234 +--- !u!224 &417928531 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 407969233} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 417928530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.017942, y: 1.0884, z: 1.0884} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2079155521} + m_Father: {fileID: 1069840691} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} + m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 2, y: 2.3151} - m_SizeDelta: {x: 0, y: 75} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &407969235 + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &417928532 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 407969233} + m_GameObject: {fileID: 417928530} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -2581,10 +2583,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: 'Shortcuts - - -' + m_text: Load Map 3 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -2611,8 +2610,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 + m_fontSize: 24 + m_fontSizeBase: 24 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -2647,19 +2646,19 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 74.63775, z: 1.8633423, w: 82.887924} + 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} ---- !u!222 &407969236 +--- !u!222 &417928533 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 407969233} + m_GameObject: {fileID: 417928530} m_CullTransparentMesh: 1 --- !u!1 &419504669 GameObject: @@ -2813,7 +2812,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 423550593} m_CullTransparentMesh: 1 ---- !u!1 &428770728 +--- !u!1 &427280017 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2821,134 +2820,289 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 428770729} - - component: {fileID: 428770732} - - component: {fileID: 428770731} - - component: {fileID: 428770730} + - component: {fileID: 427280018} + - component: {fileID: 427280021} + - component: {fileID: 427280020} + - component: {fileID: 427280019} m_Layer: 5 - m_Name: Button_DeleteBtn + m_Name: Placeholder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &428770729 +--- !u!224 &427280018 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 428770728} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 427280017} + 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: 1449392665} - m_Father: {fileID: 1635647504} + m_Children: [] + m_Father: {fileID: 1855750697} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &428770730 +--- !u!114 &427280019 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 428770728} + m_GameObject: {fileID: 427280017} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} m_Name: m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 428770731} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 320402431} - m_TargetAssemblyTypeName: BuildingSystem, Assembly-CSharp - m_MethodName: DestroySelected - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &428770731 + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &427280020 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 428770728} + m_GameObject: {fileID: 427280017} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.14509805, b: 0.09803922, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b513d409104306e44881f86f711e48e0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &428770732 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 428770728} - m_CullTransparentMesh: 1 ---- !u!1 &429431706 -GameObject: - m_ObjectHideFlags: 0 + m_text: 'Enter map name... ' + 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: 4294967295 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0} + 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: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 3 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + 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: 0 + 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} +--- !u!222 &427280021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427280017} + m_CullTransparentMesh: 1 +--- !u!1 &428770728 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 428770729} + - component: {fileID: 428770732} + - component: {fileID: 428770731} + - component: {fileID: 428770730} + m_Layer: 5 + m_Name: Button_DeleteBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &428770729 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428770728} + 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: 1449392665} + m_Father: {fileID: 1635647504} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &428770730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428770728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 428770731} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 320402431} + m_TargetAssemblyTypeName: BuildingSystem, Assembly-CSharp + m_MethodName: DestroySelected + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &428770731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428770728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.14509805, b: 0.09803922, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b513d409104306e44881f86f711e48e0, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &428770732 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428770728} + m_CullTransparentMesh: 1 +--- !u!1 &429431706 +GameObject: + m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} @@ -3025,6 +3179,75 @@ MonoBehaviour: m_Spacing: {x: 20, y: 0} m_Constraint: 2 m_ConstraintCount: 1 +--- !u!1 &490645480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 490645483} + - component: {fileID: 490645482} + - component: {fileID: 490645481} + m_Layer: 0 + m_Name: Chair(Clone) + m_TagString: PlaceableObject + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &490645481 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490645480} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 0.7624668, y: 1.576294, z: 0.9864531} + m_Center: {x: -0.11876659, y: 0.68904006, z: -0.17210427} +--- !u!114 &490645482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490645480} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71aca92abab00420dbe0b9f30de6f682, type: 3} + m_Name: + m_EditorClassIdentifier: + prefabName: Chair +--- !u!4 &490645483 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490645480} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 11.309937, y: 10.742942, z: 10.760001} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1775526008} + - {fileID: 78208934} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &510498846 GameObject: m_ObjectHideFlags: 0 @@ -3170,75 +3393,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 510498846} m_CullTransparentMesh: 1 ---- !u!1 &490645480 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 490645483} - - component: {fileID: 490645482} - - component: {fileID: 490645481} - m_Layer: 0 - m_Name: Chair(Clone) - m_TagString: PlaceableObject - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &490645481 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 490645480} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 0.7624668, y: 1.576294, z: 0.9864531} - m_Center: {x: -0.11876659, y: 0.68904006, z: -0.17210427} ---- !u!114 &490645482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 490645480} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 71aca92abab00420dbe0b9f30de6f682, type: 3} - m_Name: - m_EditorClassIdentifier: - prefabName: Chair ---- !u!4 &490645483 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 490645480} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 11.309937, y: 10.742942, z: 10.760001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1775526008} - - {fileID: 78208934} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &518478020 GameObject: m_ObjectHideFlags: 0 @@ -3657,17 +3811,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3c323e21067c4eb4bb47d695799638a2, type: 3} m_Name: m_EditorClassIdentifier: - itemDatabase: {fileID: 11400000, guid: 7d7ec2253a1c87e40b009dc005b0c2cb, type: 2} - iconGenerator: {fileID: 171183488} - categoryButtonContainer: {fileID: 0} - itemButtonContainer: {fileID: 0} - categoryButtonPrefab: {fileID: 0} - itemButtonPrefab: {fileID: 0} - backButton: {fileID: 0} - selectedItemPanel: {fileID: 0} - selectedItemIcon: {fileID: 0} - selectedItemName: {fileID: 0} - selectedItemDescription: {fileID: 0} --- !u!114 &537071961 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8495,30 +8638,164 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078256475} + m_GameObject: {fileID: 1078256475} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1078256478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1078256475} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1081230390 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1081230391} + - component: {fileID: 1081230393} + - component: {fileID: 1081230392} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1081230391 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1081230390} + 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: 1855750697} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1081230392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1081230390} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1078256478 -Transform: + 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: "\u200B" + 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: 4294967295 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + 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: 0 + 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} +--- !u!222 &1081230393 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078256475} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1081230390} + m_CullTransparentMesh: 1 --- !u!1 &1114696821 GameObject: m_ObjectHideFlags: 0 @@ -8985,7 +9262,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 423550595} m_HandleRect: {fileID: 423550594} m_Direction: 0 - m_Value: 0 + m_Value: 1 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -15681,6 +15958,58 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1840440541} m_CullTransparentMesh: 1 +--- !u!1 &1855750696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1855750697} + - component: {fileID: 1855750698} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1855750697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855750696} + 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: 427280018} + - {fileID: 1081230391} + m_Father: {fileID: 2109687679} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1855750698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855750696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} --- !u!1001 &1858686687 PrefabInstance: m_ObjectHideFlags: 0 @@ -18169,151 +18498,51 @@ GameObject: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 - m_Component: - - component: {fileID: 2033930212} - - component: {fileID: 2033930213} - m_Layer: 5 - m_Name: ObjectScale - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2033930212 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2033930211} - 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: 2079155521} - - {fileID: 419504670} - m_Father: {fileID: 1884948397} - 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: -860, y: -60} - m_SizeDelta: {x: 400, y: 120} - m_Pivot: {x: 0, y: 0} ---- !u!114 &2033930213 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2033930211} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2392b4c4ad4aa3a4b842cfde633f98e6, type: 3} - m_Name: - m_EditorClassIdentifier: - dragRectTransform: {fileID: 2033930212} - canvas: {fileID: 1884948396} ---- !u!1 &2065774646 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2065774647} - - component: {fileID: 2065774649} - - component: {fileID: 2065774648} - - component: {fileID: 2065774650} - m_Layer: 5 - m_Name: SaveLoadPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &2065774647 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2065774646} - 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: 1056401626} - - {fileID: 242402428} - - {fileID: 1114696822} - - {fileID: 1069840691} - - {fileID: 23647531} - - {fileID: 841131289} - - {fileID: 1054598449} - - {fileID: 1938243193} - - {fileID: 1467667375} - - {fileID: 510498847} - - {fileID: 1554711767} - m_Father: {fileID: 1884948397} - 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: 0} - m_SizeDelta: {x: 500, y: 465} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2065774648 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2065774646} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2065774649 -CanvasRenderer: + m_Component: + - component: {fileID: 2033930212} + - component: {fileID: 2033930213} + m_Layer: 5 + m_Name: ObjectScale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2033930212 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2065774646} - m_CullTransparentMesh: 1 ---- !u!114 &2065774650 + m_GameObject: {fileID: 2033930211} + 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: 2079155521} + - {fileID: 419504670} + m_Father: {fileID: 1884948397} + 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: -860, y: -60} + m_SizeDelta: {x: 400, y: 120} + m_Pivot: {x: 0, y: 0} +--- !u!114 &2033930213 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2065774646} + m_GameObject: {fileID: 2033930211} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e816c4448cc2ce94e82fe78254c5d6be, type: 3} + m_Script: {fileID: 11500000, guid: 2392b4c4ad4aa3a4b842cfde633f98e6, type: 3} m_Name: m_EditorClassIdentifier: - saveLoadPanel: {fileID: 2065774646} + dragRectTransform: {fileID: 2033930212} + canvas: {fileID: 1884948396} --- !u!1 &2042900932 GameObject: m_ObjectHideFlags: 0 @@ -18468,6 +18697,114 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2042900932} m_CullTransparentMesh: 1 +--- !u!1 &2065774646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2065774647} + - component: {fileID: 2065774649} + - component: {fileID: 2065774648} + - component: {fileID: 2065774650} + m_Layer: 5 + m_Name: SaveLoadPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2065774647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065774646} + 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: 1056401626} + - {fileID: 242402428} + - {fileID: 1114696822} + - {fileID: 1069840691} + - {fileID: 23647531} + - {fileID: 841131289} + - {fileID: 1054598449} + - {fileID: 1938243193} + - {fileID: 1467667375} + - {fileID: 510498847} + - {fileID: 1554711767} + - {fileID: 2109687679} + m_Father: {fileID: 1884948397} + 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: 0} + m_SizeDelta: {x: 500, y: 465} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2065774648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065774646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2065774649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065774646} + m_CullTransparentMesh: 1 +--- !u!114 &2065774650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065774646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e816c4448cc2ce94e82fe78254c5d6be, type: 3} + m_Name: + m_EditorClassIdentifier: + saveLoadPanel: {fileID: 2065774646} + firebaseHandler: {fileID: 1661730940} + mapNameInput: {fileID: 2109687680} + loadButtonLabels: + - {fileID: 308486894} + - {fileID: 91666550} + - {fileID: 417928532} + - {fileID: 1618693746} --- !u!1 &2079155520 GameObject: m_ObjectHideFlags: 0 @@ -18723,6 +19060,181 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2090211725} m_CullTransparentMesh: 1 +--- !u!1 &2109687678 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2109687679} + - component: {fileID: 2109687682} + - component: {fileID: 2109687681} + - component: {fileID: 2109687680} + m_Layer: 5 + m_Name: MapNameInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2109687679 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109687678} + 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: 1855750697} + m_Father: {fileID: 2065774647} + 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: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2109687680 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109687678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2109687681} + m_TextViewport: {fileID: 1855750697} + m_TextComponent: {fileID: 1081230392} + m_Placeholder: {fileID: 427280020} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &2109687681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109687678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2109687682 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109687678} + m_CullTransparentMesh: 1 --- !u!1 &2129504126 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/GenerateEmbeddedObject.cs b/Assets/Scripts/GenerateEmbeddedObject.cs deleted file mode 100644 index 6921404..0000000 --- a/Assets/Scripts/GenerateEmbeddedObject.cs +++ /dev/null @@ -1,162 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using System; - - - -public class GenerateEmbeddedObject : MonoBehaviour -{ - /// - /// The padding size (in Meter) between "Inside" and "Outside" on one axis. - /// padValue is the sum of padding on both side of an axis. - /// padValue will be used when "size >= sizeForUsingPct". - /// Default: 0.3f - /// - float padValue = 0.3f; - - /// - /// X% value which will be used to calculate the padding size (in Meter) between "Inside" and "Outside" objects. - /// padPct will be used when "size <= sizeForUsingPct" - /// Default: 0.8f - /// - float padPct = 0.8f; - - /// - /// A threshold value: if size below it, use "padPct", and if not, use "padValue" - /// Default: 0.2f - /// - float sizeForUsingPct = 0.2f; - - /// - /// A dictionary store the standard Actual-Size (in Meter) of different types of collider - /// - Dictionary dictStdActualSize = new Dictionary() - { - { "Cube", new Vector3(1f, 1f, 1f)}, - { "Sphere", new Vector3(1f, 1f, 1f)}, - { "Capsule", new Vector3(1f, 2f, 1f)}, - { "Cylinder", new Vector3(1f, 2f, 1f)}, - }; - - - - /// - /// Generate all the embedded structures at the time the App awake - /// - - void Awake() - { - RecGenerateForOutsideObjs(transform); - } - - - /// - /// A Recursive function for finding all descendents named "Outside" for current obj - /// and generate embedded structure for all the obj parts. - /// - - void RecGenerateForOutsideObjs(Transform currObj) - { - if (currObj.name == "Outside") - GenerateForOneOutsideObj(currObj); - else if (currObj.childCount == 0) - return; - else - { - foreach (Transform child in currObj) - RecGenerateForOutsideObjs(child); - } - } - - - /// - /// Function generates "inside obj" for one "outside obj" to create the embedded structure - /// - - void GenerateForOneOutsideObj(Transform outsideObj) - { - /* Step 1. Make a copy of "Outside" Obj -> name it "Inside" */ - Transform insideObj = Instantiate(outsideObj); // Duplicate the "OutsideObj" and name it as "InsideObj" - insideObj.name = "Inside"; - - /* Step 2. Move the "Outside" Obj to the same position as "Outside" Obj */ - insideObj.SetParent(outsideObj.transform); // Temporarily set the outsideObj as the parent of insideObj - insideObj.localPosition = Vector3.zero; // Sync the insideObj to the position of OutsideObj - - /* Step 3. Set the sacle for OutsideObj */ - SetInsideScale(ref insideObj, ref outsideObj); // Set scale for the Inside object - - /* Step 4. Sync the Position and Rotaion (EulerAngles) */ - insideObj.localPosition = outsideObj.localPosition; - insideObj.localEulerAngles = outsideObj.localEulerAngles; - } - - - /// - /// Function for setting scale for generated inside object - /// - - protected virtual void SetInsideScale(ref Transform insideObj, ref Transform outsideObj) - { - Vector3 outActualSize = GetActualSize(outsideObj); // Actual-Size (in Meter) of the Outside object - Vector3 outLocalScale = outsideObj.localScale; // Local-Scale (in Unity unit) of the Outside object - Vector3 inLocalScale = new Vector3(ScaleCalc(outActualSize.x, outLocalScale.x), - ScaleCalc(outActualSize.y, outLocalScale.y), - ScaleCalc(outActualSize.z, outLocalScale.z)); - insideObj.SetParent(outsideObj.parent); // Set the parent of "OutsideObj" to be the parent of "InsideObj", so that they become parallel objects - insideObj.localScale = inLocalScale; - } - - - /// - /// Function gets Actual-Size of an object (in Meter) - /// - - protected Vector3 GetActualSize(Transform obj) - { - /* Get the shape type of the object (Cube, Sphere, Cylinder, Capsule) */ - string objShapeType = obj.GetComponent().mesh.name.Replace(" Instance", ""); - - /* Get the standard Actual-Size of the current object based on its shape type */ - Vector3 stdActualSize = dictStdActualSize[objShapeType]; - - /* Get scale of current object */ - Vector3 scale = obj.localScale; - Transform tempTrans = obj.transform; - while (tempTrans != tempTrans.root) - { - scale = Vector3.Scale(scale, tempTrans.parent.localScale); // Multiply two vectors - tempTrans = tempTrans.parent; - } - - /* Transform the scale of this object to Actual-Size (in Meter) */ - Vector3 objActualSize = Vector3.Scale(scale, stdActualSize); - - return objActualSize; - } - - - /// - /// A calculator return an appropraite size for an axis of Inside object, - /// given the size of one axis of an Outside object. - /// - - protected float ScaleCalc(float oldActualSize, float oldLocalScale) - { - float newLocalScale = -1f; - - if (oldActualSize <= sizeForUsingPct) // If the size is too small - { - newLocalScale = oldLocalScale * (1 - padPct); - } - else // If the size big enough - { - float ratio = (oldActualSize - padValue) / oldActualSize; // ratio of "new size" / "old size" - newLocalScale = oldLocalScale * ratio; - } - return newLocalScale; - } - - -} \ No newline at end of file diff --git a/Assets/Scripts/SaveLoad/FirebaseHandler.cs b/Assets/Scripts/SaveLoad/FirebaseHandler.cs index fc11348..90bc795 100644 --- a/Assets/Scripts/SaveLoad/FirebaseHandler.cs +++ b/Assets/Scripts/SaveLoad/FirebaseHandler.cs @@ -1,113 +1,111 @@ using System; -using System.Collections; using System.Collections.Generic; -using Firebase.Database; +using System.IO; using UnityEngine; public class FirebaseHandler : MonoBehaviour { - private DatabaseReference root; - Dictionary objects = new Dictionary(); + private static string GetSlotPath(int slot) => + Path.Combine(Application.persistentDataPath, UserSession.Username + "-SLOT" + slot + ".json"); - void Start() { - root = FirebaseDatabase.DefaultInstance.RootReference; - } - - private void InitObjects() + private static GameObject LoadPrefab(string prefabName) { - GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("Selectable"); - - objects.Clear(); - foreach (var obj in gameObjects) + string[] folders = { "Prefabs/PlaceableObjects/", "Prefabs/DepercatedObjects/", "Prefabs/" }; + foreach (string folder in folders) { - objects.Add(obj.name, obj); + GameObject prefab = Resources.Load(folder + prefabName); + if (prefab != null) return prefab; } + return null; } - + private void DestroyObjects() { - GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("Selectable"); - - foreach (var obj in gameObjects) - { + foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Selectable")) Destroy(obj); - } - BuildingSystem.ObjectCount = 0; } - - private string Serialize(GameObjectData[] items, bool prettyPrint = false) { - Environment env = new(items); - return JsonUtility.ToJson(env, prettyPrint); - } - private Environment Deserialize(string json) { - return JsonUtility.FromJson(json); - } + private string Serialize(GameObjectData[] items, string mapName) => + JsonUtility.ToJson(new Environment(items, mapName), true); + + private Environment Deserialize(string json) => + JsonUtility.FromJson(json); + + public void SaveEnvironment(int slot) => SaveEnvironment(slot, "Slot " + slot); - public void SaveEnvironment(int slot) + public void SaveEnvironment(int slot, string mapName) { - InitObjects(); List objectData = new List(); - foreach (var obj in objects) objectData.Add(new GameObjectData(obj.Value)); - - // Serialize Environment data to a single JSON - string json = Serialize(objectData.ToArray()); + foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Selectable")) + objectData.Add(new GameObjectData(obj)); - // Save JSON to Database; "authorname" is a placeholder - root.Child("Environments").Child("authorname-SLOT" + slot).SetRawJsonValueAsync(json); + string json = Serialize(objectData.ToArray(), mapName); + File.WriteAllText(GetSlotPath(slot), json); + Debug.Log("Saved to: " + GetSlotPath(slot)); } - private IEnumerator QueryEnvironmentByName(string name, Action onResult) { - var query = root - .Child("Environments") - .Child(name) - .GetValueAsync(); - - yield return new WaitUntil(() => query.IsCompleted); + public void LoadEnvironment(int slot) + { + DestroyObjects(); - if (query.Exception == null && query.Result != null && query.Result.HasChildren) onResult?.Invoke(query.Result); - else onResult?.Invoke(null); - } + if (slot == 0) return; - // slot = 0 -> load nothing - public void LoadEnvironment(int slot) { - // "authorname" is a placeholder - string envName = "authorname-SLOT" + slot; + string path = GetSlotPath(slot); + if (!File.Exists(path)) + { + Debug.LogWarning("No save found at: " + path); + return; + } - // Reset environment builder - DestroyObjects(); - BuildingSystem.ObjectCount = 0; + string json = File.ReadAllText(path); + Environment env = Deserialize(json); - if (slot == 0) return; - - else - StartCoroutine(QueryEnvironmentByName(envName, (DataSnapshot snapshot) => { - if (snapshot != null) { - // Get the data from Firebase and parse it into an Environment object - Environment env = Deserialize(snapshot.GetRawJsonValue()); - - // Load all PlaceableObjects - GameObjectData[] objectData = env.Items; - - foreach (var data in objectData) { - GameObject prefab = Resources.Load("Prefabs/" + data.prefabName); - if (prefab != null) { - GameObject obj = Instantiate(prefab); - - obj.GetComponent(); - obj.name = data.prefabName + "#" + BuildingSystem.ObjectCount++; - obj.transform.SetPositionAndRotation(data.position, data.rotation); - obj.transform.localScale = data.scale; - obj.tag = "Selectable"; - obj.transform.SetParent(null); - obj.SetActive(true); - } - else Debug.LogError("Prefab not found: " + data.prefabName); - } + foreach (GameObjectData data in env.Items) + { + GameObject prefab = LoadPrefab(data.prefabName); + if (prefab == null) + { + Debug.LogError("Prefab not found: " + data.prefabName); + continue; + } + + GameObject obj = Instantiate(prefab); + + PlaceableObject placeableObj = obj.GetComponent(); + if (placeableObj != null) + { + placeableObj.prefabName = data.prefabName; + placeableObj.Place(); } - else Debug.LogError("Environment data not found: " + envName); - })); + + obj.name = data.prefabName + " #" + BuildingSystem.ObjectCount++; + obj.transform.SetPositionAndRotation(data.position, data.rotation); + obj.transform.localScale = data.scale; + obj.transform.SetParent(null); + obj.SetActive(true); + } + } + + public void GetSlotName(int slot, Action onResult) + { + string path = GetSlotPath(slot); + if (!File.Exists(path)) + { + onResult?.Invoke(null); + return; + } + + try + { + string json = File.ReadAllText(path); + Environment env = Deserialize(json); + onResult?.Invoke(env.Name); + } + catch + { + onResult?.Invoke(null); + } } } @@ -119,38 +117,36 @@ public class GameObjectData public Vector3 position; public Quaternion rotation; public Vector3 scale; - + public GameObjectData(GameObject gameObject) { - if (gameObject != null) + PlaceableObject obj = gameObject.GetComponent(); + if (obj != null) { - PlaceableObject obj = gameObject.GetComponent(); - if (obj != null) - { - name = obj.name; - prefabName = obj.prefabName; - position = gameObject.transform.position; - rotation = gameObject.transform.rotation; - scale = gameObject.transform.localScale; - } - else - { - Debug.LogWarning("Has no PlaceableObject component: " + gameObject.name); - } + name = gameObject.name; + prefabName = obj.prefabName; + position = gameObject.transform.position; + rotation = gameObject.transform.rotation; + scale = gameObject.transform.localScale; + } + else + { + Debug.LogWarning("No PlaceableObject on: " + gameObject.name); } } } [Serializable] -public class Environment { - +public class Environment +{ public string Name; public int ObjectCount; public GameObjectData[] Items; - public Environment(GameObjectData[] items) { - Name = "untitled"; + public Environment(GameObjectData[] items, string mapName = "Untitled") + { + Name = string.IsNullOrWhiteSpace(mapName) ? "Untitled" : mapName; Items = items; ObjectCount = BuildingSystem.ObjectCount; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/SaveLoad/SaveLoadUI.cs b/Assets/Scripts/SaveLoad/SaveLoadUI.cs index 273e60d..30b0fda 100644 --- a/Assets/Scripts/SaveLoad/SaveLoadUI.cs +++ b/Assets/Scripts/SaveLoad/SaveLoadUI.cs @@ -1,14 +1,38 @@ +using TMPro; using UnityEngine; public class SaveLoadUI : MonoBehaviour { - [SerializeField] - GameObject saveLoadPanel; + [SerializeField] GameObject saveLoadPanel; + [SerializeField] FirebaseHandler firebaseHandler; + // Assign one label per load button in the Inspector (slots 1–4) + [SerializeField] TextMeshProUGUI[] loadButtonLabels; public void SetVisibility(bool state) { saveLoadPanel.SetActive(state); + if (state) RefreshSlotNames(); } public void ToggleVisibility() { - saveLoadPanel.SetActive(!saveLoadPanel.activeSelf); + bool next = !saveLoadPanel.activeSelf; + saveLoadPanel.SetActive(next); + if (next) RefreshSlotNames(); } -} \ No newline at end of file + + public void Save(int slot) { + firebaseHandler.SaveEnvironment(slot, "Slot " + slot); + } + + public void Load(int slot) => firebaseHandler.LoadEnvironment(slot); + + private void RefreshSlotNames() { + if (loadButtonLabels == null) return; + for (int i = 0; i < loadButtonLabels.Length; i++) { + TextMeshProUGUI label = loadButtonLabels[i]; + if (label == null) continue; + int slot = i + 1; + firebaseHandler.GetSlotName(slot, name => { + label.text = string.IsNullOrEmpty(name) ? "Empty" : "Load Map " + slot; + }); + } + } +} diff --git a/Assets/Scripts/Scene/Login.meta b/Assets/Scripts/Scene/Login.meta new file mode 100644 index 0000000..3a3a8b1 --- /dev/null +++ b/Assets/Scripts/Scene/Login.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47693b9fd1d3b4f3fb46adf4742738f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scene/Login/Login.cs b/Assets/Scripts/Scene/Login/Login.cs new file mode 100644 index 0000000..bb6748f --- /dev/null +++ b/Assets/Scripts/Scene/Login/Login.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.UI; + +public class Login : MonoBehaviour +{ + public InputField usernameInput; + public Button loginButton; + // FireBaseManager fireBaseManager; + + // Start is called before the first frame update + void Start() + { + usernameInput = GameObject.Find("Canvas/Loginsystem/Username").GetComponent(); + loginButton = GameObject.Find("Canvas/Loginsystem/Login").GetComponent