Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Stupid Unity scripts : "Smooth Follow" from Standard Assets
// Smooth Follow from Standard Assets
// Converted to C# because I fucking hate UnityScript and it's inexistant C# interoperability
// If you have C# code and you want to edit SmoothFollow's vars ingame, use this instead.
using UnityEngine;
using System.Collections;
public class SmoothFollow : MonoBehaviour {
// The target we are following
public Transform target;
// The distance in the x-z plane to the target
public float distance = 10.0f;
// the height we want the camera to be above the target
public float height = 5.0f;
// How much we
public float heightDamping = 2.0f;
public float rotationDamping = 3.0f;
// Place the script in the Camera-Control group in the component menu
[AddComponentMenu("Camera-Control/Smooth Follow")]
void LateUpdate () {
// Early out if we don't have a target
if (!target) return;
// Calculate the current rotation angles
float wantedRotationAngle = target.eulerAngles.y;
float wantedHeight = target.position.y + height;
float currentRotationAngle = transform.eulerAngles.y;
float currentHeight = transform.position.y;
// Damp the rotation around the y-axis
currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);
// Damp the height
currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);
// Convert the angle into a rotation
var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);
// Set the position of the camera on the x-z plane to:
// distance meters behind the target
transform.position = target.position;
transform.position -= currentRotation * Vector3.forward * distance;
// Set the height of the camera
transform.position = new Vector3(transform.position.x,currentHeight,transform.position.z);
// Always look at the target
transform.LookAt(target);
}
}
@pizishusheng
Copy link

pizishusheng commented Aug 24, 2017

when target rotate, the camera is shaking. why?

@MuhammadAhmadAmeen
Copy link

MuhammadAhmadAmeen commented Aug 17, 2018

Best, Thanks :D

@koningkaas
Copy link

koningkaas commented Oct 24, 2018

Absolute perfection, much appreciated!

@gkagm2
Copy link

gkagm2 commented Apr 13, 2019

Thanks!

@nafis-sadik
Copy link

nafis-sadik commented May 23, 2019

It works fine and with all the comments it's easy to tweak according to your requirements.

@jeffgoin
Copy link

jeffgoin commented Aug 27, 2019

Nicely done. Thanks -- worked better than mine.

@matthiaszarzecki
Copy link

matthiaszarzecki commented Jan 24, 2020

Sweet, thank you! :D I'm updating my old projects from before 2012 and the standard asset scripts not working is making this a lot difficult that it should be, thank you so much! <3

@digimbyte
Copy link

digimbyte commented Nov 22, 2020

no it doesnt dumbass

5 years later, seems like the dumb ass was you.

@AdyStudios
Copy link

AdyStudios commented Sep 26, 2021

Thanks!

@aidswidjaja
Copy link

aidswidjaja commented Oct 2, 2021

no it doesnt dumbass

r/confidentlyincorrect

@LeonieMagnusson
Copy link

LeonieMagnusson commented Jan 19, 2022

this works:) thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment