# Extra Rotation on Camera

Discussion in 'Editor & General Support' started by pagan, Jun 6, 2011.

1. ### pagan

Joined:
Nov 8, 2010
Posts:
28
Right I am trying to do this since few days and I haven't succed yet:
basically I have a camera which rotates around an object when using the keys left,right,up and down(also zooms).
I am using this script:

Code (csharp):
1. var target : Transform;
2. var edgeBorder = 0.1;
3. var horizontalSpeed = 360.0;
4. var verticalSpeed = 120.0;
5. var minVertical = 20.0;
6. var maxVertical = 85.0;
7. var minDistance = 1; //Min distance of the camera from the target
8. var maxDistance = 20;
9.
10. private var x = 0.0;
11. private var y = 0.0;
12. private var distance = 0.0;
13.
14. function Start(){
15.     x = transform.eulerAngles.y;
16.     y = transform.eulerAngles.x;
17.     distance = (transform.position - target.position).magnitude;
18. }
19.
20. function LateUpdate(){
21.
22.    //Zooming with mouse
23.    distance += Input.GetAxis("Mouse ScrollWheel")*distance;
24.    distance = Mathf.Clamp(distance, minDistance, maxDistance);
25.
26.     var dt = Time.deltaTime;
27.     x -= Input.GetAxis("Horizontal") * horizontalSpeed * dt;
28.     y += Input.GetAxis("Vertical") * verticalSpeed * dt;
29.
30.     y = ClampAngle(y, minVertical, maxVertical);
31.
32.     var rotation = Quaternion.Euler(y, x, 0);
33.     var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
34.
35.     transform.rotation = rotation;
36.     transform.position = position;
37.
38. }
39.
40. static function ClampAngle (angle : float, min : float, max : float) {
41.     if (angle < -360)
42.         angle += 360;
43.     if (angle > 360)
44.         angle -= 360;
45.     return Mathf.Clamp (angle, min, max);
46. }
47.
48.
49. function buttonRightRotation(){
50. transform.Rotate(Vector3.up * 45);
51. print("Doooone");
52.
53. }
I have added the function buttonRightRotation() which I call from another script attached to a gui botton:

Code (csharp):
1. var rotateCameraZoom : RotateCameraZoom;
2. var target : Transform;
3. function OnMouseDown () {
4.  rotateCameraZoom.buttonRightRotation();
5. }
This is in order to have a extra interface control on rotation(eventually I will have for bottons:left, right, up and down)

At the moment this does not produce anything, it gives me no errors.
Does anyone knows the solution for this?

2. ### pagan

Joined:
Nov 8, 2010
Posts:
28
OK I found out that it only works if I switch off the first script
In brief how do I modify the scripts so that I perform the same action of the arrow keyboard keys also when I press the gui button?

Last edited: Jun 6, 2011