/// <summary> /// Clean up /// </summary> void OnDestroy() { if (MLPersistentStore.IsStarted) { MLPersistentStore.Stop(); } if (MLPersistentCoordinateFrames.IsStarted) { MLPersistentCoordinateFrames.Stop(); } foreach (GameObject go in _pcfObjs) { Destroy(go); } }
/// <summary> /// Handler when MLPersistentCoordinateFrames becomes ready /// </summary> void HandleInitialized(MLResult status) { MLPersistentCoordinateFrames.OnInitialized -= HandleInitialized; if (status.IsOk) { CreateOrRestoreBinding(); } else { Debug.LogErrorFormat("Error: MLPersistentCoordinateFrames failed to initialize, disabling script. Reason: {0}", status); MLPersistentStore.Stop(); MLPersistentCoordinateFrames.Stop(); Invoke("StartAPIs", 3); } }
/// <summary> /// Start this instance. /// </summary> void Start() { MLResult result = MLPersistentStore.Start(); if (!result.IsOk) { SetError("Failed to start persistent store. Disabling component"); enabled = false; return; } result = MLPersistentCoordinateFrames.Start(); if (!result.IsOk) { MLPersistentStore.Stop(); SetError("Failed to start coordinate frames system. disabling component"); enabled = false; return; } if (_representativePrefab == null) { SetError("Error: _representativePrefab must be set"); enabled = false; return; } List <MLPCF> pcfList; result = MLPersistentCoordinateFrames.GetAllPCFs(out pcfList, int.MaxValue); if (!result.IsOk) { MLPersistentStore.Stop(); MLPersistentCoordinateFrames.Stop(); SetError(result.ToString()); enabled = false; return; } TryShowingAllPCFs(pcfList); }