Ejemplo n.º 1
0
 public void SetMousePosition(int x, int y)
 {
     MouseSmoothX.Clear();
     MouseSmoothY.Clear();
     if (SoftwareMouse)
     {
         MousePosition.x = x;
         MousePosition.y = y;
     }
     else
     {
         ProMouse.Instance.SetCursorPosition(x, y);
     }
     mSetMousePositionThisFrame = true;
 }
Ejemplo n.º 2
0
        public void LateUpdate()
        {
            if (mSetMousePositionThisFrame)
            {
                mSetMousePositionThisFrame = false;
                return;
            }
            //see if the mouse is moving this frame
            if (Input.GetAxis("mouse x") != 0f || Input.GetAxis("mouse y") != 0f)
            {
                MouseSmoothX.Clear();
                MouseSmoothY.Clear();
                ControllerDrivenMouseMovement = false;
            }
            else if (Profile.Get.CurrentPreferences.Controls.UseControllerMouse && !SuspendCursorControllerMovement)
            {
                //if it's not moving, our controller drives the mouse
                ControllerDrivenMouseMovement = true;
                if (RawMouseAxisX != 0f || RawMouseAxisY != 0f)
                {
                    int mouseX = 0;
                    int mouseY = 0;
                    if (SoftwareMouse)
                    {
                        mouseX = (int)MousePosition.x + (int)(RawMouseAxisX * ControllerMouseSensitivity * Screen.width);
                        mouseY = (int)MousePosition.y + (int)(RawMouseAxisY * ControllerMouseSensitivity * Screen.height);
                    }
                    else
                    {
                        mouseX = (int)Input.mousePosition.x + (int)(RawMouseAxisX * ControllerMouseSensitivity * Screen.width);
                        mouseY = (int)Input.mousePosition.y + (int)(RawMouseAxisY * ControllerMouseSensitivity * Screen.height);
                    }

                    MouseSmoothX.Add(mouseX);
                    MouseSmoothY.Add(mouseY);

                    if (MouseSmoothX.Count > ControllerMouseSmoothSteps)
                    {
                        MouseSmoothX.RemoveAt(0);
                    }
                    if (MouseSmoothY.Count > ControllerMouseSmoothSteps)
                    {
                        MouseSmoothY.RemoveAt(0);
                    }

                    mouseX = 0;
                    for (int i = 0; i < MouseSmoothX.Count; i++)
                    {
                        mouseX += MouseSmoothX [i];
                    }

                    mouseY = 0;
                    for (int i = 0; i < MouseSmoothY.Count; i++)
                    {
                        mouseY += MouseSmoothY [i];
                    }

                    mouseX = mouseX / MouseSmoothX.Count;
                    mouseY = mouseY / MouseSmoothY.Count;

                    //Debug.Log("Mouse x: " + mouseX.ToString());
                    //Debug.Log("Mouse y: " + mouseY.ToString());

                    if (SoftwareMouse)
                    {
                        //TODO what exactly?
                    }
                    else
                    {
                        ProMouse.Instance.SetCursorPosition(mouseX, mouseY);
                    }
                }
            }
        }