- Home /
 
Help with this error: Operator '*' cannot be used with a left hand side of type 'Object' and a right hand side of type 'UnityEngine.Vector3'.
Getting this error on the scripting for my camera that follows my plane around. Error is "Operator '*' cannot be used with a left hand side of type 'Object' and a right hand side of type 'UnityEngine.Vector3'." This has been working fine for months but today it's decided not to work.
Any help?
Script:
 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;
 var currentHeight;
 var wantedHeight;
 var currentRotationAngle;
 var wantedRotationAngle;
 var currentRotation; 
 
 
 // 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);
 }
 
              Try defining the type of your variables ins$$anonymous$$d of using dynamic typing.
And how do I do that? I'm very new to coding and this isn't my script.
It looks like your variable types are the following:
     var distance:float = 10.0;
     var height:float = 5.0;
     var heightDamping:float = 2.0;
     var rotationDamping:float = 3.0;
     var currentHeight:float;
     var wantedHeight:float;
     var currentRotationAngle:float;
     var wantedRotationAngle:float;
     var currentRotation:Vector3; 
 
                 Ok changed then and getting new errors:
BCE0022: Cannot convert 'UnityEngine.Quaternion' to 'UnityEngine.Vector3'.
and
BCE0051: Operator '*' cannot be used with a left hand side of type 'UnityEngine.Vector3' and a right hand side of type 'UnityEngine.Vector3'.
Oh, whoops. currentRotation is a Quaternion. var currentRotation:Quaternion;
Answer by OrbitSoft · Dec 30, 2013 at 03:36 PM
Maybe because you declared some variables but you didn't declare them as floats or ints so its giving you this error, they need to be numbers and not just variables:
 var currentHeight : float;
 
               Try this for the last ones where you didn't declare their type
Your answer