Ejemplo n.º 1
0
        private void updateTyping()
        {
            leftKey1Down  = Key1.GetState(SteamVR_Input_Sources.LeftHand);
            leftKey1Touch = Key1Touch.GetState(SteamVR_Input_Sources.LeftHand);
            leftKey1      = leftKey1 ?  leftKey1 : leftKey1Down;

            if (leftKey1Down && (Time.time - Key1.GetTimeLastChanged(SteamVR_Input_Sources.LeftHand)) > 0.3f)
            {
                leftKey1Shift = leftKey1Shift ? leftKey1Shift : Key1.GetState(SteamVR_Input_Sources.LeftHand);
            }

            if (!leftKey1Down && leftKey1)
            {
                if (currentCord != null)
                {
                    typedKey = currentCord.getChar(0, leftKey1Shift);
                }
                leftKey1Shift = false;
                leftKey1      = false;
            }

            leftKey2Down  = Key2.GetState(SteamVR_Input_Sources.LeftHand);
            leftKey2Touch = Key2Touch.GetState(SteamVR_Input_Sources.LeftHand);
            leftKey2      = leftKey2 ?  leftKey2 : leftKey2Down;

            if (leftKey2Down && (Time.time - Key2.GetTimeLastChanged(SteamVR_Input_Sources.LeftHand)) > 0.3f)
            {
                leftKey2Shift = leftKey2Shift ? leftKey2Shift : Key2.GetState(SteamVR_Input_Sources.LeftHand);
            }

            if (!leftKey2Down && leftKey2)
            {
                if (currentCord != null)
                {
                    typedKey = currentCord.getChar(1, leftKey2Shift);
                }
                leftKey2Shift = false;
                leftKey2      = false;
            }

            rightKey1Down  = Key2.GetState(SteamVR_Input_Sources.RightHand);
            rightKey1Touch = Key2Touch.GetState(SteamVR_Input_Sources.RightHand);
            rightKey1      = rightKey1 ?  rightKey1 : rightKey1Down;

            if (rightKey1Down && (Time.time - Key2.GetTimeLastChanged(SteamVR_Input_Sources.RightHand)) > 0.3f)
            {
                rightKey1Shift = rightKey1Shift ? rightKey1Shift : Key2.GetState(SteamVR_Input_Sources.RightHand);
            }

            if (!rightKey1Down && rightKey1)
            {
                if (currentCord != null)
                {
                    typedKey = currentCord.getChar(2, rightKey1Shift);
                }
                rightKey1Shift = false;
                rightKey1      = false;
            }

            rightKey2Down  = Key1.GetState(SteamVR_Input_Sources.RightHand);
            rightKey2Touch = Key1Touch.GetState(SteamVR_Input_Sources.RightHand);
            rightKey2      = rightKey2 ?  rightKey2 : rightKey2Down;

            if (rightKey2Down && (Time.time - Key1.GetTimeLastChanged(SteamVR_Input_Sources.RightHand)) > 0.3f)
            {
                rightKey2Shift = rightKey2Shift ? rightKey2Shift : Key1.GetState(SteamVR_Input_Sources.RightHand);
            }

            if (!rightKey2Down && rightKey2)
            {
                if (currentCord != null)
                {
                    typedKey = currentCord.getChar(3, rightKey2Shift);
                }
                rightKey2Shift = false;
                rightKey2      = false;
            }

            if (typedKey != '\0')
            {
                lastTypedKey = typedKey;
                output.text += typedKey;
            }

            typedKey = '\0';
        }