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 current_position =;
	Vector3 camera_position =;
	float z = 0.0f;

	void Start () {


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

			current_position = Input.mousePosition;

	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…