Directional Shot (!)

Hello !!
I need help.
I need to do in my game that the shot go where I touch on the screen of my cell phone.
I searched everywhere, but I can not do it. With Ray?? :confused:

My Script Shot:

	public void shootingFunction(){
		if(Input.GetMouseButtonDown(0) && Time.time > nextFire && isDead == false)
			MyPlayOneShot (lanzaShuriken);
			anim.SetTrigger ("LanzaShuriken");
			nextFire = Time.time + fireRate;
			Instantiate(shot, shotSpawn.position, shotSpawn.rotation);

This script call ‘shot’, gameObject with the next Script:

	public float speed;
	public Rigidbody2D bullet;

	void OnEnable()
		bullet.velocity = transform.up * speed;

I tried to do a Ray method. But I did not know how to call it from my other Script ‘shot’.


On mobile you should use Input Touch instead of GetMouseDown.
Then use Camera.ScreenPointToRay passing touch position as an argument.
Here is a simple example:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
    public class TapBullet : MonoBehaviour {
        [Range(0.5f, 50f)]
        public float bulletSpeed = 5f;
        // Update is called once per frame
        void Update () {
            if (Input.GetMouseButtonDown(0))
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                // if there is at least one touch detected this frame in its begin phase
                if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
                    Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
        // on tap handler
        private void CreateBullet(Ray ray)
            //create sphere primitive
            GameObject bullet = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            // set scale to 0.2m
            bullet.transform.localScale = / 5f;
            // set initial position to ray origin
            bullet.transform.position = ray.origin;
            // add rigidbody to the bullet gameobject
            Rigidbody rb = bullet.AddComponent<Rigidbody>();
            // disable gravity for bullet
            rb.useGravity = false;
            // set velocity vector same as ray direction
            rb.velocity = ray.direction * bulletSpeed;
            // destroy bullet after 5 seconds
            Destroy(bullet, 5f);