- Home /
2d camera movement with Lerp problem
Hi guys, I'm having difficulties using the Lerp function to do as I wish. Perhaps anyone knows what to do. It should be a somple task, I'm doing a 2d platform game and the camera starts centered at the player position. As soon as the player moves a little further than the camera center (the value of the extra is stored in "vikelsepos") I want the camera to smoothly position itself a little bit in front of the player and then follow the player from this in-front position until something else happens. This is where I run into trouble. No matter how I manipulate the in parameters for Lerp the camera still lags behind the player or at best centeres around the player but never in front of the player like I want it to. I guess it has something to do with that the interpolation that the Lerp function computes won't let the values of "targetpos" get large enough, but I'm not sure. Or should I try something other than Lerp for this to happen?
using UnityEngine;
using System.Collections;
public class Kameraflytt : MonoBehaviour
{
GameObject Spelaren;
float vikelseposx = 1f;
float targetposx;
// Use this for initialization
void Start ()
{
Spelaren = GameObject.Find ("Spelaren");
}
// Update is called once per frame
void FixedUpdate ()
{
if (Spelaren.transform.position.x - transform.position.x > vikelseposx) {
targetposx = Mathf.Lerp (transform.position.x, Spelaren.transform.position.x, 0.5f);
transform.position = new Vector3 (targetposx, 4f, -1);
}
}
}
Your answer
Follow this Question
Related Questions
Why is 2d camera not smooth at 30 FPS 0 Answers
Pan the camera in 2d while mouse being dragged down at any orthographic size? 0 Answers
Position Gui Text Universally 1 Answer
How to move a camera only using the arrow keys? 7 Answers
Diagonal camera limit 0 Answers