- Home /
JS Dynamic Height Camera vibrating =(
Hello guys, I'm doing RTS game and I need dynamic height camera. Okay, it is changing it's height, but! When it stabilize it's vibrating.
var hit : RaycastHit;
var curDistance : float;
if (Physics.Raycast(transform.position, -transform.position, hit)){
curDistance = Vector3.Distance(transform.position, hit.point);
}
if(curDistance != cameraDistance){
var difference = cameraDistance - curDistance;
transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0,difference,0), Time.deltaTime);
}
My idea is to not allow to readjust height if distance is not equals than -1 - 1 (numbers between -1 and 1), but I have no clue how to type it in if. if( difference != Range(-1, 1)) ?
Answer by andrew-lukasik · Jan 21, 2015 at 09:35 AM
First: Instead of using "-transform.position" as direction use "Vector3.down". "-transform.position" will (probably) point down but for sure - not straight down (!)
Second thing: Do not Ever use Time.deltaTime as parameter in Vector3.Lerp because this is not what Lerp needs there (and it caused your camera to vibrate). Use Vector3.MoveTowards instead
transform.position = Vector3.MoveTowards( transform.position , hit.point+Vector3.up*cameraDistance, 0.1f );
Ad. "$$anonymous$$y idea is to not allow to readjust height if distance is not equals than -1 - 1 (numbers between -1 and 1), but I have no clue how to type it in if. if( difference != Range(-1, 1)) ?"
I'm not exactly sure what you mean here. But you're saying something about distance. And you can measure distance between two positions using Vector3.Distance( pos1 , pos2 ). So proper syntax would looks like this:
//if distance is greater than 1:
if( Vector3.Distance( pos1 , pos2 ) > 1f ) {
//then do something here
}
else {
//or if it's not true, do something here
}
ps: You probably wont need to add that anymore.
Your answer
Follow this Question
Related Questions
parented/constrained object transform lags when moving character 0 Answers
Place Gameobject within a specific tranform value 3d 3 Answers
calculating my position from another object 1 Answer
transform position and rotation of instantiated object 1 Answer
How to make a gameobject rotation equal to ray transform? 0 Answers