diff --git a/AVVR/Assets/Scenes/MenuInterface.unity b/AVVR/Assets/Scenes/MenuInterface.unity index 9c04b27de2aa6fe37a6062371acfdb6413af5384..df25c37ff200b4ce3ad9676ba7187a3642dd6624 100644 --- a/AVVR/Assets/Scenes/MenuInterface.unity +++ b/AVVR/Assets/Scenes/MenuInterface.unity @@ -1611,9 +1611,9 @@ GameObject: - component: {fileID: 235670132} - component: {fileID: 235670131} - component: {fileID: 235670130} - - component: {fileID: 235670129} + - component: {fileID: 235670133} m_Layer: 5 - m_Name: BuildButton + m_Name: LoadButton m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1641,21 +1641,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 50} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &235670129 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 235670127} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db81b305bd397cf4c9538bc53853cb24, type: 3} - m_Name: - m_EditorClassIdentifier: - labelledInputValidators: [] - buildButton: {fileID: 1288695414} - interactableAudioSourcePrefab: {fileID: 1342686809196105485, guid: e8704b2cb89ef5f4c900ad41600ea441, type: 3} --- !u!114 &235670130 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1720,6 +1705,19 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 235670127} m_CullTransparentMesh: 1 +--- !u!114 &235670133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 235670127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4378e92998fd24042b6dc1e5b029103d, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneDropdown: {fileID: 1291120798} --- !u!1 &250489647 stripped GameObject: m_CorrespondingSourceObject: {fileID: 447789593364921121, guid: 2c2e4829725baed4f81fa638908f2e91, type: 3} @@ -2628,7 +2626,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Option A + m_text: Kitchen (VR) m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -3409,7 +3407,9 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Build Room + m_text: 'Load Scene + +' m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} @@ -3789,9 +3789,9 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 235670129} - m_TargetAssemblyTypeName: BuildRoom, Assembly-CSharp - m_MethodName: OnButtonPress + - m_Target: {fileID: 235670133} + m_TargetAssemblyTypeName: LoadButton, Assembly-CSharp + m_MethodName: LoadScene m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -3951,11 +3951,25 @@ MonoBehaviour: m_Value: 0 m_Options: m_Options: - - m_Text: Option A + - m_Text: Kitchen (VR) + m_Image: {fileID: 0} + - m_Text: Kitchen (no VR) + m_Image: {fileID: 0} + - m_Text: Meeting Room (VR) + m_Image: {fileID: 0} + - m_Text: Meeting Room (no VR) + m_Image: {fileID: 0} + - m_Text: Usability Lab (VR) + m_Image: {fileID: 0} + - m_Text: Usability Lab (no VR) + m_Image: {fileID: 0} + - m_Text: Listening Room (VR) + m_Image: {fileID: 0} + - m_Text: Listening Room (no VR) m_Image: {fileID: 0} - - m_Text: Option B + - m_Text: Studio Hall (VR) m_Image: {fileID: 0} - - m_Text: Option C + - m_Text: Studio Hall (no VR) m_Image: {fileID: 0} m_OnValueChanged: m_PersistentCalls: @@ -4205,7 +4219,7 @@ Light: m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: - m_Type: 2 + m_Type: 0 m_Resolution: -1 m_CustomResolution: -1 m_Strength: 1 @@ -5967,25 +5981,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3d224e07818e1d149a87a87dfa8ed544, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &459597701323916430 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1836554366573817008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d6236b7d0d19f8d49880cd417b94612a, type: 3} - m_Name: - m_EditorClassIdentifier: - selectFileButton: {fileID: 0} - outputText: {fileID: 2276777669395963953} - fileExtensions: - - .obj - onFileSelected: - m_PersistentCalls: - m_Calls: [] --- !u!1001 &731246719102411607 PrefabInstance: m_ObjectHideFlags: 0 @@ -6360,7 +6355,6 @@ GameObject: - component: {fileID: 5942025239059176361} - component: {fileID: 7206170632891250804} - component: {fileID: 8362059908445822423} - - component: {fileID: 459597701323916430} m_Layer: 5 m_Name: SelectRoom m_TagString: Untagged @@ -6437,95 +6431,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 200, y: 50} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2276777669395963953 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8058079309589199878} - 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: No File Selected - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190335 - m_fontColor: {r: 1, 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: 16 - m_fontSizeBase: 16 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - 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: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 1 - 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: 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!114 &2412069675620941313 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6546,25 +6451,6 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!224 &2438540194372613777 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8058079309589199878} - 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: 8423873864886031584} - 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!1 &2495592600559490651 GameObject: m_ObjectHideFlags: 0 @@ -7149,33 +7035,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2c2e4829725baed4f81fa638908f2e91, type: 3} ---- !u!222 &8044430994579408930 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8058079309589199878} - m_CullTransparentMesh: 1 ---- !u!1 &8058079309589199878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2438540194372613777} - - component: {fileID: 8044430994579408930} - - component: {fileID: 9112569331387908261} - - component: {fileID: 2276777669395963953} - m_Layer: 5 - m_Name: Output - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!114 &8362059908445822423 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7216,7 +7075,6 @@ RectTransform: m_Children: - {fileID: 6111533101558626459} - {fileID: 1291120796} - - {fileID: 2438540194372613777} m_Father: {fileID: 170541293} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -7367,26 +7225,6 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &9112569331387908261 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8058079309589199878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 200 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs b/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs new file mode 100644 index 0000000000000000000000000000000000000000..43f04ac616f57126c175ca6eb9c60ee8044762db --- /dev/null +++ b/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs @@ -0,0 +1,65 @@ +using UnityEngine; +using UnityEngine.SceneManagement; +using TMPro; +using System.Collections.Generic; + +public class LoadButton : MonoBehaviour +{ + [SerializeField] private TMP_Dropdown sceneDropdown; + + private Dictionary<string, string> sceneMapping = new Dictionary<string, string>() + { + {"Kitchen (no VR)", "KT_NoVR"}, + {"Kitchen (VR)", "KT_demo"}, + {"Meeting Room (no VR)", "MR_NoVR"}, + {"Meeting Room (VR)", "MR_demo"}, + {"Usability Lab (no VR)", "UL_NoVR"}, + {"Usability Lab (VR)", "UL_demo"}, + {"Listening Room (no VR)", "LR_NoVR"}, + {"Listening Room (VR)", "LR_demo"}, + {"Studio Hall (no VR)", "ST_NoVR"}, + {"Studio Hall (VR)", "ST_demo"} + }; + + public void LoadScene() + { + string displayName = sceneDropdown.options[sceneDropdown.value].text; + if (sceneMapping.TryGetValue(displayName, out string sceneName)) + { + // Start loading the new scene asynchronously + StartCoroutine(LoadSceneAsync(sceneName)); + } + else + { + Debug.LogError($"No scene found for: {displayName}"); + } + } + + private System.Collections.IEnumerator LoadSceneAsync(string sceneName) + { + // Load the loading screen scene (if you have one) + // SceneManager.LoadScene("LoadingScreen", LoadSceneMode.Additive); + + // Unload current scene + AsyncOperation unloadOperation = SceneManager.UnloadSceneAsync(SceneManager.GetActiveScene()); + while (unloadOperation != null && !unloadOperation.isDone) + { + yield return null; + } + + // Force garbage collection to free up memory + System.GC.Collect(); + Resources.UnloadUnusedAssets(); + + // Load new scene + AsyncOperation loadOperation = SceneManager.LoadSceneAsync(sceneName); + loadOperation.allowSceneActivation = true; + + while (!loadOperation.isDone) + { + float progress = Mathf.Clamp01(loadOperation.progress / 0.9f); + Debug.Log($"Loading progress: {progress * 100}%"); + yield return null; + } + } +} \ No newline at end of file diff --git a/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs.meta b/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..00936c9512f6be492ce45feb1838d590d5d07632 --- /dev/null +++ b/AVVR/Assets/_Scripts/MenuInterface/LoadScene.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4378e92998fd24042b6dc1e5b029103d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: