private void PerformeGesture(HandState hs, GestureMover gm) { switch (hs) { case HandState.NotTracked: gm.NotTracked(); break; case HandState.Closed: gm.CloseHand(); break; case HandState.Open: gm.OpenHand(); break; case HandState.Lasso: gm.Lasso(); break; } }
void Awake() { Controller = gameObject.GetComponent <CharacterController> (); if (Controller == null) { Debug.LogWarning("OVRPlayerController: No CharacterController attached."); } // We use OVRCameraRig to set rotations to cameras, // and to be influenced by rotation OVRCameraRig[] CameraControllers; CameraControllers = gameObject.GetComponentsInChildren <OVRCameraRig> (); if (CameraControllers.Length == 0) { Debug.LogWarning("OVRPlayerController: No OVRCameraRig attached."); } else if (CameraControllers.Length > 1) { Debug.LogWarning("OVRPlayerController: More then 1 OVRCameraRig attached."); } else { CameraController = CameraControllers [0]; } YRotation = transform.rotation.eulerAngles.y; Physics.IgnoreLayerCollision(0, 8); //ignores collisions between the player and all objects menu = gameObject.GetComponent <Menu> (); source = GetComponent <UnityEngine.AudioSource> (); addAtoms = gameObject.GetComponent <AddAtoms> (); addAtoms.Init(); // load the file addAtoms.parsePDB(); //populate the scene Quaternion ort = (HmdRotatesY) ? CameraController.centerEyeAnchor.rotation : transform.rotation; addAtoms.setPosition(ort * Vector3.forward * 30 + this.transform.position); //centers the atoms infront of the user //initiate the kinect _Sensor = KinectSensor.GetDefault(); if (_Sensor != null) { _Mapper = _Sensor.CoordinateMapper; _Reader = _Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Body | FrameSourceTypes.Depth); rightHand = transform.FindChild("RightHand").gameObject; leftHand = transform.FindChild("LeftHand").gameObject; rightHandMover = rightHand.GetComponent <GestureMover> (); leftHandMover = leftHand.GetComponent <GestureMover> (); var frameDesc = _Sensor.DepthFrameSource.FrameDescription; depthFrameWidth = frameDesc.Width; if (!_Sensor.IsOpen) { _Sensor.Open(); } _gestureDatabase = VisualGestureBuilderDatabase.Create(Application.streamingAssetsPath + "/Menu2.gbd"); _gestureFrameSource = VisualGestureBuilderFrameSource.Create(_Sensor, 0); foreach (var gesture in _gestureDatabase.AvailableGestures) { _gestureFrameSource.AddGesture(gesture); if (gesture.Name == "Menu2") { _menu = gesture; } } _gestureFrameReader = _gestureFrameSource.OpenReader(); _gestureFrameReader.IsPaused = true; } }