It's x-axis object when user move the mouse pointer and then click. Object falls on the ground at the same mouse pointer position. But when object is falling if user move the position of pointer it also affect the object falling position. I only want object falls on that position where user click and does not control the object when falling on the ground. Code:
public class Ball : MonoBehaviour {
Rigidbody2D body;
float mousePosInBlocks;
void Start () {
body = GetComponent<Rigidbody2D> ();
body.isKinematic = true;
}
void Update () {
if (Input.GetMouseButtonDown (0)) {
body.isKinematic = false;
}
Vector3 ballPos = new Vector3 (0f, this.transform.position.y, 0f);
mousePosInBlocks = Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
//not go outside from border
ballPos.x = Mathf.Clamp (mousePosInBlocks, -2.40f, 2.40f);
body.position = ballPos;
}
}
Folloup from my comment. Just exit out of the function after the mouse click appeared. There really isn't more to it than that.
public class Ball : MonoBehaviour {
Rigidbody2D body;
float mousePosInBlocks;
bool wasDropped = false;
void Start () {
body = GetComponent<Rigidbody2D> ();
body.isKinematic = true;
}
void Update () {
//Don't do anything after the ball is dropped.
if(wasDropped)
return;
if (Input.GetMouseButtonDown (0)) {
body.isKinematic = false;
wasDropped = true;
}
Vector3 ballPos = new Vector3 (0f, this.transform.position.y, 0f);
mousePosInBlocks = Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
//not go outside from border
ballPos.x = Mathf.Clamp (mousePosInBlocks, -2.40f, 2.40f);
body.position = ballPos;
}
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments