hi there! I created a script that hopefully will help alot of people with their project. with this script you can create your own 2d paper toss like game. with a few simple steps every one can use this. the script: Spoiler: SwipeControllerV1 Code (CSharp): using UnityEngine; public class SwipeControllerV1 : MonoBehaviour { public GameObject PrefabObj; //The object that will be spawned public float calcSpeed; //A var to calculate the speed public bool isSpawned = false; private float angle; //Calculate angle of the shot private float dist; //Distance of the swipe (to calculate speed) private Vector3 fp; //First touch position private Vector3 lp; //Last touch position private float dragDistance; //minimum distance for a swipe to be registered void Start() { dragDistance = Screen.height * 15 / 100; //dragDistance is 15% height of the screen } void Update() { if (Input.touchCount == 1) // user is touching the screen with a single touch { Touch touch = Input.GetTouch(0); // get the touch if (touch.phase == TouchPhase.Began) //check for the first touch { fp = touch.position; lp = touch.position; } else if (touch.phase == TouchPhase.Moved) // update the last position based on where they moved { lp = touch.position; } else if (touch.phase == TouchPhase.Ended) //check if the finger is removed from the screen { lp = touch.position; //last touch position. Ommitted if you use list //Check if drag distance is greater than 20% of the screen height if (Mathf.Abs(lp.x - fp.x) > dragDistance || Mathf.Abs(lp.y - fp.y) > dragDistance) {//It's a drag dist = Vector3.Distance(fp, lp); //Calculate distance dist = dist * calcSpeed; //Calculate speed based on distance Vector3 pos = lp - fp; //Calculate difference between the 2 locations angle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg; //Use the difference to calculate the angle //Debug.Log("angle: " + angle); //Debug.Log("dist: " + dist); SpawnObject(); //Spawning the object } else { //It's a tap as the drag distance is less than 20% of the screen height Debug.Log("Tap"); } if (isSpawned == true) { //If there already is a ball in the game GameObject Obj = GameObject.FindGameObjectWithTag("Projectile"); //Find the GameObject Destroy(Obj); //Destroying the GameObject isSpawned = false; //Now another one can be spawned } } } } void SpawnObject() { if (isSpawned == false) { GameObject Obj = Instantiate(PrefabObj, this.transform.position, Quaternion.identity) as GameObject; //Instantiate a gameObject on the location of the gameobject where this script is connected to. if (Obj.tag != null) { //Check if the Object Prefab doesn't has a tag Obj.tag = "Projectile"; //Giving the Object the Tag } Vector3 dir = Quaternion.AngleAxis(angle, Vector3.forward) * Vector3.right; //Calculate the direction of where it is going to shoot Obj.GetComponent<Rigidbody>().AddForce(dir * dist); //Give force to the Object to shoot it } } } to use this you need to place this script onto your game object which will shoot (example: a canon) make a prefab out of the projectile and "drag&drop" it in the "prefab Obj" slot. give the object which holds this script the tag "SwipeController". set the calc speed to whatever you like and just play. now you can shoot infinite projectiles they wont go away. to fix this (and also to give them gravity) add this script to the projectile. the script: Spoiler: PrefabObj Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; public class PrefabObj : MonoBehaviour { public float gravPower = 0.0f; private void Start() { GameObject theObject = GameObject.FindGameObjectWithTag("SwipeController"); //find the object with the SwipeController script SwipeController sc = theObject.GetComponent<SwipeController>();//Connect with the SwipeController script sc.isSpawned = true; //Setting the Bool of the SwipeController script } void Update () { Physics.gravity = new Vector3(0, gravPower, 0); //Give gravity to the object } } now the projectile will disapear before a new one can be instantiated. (they disapear when you click or swipe on your screen) give the object which holds this script the tag "Projectile". dont forget the add the tags to the tag list!! if there are any mistakes, problems or bugs please let me know! enjoy your game! PS: this can only be tested on a smartphone! thanks alot for reading, kelvin-w