- Home /
How to translate a camera forward and back(basically a zoom) according to the distance of two objects?
So I have two objects within my scene(two characters) at a set distance between one another. This is a 2D fighting game, and depending on the distance between the two objects the camera will either zoom in to see the combat or zoom out to see them .... do whatever they want. I have no idea how to implement this concept and so far I have the code that calculates the distance between the two objects.
Thanks <3
var distance = Vector3.Distance(object1.transform.position, object2.transform.position);
Answer by Jeston 1 · Nov 10, 2010 at 08:38 PM
Translate the camera away from a starting point?
so every frame do something like:
CameraObject.transform.position = new Vector3( 0, 0, startingZcoord + k*distance);
where k is the amount of influence it picks up from distance.
Or if your camera has some rotation at an angle, transform it by its back vector:
Vector3 moveDir = k transform.TransformDirection(new Vector3( 0, 0, -1)); CameraObject.transform.position += moveDir Time.deltaTime;
Also note that real zoom is defined by changing a camera's FOV, and not just moving it
Your answer
Follow this Question
Related Questions
Camera distance from mesh not center 1 Answer
Make OnMouseButtonDown do whole task and not just when pressed 1 Answer
how do i slowly translate a object to a other objects position 2 Answers
How to find out magnitude of translation 1 Answer
How can I move an object a certain distance, once? 2 Answers