/// <summary> /// Release all resources. Package is unusable after Release. /// </summary> public void Release() { Destroy(spacePin); spacePin = null; Destroy(highlightProxy); highlightProxy = null; }
/// <summary> /// Release all resources. Package is unusable after Release. /// </summary> public void Release() { SimpleConsole.AddLine(log, $"Release SpacePin {spacePin.name}"); Destroy(spacePin); spacePin = null; Destroy(highlightProxy); highlightProxy = null; }
private SpacePinOrientable CreateSpacePin(Transform t) { Debug.Assert(orienter != null); SpacePinOrientable pin = t.gameObject.AddComponent <SpacePinOrientable>(); pin.Orienter = orienter; return(pin); }
public IEnumerator SaveLoadTestSpacePinOrientable() { GameObject rig = loadHelper.LoadBasicSceneRig(); GameObject[] gos = new GameObject[pinData.Length]; SpacePinOrientable[] spos = new SpacePinOrientable[pinData.Length]; Quaternion rotThirty = Quaternion.AngleAxis(30.0f, new Vector3(0.0f, 1.0f, 0.0f)); GameObject orienterGO = new GameObject("Orienter"); IOrienter orienter = orienterGO.AddComponent <Orienter>(); for (int i = 0; i < pinData.Length; ++i) { gos[i] = new GameObject("GOs_" + i.ToString()); spos[i] = gos[i].AddComponent <SpacePinOrientable>(); spos[i].Orienter = orienter; } /// Wait for their Start's to be called. yield return(null); for (int i = 0; i < spos.Length; ++i) { spos[i].transform.SetGlobalPose(pinData[i].virtualPose); spos[i].ResetModelingPose(); Vector3 rotPosition = rotThirty * pinData[i].virtualPose.position; spos[i].SetFrozenPosition(rotPosition); } yield return(null); IAlignmentManager alignMgr = WorldLockingManager.GetInstance().AlignmentManager; /// This is an arbitrary position, not actually one of the pinned positions currently. alignMgr.ComputePinnedPose(new Pose(pinData[0].lockedPose.position, Quaternion.identity)); Quaternion rot = Quaternion.Inverse(alignMgr.PinnedFromLocked.rotation); bool isThirty = rot == rotThirty; Assert.IsTrue(isThirty); GameObject.Destroy(rig); yield return(null); }