- Home /
Control the camera with a half of the touch screen
hi friends
whit this script i can control the camera. but I want to control it with only half of the screen. please help me :)
 var target : Transform;
 var distance = 10.0;
 
 
 var xSpeed = 250.0;
 var ySpeed = 120.0;
 
 
 private var x = 0.0;
 private var y = 0.0;
 
 var xsign =1;
 
 @script AddComponentMenu("Camera-Control/Mouse Orbit")
 
 function Update () {
 var angles = transform.eulerAngles;
 x = angles.y;
 y = angles.x;
 
 var rotation = Quaternion.Euler(y, x, 0);
 var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
 
 transform.rotation = rotation;
 transform.position = position;
 
 
 }
 
 function LateUpdate () {
 
 
 //get the rotationsigns
 
 var forward = transform.TransformDirection(Vector3.up);
 var forward2 = target.transform.TransformDirection(Vector3.up);
 if (Vector3.Dot(forward,forward2) < 0)
 xsign = -1; 
 else
 xsign =1;
 
 
 for (var touch : Touch in Input.touches) {
 if (touch.phase == TouchPhase.Moved) {
 x += xsign * touch.deltaPosition.x * xSpeed *0.02;
 y -= touch.deltaPosition.y * ySpeed *0.02;
 
 
 
 var rotation = Quaternion.Euler(y, x, 0);
 var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
 
 transform.rotation = rotation;
 transform.position = position;
 }
 }
 }
 
 
 
 ///// For pinch zoom. Assign this to the parent object
 
 //#pragma strict
 
 
 
 public var scaleFactor: float = 10; 
 public var maxZoom : float = 20; 
 
 function zoom(){
 
 if ( Input.touchCount == 2 ){ 
 
 var touch1 : Touch = Input.GetTouch( 0 ); 
 var touch2 : Touch = Input.GetTouch( 1 ); 
 
 if ( touch1.position.y < touch2.position.y ) {
 transform.localScale.x -= ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor; 
 transform.localScale.y -= ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor; 
 transform.localScale.z -= ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor;
 
 }
 if ( touch1.position.y > touch2.position.y) {
 transform.localScale.x += ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor; 
 transform.localScale.y += ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor; 
 transform.localScale.z += ( touch1.deltaPosition.x - touch2.deltaPosition.x ) / scaleFactor; 
 }
 
 if(transform.localScale.x >= maxZoom)
 transform.localScale.x = maxZoom;
 if(transform.localScale.y >= maxZoom)
 transform.localScale.y = maxZoom;
 if(transform.localScale.z >= maxZoom)
 transform.localScale.z = maxZoom;
 if(transform.localScale.x <= 0.4)
 transform.localScale.x = 0.4;
 if(transform.localScale.y <= 0.4)
 transform.localScale.y = 0.4;
 if(transform.localScale.z <= 0.4)
 transform.localScale.z = 0.4;
 } 
 
 
 }
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
How do you map touch to one of the input axes? 1 Answer
rotate camera in android unity 1 Answer
Phone camera autofocus 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                