- Home /
 
               Question by 
               halfbreed201 · Nov 26, 2011 at 12:57 AM · 
                movementcharactercontrollercharacter controllerthird person controller  
              
 
              Problem with Movement Script
I got this code from a YouTube video (or, well, from someone who provided the code) and put it on my Sphere. Here it is:
 var speed : float = 3;
 var rotateSpeed : float = 3;
 
 function Update() {
     var controller : CharacterController = GetComponent( CharacterController );
     transform.Rotate( 0, Input.GetAxis( "Horizontal" ) * rotateSpeed, 0 );
     var forward = transform.TransformDirection( Vector3.forward );
     var curSpeed = speed * Input.GetAxis( "Vertical" );
     controller.SimpleMove( forward * curSpeed );
 }
 
 @script RequireComponent( CharacterController );
 
When I run the game, I do not get any errors. However, if I try to move forward and to the side at the same time, the spheres being moved get separated and it all goes haywire. I got the following code from the internet as a 'Smooth Follow' script:
 // The target we are following
 var target : Transform;
 // The distance in the x-z plane to the target
 var distance = 10.0;
 // the height we want the camera to be above the target
 var height = 5.0;
 // How much we 
 var heightDamping = 2.0;
 var rotationDamping = 3.0;
 
 // Place the script in the Camera-Control group in the component menu
 @script AddComponentMenu("Camera-Control/Smooth Follow")
 
 
 function LateUpdate () {
     // Early out if we don't have a target
     if (!target)
         return;
 
     // Calculate the current rotation angles
     wantedRotationAngle = target.eulerAngles.y;
     wantedHeight = target.position.y + height;
 
     currentRotationAngle = transform.eulerAngles.y;
     currentHeight = transform.position.y;
 
     // Damp the rotation around the y-axis
     currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);
 
     // Damp the height
     currentHeight = Mathf.Lerp (currentHeight, wantedHeight, heightDamping * Time.deltaTime);
 
     // Convert the angle into a rotation
     currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
 
     // Set the position of the camera on the x-z plane to:
     // distance meters behind the target
     transform.position = target.position;
     transform.position -= currentRotation * Vector3.forward * distance;
 
     // Set the height of the camera
     transform.position.y = currentHeight;
 
     // Always look at the target
     transform.LookAt (target);
 }
Any help?
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                