Move camera with touch or mouse click

I am an absolute noob in unity so it might be an easy one. I want to move a camera over a terrain, i did that with this:
public class CameraEngine : MonoBehaviour {

	Vector3 hit_position = Vector3.zero;
	Vector3 current_position = Vector3.zero;
	Vector3 camera_position = Vector3.zero;
	float z = 0.0f;

	void Start () {

	}

	void Update(){
		if(Input.GetMouseButtonDown(0)){
			hit_position = Input.mousePosition;
			camera_position = transform.position;

		}
		if(Input.GetMouseButton(0)){
			current_position = Input.mousePosition;
			LeftMouseDrag();        
		}
	}

	void LeftMouseDrag(){
		current_position.z = hit_position.z = camera_position.y;

		Vector3 direction = Camera.main.ScreenToWorldPoint(current_position) - Camera.main.ScreenToWorldPoint(hit_position);
		direction = direction*-1;

		Vector3 position = camera_position + direction;

		transform.position = position;
	}

}

It works just fine as long as the terrain is watched from a 90 degrees angle from above but i want my camera to have something like 60-70 degrees angle. This beats me, i have no clue how to do that if you can help me i would be very greatefull.

Did it by adding this line:

		direction = new Vector3 (direction.x, 0, direction.z);

I was dumb, it was easier than i thought…