- Home /
Single Camera Lerping between three characters? (code provided)
I have an empty gameobject that has the camera as a child and im simply trying to make the object lerp to the players x positions. I have it storing the position when 1,2,3 is pressed and switching to the corresponding character but I can't seem to make a smooth lerp transition in between. I need to make it so that when the player presses 1-2-3 it lerps to that players location. (and can be done in any order)
Basically a sliding gameobject that will place itself in the desired characters position and then it has a camera parented with an offset.
Or if anyone has a straightforward camera method that will target and offset behind each character on a lerp please feel free to speak up. :)
using UnityEngine; using System.Collections;
public class CameraScript : MonoBehaviour {
 public Vector3 oldCamPos;
 public GameObject player1;
 public GameObject player2;
 public GameObject player3;
 public float smooth;
 public bool omar=false;
 public bool rach=false;
 public bool bran=false;
 void Start()
 {
     Vector3 oldCamPos = new Vector3(player1.transform.position.x, player1.transform.position.y, player1.transform.position.z);
 }
 void Update()
 {
     if (Input.GetKeyDown (KeyCode.Alpha1)) {
         omar = true;
         oldCamPos = new Vector3 (player1.transform.position.x, player1.transform.position.y, player1.transform.position.z);
         CameraSwitch ();
     }
     
         
     if (Input.GetKeyDown (KeyCode.Alpha2)) {
         rach = true;
         oldCamPos = new Vector3 (player2.transform.position.x, player2.transform.position.y, player2.transform.position.z);
         CameraSwitch ();
     }
     
     if (Input.GetKeyDown (KeyCode.Alpha3)) {
         bran = true;
         oldCamPos = new Vector3 (player3.transform.position.x, player3.transform.position.y, player3.transform.position.z);
         CameraSwitch ();
     }
 }
     ///////////////////////////////////////////////////////////////////////////////////////
 void CameraSwitch()
     {
     if (omar) {
         transform.position = Vector3.Lerp (oldCamPos, player1.transform.position, Time.deltaTime * .1f);
         //transform.rotation = Quaternion.Lerp (player1.transform.rotation, player1.transform.rotation, Time.deltaTime * smooth);
         //yield return new WaitForSeconds(1);
         omar = false; 
     }
     if (rach) {
         transform.position = Vector3.Lerp (oldCamPos, player2.transform.position, Time.deltaTime * .1f);
         //transform.rotation = Quaternion.Lerp (player2.transform.rotation, player2.transform.rotation, Time.deltaTime * smooth);
         //yield return new WaitForSeconds(1);
         rach= false;
     }
     if (bran) {
         transform.position = Vector3.Slerp (oldCamPos, player3.transform.position, Time.deltaTime * smooth);
         //transform.rotation = Quaternion.Slerp (player3.transform.rotation, player3.transform.rotation, Time.deltaTime * smooth);
         //yield return new WaitForSeconds(1);
         bran = false; 
     }
     
 }
 
 
}
I'd use a Coroutine like shown here: http://answers.unity3d.com/comments/1235406/view.html
Your answer
 
 
             Follow this Question
Related Questions
MouseOrbit Camera Lerp 1 Answer
Switching Cameras - Confusion with Two Code Samples 2 Answers
Play anim, javascript 1 Answer
Switch to second camera which has all the GUI 3 Answers
Disabling first actor when switching to another camera. 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                