/// <summary> /// Actually do the Area Description save. /// </summary> /// <returns>Coroutine IEnumerator.</returns> private IEnumerator _DoSaveCurrentAreaDescription() { if (TouchScreenKeyboard.visible || m_saveThread != null) { yield break; } TouchScreenKeyboard kb = TouchScreenKeyboard.Open("Unnamed"); while (!kb.done && !kb.wasCanceled) { yield return null; } if (kb.done) { // Disable interaction before saving. m_initialized = false; m_savingText.gameObject.SetActive(true); if (m_tangoApplication.m_enableAreaLearning) { m_saveThread = new Thread(delegate() { // Start saving process in another thread. m_curAreaDescription = AreaDescription.SaveCurrent(); AreaDescription.Metadata metadata = m_curAreaDescription.GetMetadata(); metadata.m_name = kb.text; m_curAreaDescription.SaveMetadata(metadata); }); m_saveThread.Start(); } else { _SaveMarkerToDisk(); Application.LoadLevel(Application.loadedLevel); } } }
/// <summary> /// Actually do the Area Description save. /// </summary> /// <returns>Coroutine IEnumerator.</returns> private IEnumerator _DoSaveAreaDescriptionAndMesh() { if (m_saveThread != null) { yield break; } // Disable interaction before saving. m_initialized = false; m_savingText.text = "Saving Area Description..."; if (string.IsNullOrEmpty(m_savedUUID)) { m_saveThread = new Thread(delegate() { // Save the Area Description to file. m_curAreaDescription = AreaDescription.SaveCurrent(); AreaDescription.Metadata metadata = m_curAreaDescription.GetMetadata(); m_savedUUID = m_curAreaDescription.m_uuid; metadata.m_name = metadata.m_dateTime.ToLongTimeString(); m_curAreaDescription.SaveMetadata(metadata); // Save the tango dynamic mesh to file. StartCoroutine(_DoSaveTangoDynamicMesh()); }); m_saveThread.Start(); } else { StartCoroutine(_DoSaveTangoDynamicMesh()); } }