public IEnumerator SaveLoadTestSaveThenLoad() { GameObject rig = loadHelper.LoadBasicSceneRig(); WorldLockingManager wltMgr = WorldLockingManager.GetInstance(); var settings = wltMgr.Settings; settings.AutoLoad = false; settings.AutoSave = false; wltMgr.Settings = settings; IAlignmentManager alignMgr = wltMgr.AlignmentManager; alignMgr.ClearAlignmentAnchors(); alignMgr.SendAlignmentAnchors(); // Verify alignment is identity VerifyAlignmentIdentity(alignMgr, pinData); // Add pins for (int i = 0; i < pinData.Length; ++i) { pinData[i].anchorId = alignMgr.AddAlignmentAnchor(pinData[i].name, pinData[i].virtualPose, pinData[i].lockedPose); } alignMgr.SendAlignmentAnchors(); yield return(null); // Verify alignment at pins VerifyAlignment(alignMgr, pinData); // Save wltMgr.Save(); yield return(null); // Verify alignment at pins, saving should be non-destructive. VerifyAlignment(alignMgr, pinData); // Clear alignMgr.ClearAlignmentAnchors(); alignMgr.SendAlignmentAnchors(); yield return(null); // Verify alignment is identity VerifyAlignmentIdentity(alignMgr, pinData); // Load wltMgr.Load(); yield return(null); for (int i = 0; i < pinData.Length; ++i) { pinData[i].anchorId = alignMgr.RestoreAlignmentAnchor(pinData[i].name, pinData[i].virtualPose); } alignMgr.SendAlignmentAnchors(); yield return(null); // Verify alignment at pins, load should have restored them. VerifyAlignment(alignMgr, pinData); GameObject.Destroy(rig); yield return(null); }