- Home /
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.
Answer by unity_rWx1Esu4CKtdig · Sep 15, 2017 at 09:10 PM
Did it by adding this line:
direction = new Vector3 (direction.x, 0, direction.z);
I was dumb, it was easier than i thought...
Your answer
![](https://koobas.hobune.stream/wayback/20220612134929im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Please Help !, camera rotation 1 Answer
How do I create a camera script like one that would be in a racing game? 0 Answers
Scale Z Axis Movement According to Camera Tilt (Drag Control Camera) 0 Answers
3rd Person Camera inversion 2 Answers
How to stop the player rotation after i stop the camera? 1 Answer