- Home /
Drag a rigidbody2D around scene
I have a sprite that a has a rigidbody2D attached to it. I want the player to be able to drag it around scene where ever the mouse or touch input is and the rigidbody physics should apply so the sprite doesnt stay 100% directly under the input at all times.
Sprite example that i want to drag around.
Answer by Saad_Khan · Jun 01, 2015 at 08:33 PM
It has been discussed thoroughly here:
http://forum.unity3d.com/threads/rigidbody2d-dragable-script.212168/
@Saad_khan I tried to implement the c# script and i played around with it but it does not work for some reason
Answer by Wolfdog · Jun 06, 2015 at 03:03 PM
I would add force in the direction of the touch:
// add this to your player. Make sure there is a rigidbody2d attached to it.
private Vector2 direction;
public float force = 1000;
private Rigidbody2D r;
void Start () {
r = transform.GetComponent <Rigidbody2D> ();
}
void Update {
if (Input.touchCount > 0) {
target = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
direction = (target.transform.position - transform.position).normalized;
r.AddForce (direction * Time.deltaTime * force);
}
}
This is untested, but seems right. Let me know if you have problems.
Your answer
Follow this Question
Related Questions
Touch controlled ice puck 0 Answers
Freezing movement on Z axis. 1 Answer
Ragdoll 2D character controller help 0 Answers
Issue with adding force and lerping position? Possible unity bug? 0 Answers
How to negate this force? 2 Answers