void OnButtonEvent(WebInterface.ACTION_BUTTON buttonId, InputController_Legacy.EVENT evt, bool useRaycast)
        {
            //TODO(Brian): We should remove this when we get a proper initialization layer
            if (!EnvironmentSettings.RUNNING_TESTS)
            {
                if (Utils.LockedThisFrame())
                {
                    return;
                }

                if (!Utils.isCursorLocked || !renderingEnabled)
                {
                    return;
                }
            }

            if (charCamera == null)
            {
                RetrieveCamera();

                if (charCamera == null)
                {
                    return;
                }
            }

            var pointerEventLayer = PhysicsLayers.physicsCastLayerMaskWithoutCharacter; //Ensure characterController is being filtered
            var globalLayer       = pointerEventLayer & ~PhysicsLayers.physicsCastLayerMask;

            if (evt == InputController_Legacy.EVENT.BUTTON_DOWN)
            {
                ProcessButtonDown(buttonId, useRaycast, pointerEventLayer, globalLayer);
            }
            else if (evt == InputController_Legacy.EVENT.BUTTON_UP)
            {
                ProcessButtonUp(buttonId, useRaycast, pointerEventLayer, globalLayer);
            }
        }
        void OnButtonEvent(WebInterface.ACTION_BUTTON buttonId, InputController_Legacy.EVENT evt, bool useRaycast)
        {
            if (!this.isTesting)
            {
                if (Utils.LockedThisFrame())
                {
                    return;
                }

                if (!Utils.isCursorLocked || renderingIsDisabled)
                {
                    return;
                }
            }

            if (charCamera == null)
            {
                RetrieveCamera();

                if (charCamera == null)
                {
                    return;
                }
            }

            var pointerEventLayer = PhysicsLayers.physicsCastLayerMaskWithoutCharacter; //Ensure characterController is being filtered
            var globalLayer       = pointerEventLayer & ~PhysicsLayers.physicsCastLayerMask;

            if (evt == InputController_Legacy.EVENT.BUTTON_DOWN)
            {
                ProcessButtonDown(buttonId, useRaycast, pointerEventLayer, globalLayer);
            }
            else if (evt == InputController_Legacy.EVENT.BUTTON_UP)
            {
                ProcessButtonUp(buttonId, useRaycast, pointerEventLayer, globalLayer);
            }
        }