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.