public void Update() { ViveBridge.Position = transform.position; ViveBridge.Forward = transform.forward; ViveBridge.Touchpad = device.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0); ViveBridge.CheckHits(); viveManipulator.PrevPosition = viveManipulator.CurrentPosition; viveManipulator.CurrentPosition = transform.position; viveManipulator.CheckHits(ViveBridge.InteractionMode, true); switch (ViveBridge.InteractionMode) { case InteractionMode.ScalePrefabs: if (viveManipulator.IsScaling) { viveManipulator.ScaleObject(); DisplayBox(viveManipulator.ManipulatedObject.name, true); } else if (!string.IsNullOrEmpty(ViveBridge.CollidedName) && !string.Equals(ViveBridge.CollidedName, lastCollided)) { var collided = GameObject.Find(ViveBridge.CollidedName); if (collided.CompareTag(ViveManipulable.Manipulable)) { DisplayBox(ViveBridge.CollidedName, true); lastCollided = ViveBridge.CollidedName; } } break; case InteractionMode.SpawnObjects: int index = radialMenu.FindIndex(ViveBridge.Touchpad); radialMenu.Highlight(index); break; case InteractionMode.Manipulation: if (!string.IsNullOrEmpty(ViveBridge.CollidedName) && !string.Equals(ViveBridge.CollidedName, lastCollided)) { var collided = GameObject.Find(ViveBridge.CollidedName); if (collided.CompareTag(ViveManipulable.Manipulable)) { DisplayBox(ViveBridge.CollidedName, true); lastCollided = ViveBridge.CollidedName; } } break; } if (!viveManipulator.IsScaling && !string.IsNullOrEmpty(lastCollided) && !string.Equals(ViveBridge.CollidedName, lastCollided)) { DisplayBox(lastCollided, false); lastCollided = ViveBridge.CollidedName; } }