- Home /
Changing camera target smoothly at runtime?
I have a scene. In that scene, first the camera is targeted on a car and it follows it. The car move automatically across the screen for 2-3 seconds. When it stops my playable character comes out of the car which is basically just enabling and disabling of character. At that point I change the camera target to player so it can follow the player instead of the car which just goes out of screen on its own. While the camera changes its target, there is jerk like motion when the camera positions itself on the player. How can I make it smoother? I've seen smoothdamping and lerping but I can't get my head around it. I've tried it but it doesn't work. Camera is not child of car or player at any point. It has camera follow script attached to it.
Answer by sandro_lord · Dec 14, 2018 at 02:49 PM
i am new but i think i can help you a bit. i use this script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class smoothcamera : MonoBehaviour
{
public GameObject target;
float z = -1;
float x = 0;
float y = 0;
float tx;
float ty;
void Update()
{
x = GetComponent<Transform>().position.x;
y = GetComponent<Transform>().position.y;
tx = target.GetComponent<Transform>().position.x;
ty = target.GetComponent<Transform>().position.y;
if (ty > y)
{
y = y + 0.2f;
}
if (tx > x)
{
x = x + 0.2f;
}
if (ty < y)
{
y = y - 0.2f;
}
if (tx < x)
{
x = x - 0.2f;
}
transform.position = new Vector3(x, y, z);
}
public void settarget(GameObject target)
{
this.target = target;
}
}
and then just set the target with
cam.settarget(somegameobject);
in which script i make a smoothcamera variable
public smoothcamera cam;
hope it helps.
Your answer
Follow this Question
Related Questions
Follow camera in 2d game 2 Answers
Unity 2D Fighting Game Camera 0 Answers
Help with a 2d camera Controller 1 Answer
Camera following player gameObject,Camera follows player, with script attached. 1 Answer