Mouse Position Jumps when Leaving Game Window
Just to prefix, I am new to unity. I am getting weird behavior when the mouse leaves the bounds of the game. I am making a simple brick breaker game for a course. The paddle at the bottom follows the position of the mouse along the x coordinate (represented by a variable converted to world units) and mathf clamps the coordinates to make sure the sprite doesn't go past the edge of the viewable screen. The game is 16 world units wide and the paddle begins in the center.
Anyways, everything works well most of the time until your mouse leaves the game window. Rather than stopping at the edge of the screen, the paddle instantly jumps back to about 8 in the middle. It only does this on the left side at which point the paddle continues moving left back towards 0. On the right side, the paddle stops correctly at the edge of the screen no matter how far you move. So if you are excitedly trying to catch up with a fast moving ball near the edge and move too far, the paddle jumps back towards the center and you miss it.
Here's the code. The debug output simply shows the mouse approaching 0 then once it leaves the window it jumps back to approximately 8.
using UnityEngine;
using System.Collections;
public class Paddle : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float mousePositionInBlocks = Input.mousePosition.x / Screen.width * 16;
Debug.Log("mouse position" + mousePositionInBlocks);
Vector3 paddlePosition = new Vector3 (0.0f, this.transform.position.y);
paddlePosition.x = Mathf.Clamp(mousePositionInBlocks, 0.95f, 14.95f);
this.transform.position = paddlePosition;
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612091746im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Why do prefabs overlap each other? 0 Answers
How to have units in a formation when moving/arriving at mouse location (RTS Style)? 0 Answers
Destroying a projectile on collision 1 Answer
Can't get object to destroy itself on collision. 0 Answers
I want to instantiate 2 prefab at a fixed interval at 5 min and 10 min. 1 Answer