EARTH CALLING ANSWER!!!!

I am making a 2d game. I have an object, that I want to move by swiping. But I want to move in the direction of the swipe (not to the swipe).

I have a script but it doesn’t work, because I don’t know how, in javascript, to calculate the overall direction of a swipe and make my player move in that direction.

What is the best way to move parallel to a swipe’s direction in 2D space?

Thanks for any answers!

Take the starting point and ending point of the swipe and make it a vector. Then you can use it to move your object. To make the vector simply get the differences between each x,y and z and store them in a Vector3.

@fafase: Thanks for the suggestion, this we tried a while ago and for some reason didn't work. Cheers for the help though!

1 Answer

1

We solved it!

Here is the script for anyone who is interested!

var myTransform : Transform;

var mousePositionStart : Vector3;
var mousePositionEnd : Vector3;

var direction : Vector3;

var move : boolean = false;

var speed : float = 500;

function Update () {
      
   myTransform.position.z = - 0.5;
         
   rigidbody.velocity = direction * Time.deltaTime * speed;
               
if (Input.GetMouseButtonDown(0)) {

   mousePositionStart = Input.mousePosition;
         
}

if (Input.GetMouseButtonUp(0)) {

   mousePositionEnd = Input.mousePosition;
               
if (mousePositionEnd.sqrMagnitude >= mousePositionStart.sqrMagnitude || 
    mousePositionEnd.sqrMagnitude <= mousePositionStart.sqrMagnitude) {
                   
   move = true;
                  
}

if (move == true) {
      
   direction = vector3(mousePositionStart, mousePositionEnd);                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
   move = false;

}

}

}

function vector3 (from : Vector3, to : Vector3) {
   
   return (to - from).normalized;  

}

Thank you, unity forum!!

http://forum.unity3d.com/threads/30632-Vector3.Direction