using GhostSystem; using UnityEngine; using UnityEngine.SceneManagement; using TMPro; using System.Collections.Generic; using UnityEngine.UI; public class FlushAndLoad : MonoBehaviour { public TMP_Text output; public TMP_Text instruction; public GhostRecorderBatch recorder; public GameObject loadingScreen; public GameObject canvas; private string sceneId; private void OnEnable() { GhostRecorderBatch.OnUploadFinished += HandleUploadFinished; RoomManager.OnSceneIdReady += HandleSceneIdReady; } private void OnDisable() { GhostRecorderBatch.OnUploadFinished -= HandleUploadFinished; RoomManager.OnSceneIdReady -= HandleSceneIdReady; } // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { } // Update is called once per frame void Update() { if (OVRInput.GetDown(OVRInput.Button.SecondaryIndexTrigger)) { if (sceneId == "End") Application.Quit(); else { output.text = "Flush..."; loadingScreen.SetActive(true); canvas.SetActive(false); recorder.Flush(); GetComponent().NewRoom(); } } } private void HandleUploadFinished() { loadingScreen.SetActive(false); output.text = ""; } private void HandleSceneIdReady(string id, List doors) { sceneId = id; if (id == "Room1") { loadingScreen.SetActive(false); } if (id == "End") { output.text = "Durchlauf beendet."; instruction.text = "Drücke den rechten Trigger, um die Anwendung zu beenden."; canvas.SetActive(true); } } }