-
-
Save unity3diy/5aa0b098cb06b3ccbe47 to your computer and use it in GitHub Desktop.
using UnityEngine; | |
using System.Collections; | |
public class FollowCamera : MonoBehaviour { | |
public float interpVelocity; | |
public float minDistance; | |
public float followDistance; | |
public GameObject target; | |
public Vector3 offset; | |
Vector3 targetPos; | |
// Use this for initialization | |
void Start () { | |
targetPos = transform.position; | |
} | |
// Update is called once per frame | |
void FixedUpdate () { | |
if (target) | |
{ | |
Vector3 posNoZ = transform.position; | |
posNoZ.z = target.transform.position.z; | |
Vector3 targetDirection = (target.transform.position - posNoZ); | |
interpVelocity = targetDirection.magnitude * 5f; | |
targetPos = transform.position + (targetDirection.normalized * interpVelocity * Time.deltaTime); | |
transform.position = Vector3.Lerp( transform.position, targetPos + offset, 0.25f); | |
} | |
} | |
} | |
// Original post with image here > http://unity3diy.blogspot.com/2015/02/unity-2d-camera-follow-script.html | |
NickDeGrood try to replace "FixedUpdate" by "Update", answer if it worked ;)
Lortedo29 is incorrect for the camera movement, but correct in the respect that if you are not applying physics then you should be using Update instead of FixedUpdate.
@NickDeGrood
create a public float speed = 15f; at the top
then replace
interpVelocity = targetDirection.magnitude * 5f;
with
interpVelocity = targetDirection.magnitude * speed;
EDIT:
Here is another gist of this... cleaned up, added speed, changed to update, fixed offset
This have a bug or didn't work for me and i think bug is where it says: targetPos + offset
and i have a solution:
targetPos = target.TransformPoint(offset);
this can replace with all lines above Lerp
function.
Nice, but minDistance isn't used? :) I'm trying to make it predict where the player is going.. but not sure if minDistance is for that :)
thanks, this works great!
TYSMMM ive been on this for like 10 hours
that saved me a LOT
thanks man, awesome work
My opinion is that you do not have to pull the player to the camera because the movement is affected by the camera follow so do not drag the character to the camera
Thank you so much for this!
What do you have to change in the settings like Offset etc.?
thank you random stranger i am too shit at coding you really saved me <3<3<3
lots of love from Fiona
Is there a way to increase the follow speed? The object I'm tracking is following too fast, and the camera can't keep up with it.