Shooting with touch

Hi! I am developing a 3d shooter and i was trying to shoot my enemy using rigidbody and then addForce. It all works great when i use the mouse but i wanted to use small taps to shoot bullets. I am using the following code to catch the touch input:

My goal is to shoot the area that i am touching (without moving the cam)

// touch,tap code

float point;

foreach(Touch touch in Input.touches){
player = new Vector3(GameObject.Find("Player").transform.position.x,GameObject.Find("Player").transform.position.y,GameObject.Find("Player").transform.position.z);
Plane playerPlane = new Plane(player,Camera.main.transform.forward);//VER ESTA LINHA
Ray camRay = Camera.main.ScreenPointToRay(touch.position);
playerPlane.Raycast(camRay,out point);
Vector3 position = camRay.GetPoint(point);
Ray shotRay = new Ray(GameObject.Find("Player").transform.position, (position - GameObject.Find("Player").transform.position));
		Instantiate();//function that does the shooting
		canShoot = false;

//shooting code

Transform crate = Instantiate(cratePrefab, transform.position, Quaternion.identity) as Transform;

	Physics.IgnoreCollision(crate.collider, collider);

crate.rigidbody.AddForce(transform.forward * 5000);

How can i use the “ray” with the function i have to shoot bullets?

I agree with syclamoth about caching the player object. That aside…

I don’t see why you are using a Plane here. This looks more complicated than it has to be. Is this a 3rd person view or a 1st person view?