コード例 #1
0
ファイル: InputManager.cs プロジェクト: Mufifnman/5P
    private void UpdateUnityInput()
    {
        UpdateTrackedControllers();

        // Motion
        foreach (uint id in devices.Keys)
        {
            var nodeType = id.GetNodeType();
            var position = InputTracking.GetLocalPosition(nodeType);
            var rotation = InputTracking.GetLocalRotation(nodeType);

            XRNodeState nodeState;
            if (Throwing.TryGetNodeState(nodeType, out nodeState))
            {
                Vector3 controllerVelocity;
                nodeState.TryGetVelocity(out controllerVelocity);

                LastVelocity[id]  = controllerVelocity;
                LastPositions[id] = position;
            }

            SetTransform(devices[id], position, rotation);
        }

        if (CanThrow)
        {
            // Create new
            if (Input.GetButtonDown("MotionController-Select-Left"))
            {
                this.CreateNew(NodeExtensions.LEFT_ID);
            }
            if (Input.GetButtonDown("MotionController-Select-Right"))
            {
                this.CreateNew(NodeExtensions.RIGHT_ID);
            }
            if (Input.GetAxis("MotionController-GraspedAmmount-Left") > GripSensitivity && lastGripLeft <= GripSensitivity)
            {
                this.CreateNew(NodeExtensions.LEFT_ID);
            }
            if (Input.GetAxis("MotionController-GraspedAmmount-Right") > GripSensitivity && lastGripRight <= GripSensitivity)
            {
                this.CreateNew(NodeExtensions.RIGHT_ID);
            }
        }

        // Swap
        if (Input.GetButtonDown("MotionController-Menu-Left"))
        {
            this.TrySwitchHeldObject(NodeExtensions.LEFT_ID);
        }
        if (Input.GetButtonDown("MotionController-Menu-Right"))
        {
            this.TrySwitchHeldObject(NodeExtensions.RIGHT_ID);
        }
        if (Input.GetButtonDown("MotionController-TouchpadPressed-Left"))
        {
            this.TrySwitchHeldObject(NodeExtensions.LEFT_ID);
        }
        if (Input.GetButtonDown("MotionController-TouchpadPressed-Right"))
        {
            this.TrySwitchHeldObject(NodeExtensions.RIGHT_ID);
        }

        if (CanThrow)
        {
            // Throw
            if (Input.GetButtonUp("MotionController-Select-Left"))
            {
                this.TryThrow(XRNode.LeftHand);
            }
            if (Input.GetButtonUp("MotionController-Select-Right"))
            {
                this.TryThrow(XRNode.RightHand);
            }
            if (Input.GetAxis("MotionController-GraspedAmmount-Left") <= GripSensitivity && lastGripLeft > GripSensitivity)
            {
                this.TryThrow(XRNode.LeftHand);
            }
            if (Input.GetAxis("MotionController-GraspedAmmount-Right") <= GripSensitivity && lastGripRight > GripSensitivity)
            {
                this.TryThrow(XRNode.RightHand);
            }
        }

        lastGripLeft  = Input.GetAxis("MotionController-GraspedAmmount-Left");
        lastGripRight = Input.GetAxis("MotionController-GraspedAmmount-Right");
    }