- Home /
how make this script follow a target.
Hi and good night or day :) Please i need to know how I can make this script follow a target. /* Touch Orbit Programmed by: Randal J. Phillips (Caliber Mengsk)
 Original Creation Date: 12/16/2011
 Last Updated:                   12/16/2011
  
 Desctiption:
         Simple orbit by one touch and drag, as well as pinch to zoom with two fingers.
  
 */
  var target : Transform;
 var x:float;
 var y:float;
  
 var xSpeed:float;
 var ySpeed:float;
  
 var pinchSpeed:float;
  
 var distance:float = 10;
  
 var minimumDistance:float = 5;
 var maximumDistance:float = 100;
  
 private var touch:Touch;
 private var lastDist:float = 0;
 private var curDist:float = 0;
  
 private var gameCamera:Camera;
  
  
 function Start ()
 
  {
  gameCamera = Camera.mainCamera;
  
 
     }
 
 
 
  
 function Update ()
 {
         if (Input.GetKeyDown(KeyCode.Escape))
         {
                 Application.Quit();
         }
        
         if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
         {
                 //One finger touch does orbit
                 touch = Input.GetTouch(0);
                 x += touch.deltaPosition.x * xSpeed * 0.02;
                 y -= touch.deltaPosition.y * ySpeed * 0.02;
         }
         if (Input.touchCount > 1 && (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved))
         {
                 //Two finger touch does pinch to zoom
                 var touch1 = Input.GetTouch(0);
                 var touch2 = Input.GetTouch(1);
                 curDist = Vector2.Distance(touch1.position, touch2.position);
                 if(curDist > lastDist)
                 {
                         distance += Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
                 }else{
                         distance -= Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
                 }
  
                 lastDist = curDist;
         }
        
         if(distance <= minimumDistance)
         {
                 //minimum camera distance
                 distance = minimumDistance;
         }
        
         if(distance >= maximumDistance)
         {
                 //maximum camera distance
                 distance = maximumDistance;
         }
        
        
         //Sets rotation
         var rotation = Quaternion.Euler(y, x, 0);
        
         //Sets zoom
         var position = rotation * Vector3(0.0, 0.0, -distance) + Vector3(0,0,0);
        
         //Applies rotation and position
         transform.rotation = rotation;
         transform.position = position;
 }
  
 function OnGUI()
 {
         //Simple output to display the distance from the center
         GUI.Label(Rect(0,0,Screen.width, Screen.height),distance.ToString());
 }
               Comment
              
 
               
              Answer by nastasache · Mar 05, 2014 at 02:57 PM
I am using something like that (c#), I think it's easy to adapt:
 GameObject target;
 float rotateSpeed = 5.0f;
 float moveSpeed = 5.0f;
 
 void Update() {
   // Rotate to the target
   Quaternion rotation = Quaternion.LookRotation(target.transform.position - transform.position);
   transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotateSpeed);
   // Then move forward
   transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed);
 }
Your answer
 
 
             Follow this Question
Related Questions
How to do a plane follower? 3 Answers
Camera rotation around player while following. 6 Answers
player following touch position 0 Answers
Keeping camera stay put in the y position 2 Answers
Control the camera with a half of the touch screen 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                