- Home /
[Solved] How to move the camera in the forward axis
Hi, im working in a multitarget tracking system for my camera, the camera is looking 60 degrees down, and then i want to move the camera along the blue axis like you do in the editor if you drag the blue arrow, with this i achieve the camera zooming in and out, but i want to do this by code, using the distance between the 2 players as the value to determine how far back the camera must be along the blue axis.
here are 2 pictures to help ilustrate
zoom in when the players are close
zoom out as the players separate
Answer by LunaTrap · Aug 21, 2016 at 04:36 AM
I found out, it was very simple, take into account that i use local position because the camera is mounted on a rig object, the rig is what moves, not the camera itself.
private void Update()
{
Vector3 averagepositionBetweenTargets = new Vector3();
averagepositionBetweenTargets += (targetA.position + targetB.position) / 2;
averagepositionBetweenTargets.y = 0f;
desiredCameraPosition = averagepositionBetweenTargets;
distanceBetweenTargets = Vector3.Distance(targetA.position, targetB.position);
Vector3 newCameraForward = riggedCamera.transform.forward * distanceBetweenTargets;
riggedCamera.transform.localPosition = -newCameraForward;
}
private void FixedUpdate()
{
transform.position = desiredCameraPosition;
}
Your answer
Follow this Question
Related Questions
How to change the direction of the RayCast? 2 Answers
SmoothFollow script facing forward 1 Answer
rotateAround pivots at unexpected point 1 Answer
Smooth camera script looking at left hand side of character. 0 Answers
I'm clueless about how to make my script change its position based on how close it is to the wall.. 0 Answers