using UnityEngine; using System.Collections; public class CameraController : MonoBehaviour { public float xMargin = 1f; public float yMargin = 1f; public float xSmooth = 2f; public float ySmooth = 2f; public float maxY = 5; public float minY = -5; private float targetX; private float targetY; private Transform player; void Awake() { player = GameObject.Find("Character").transform; } void FixedUpdate() { TrackPlayer(); } bool CheckXMargin() { return Mathf.Abs(transform.position.x - player.position.x) > xMargin; } bool CheckYMargin() { return Mathf.Abs(transform.position.y - player.position.y) > yMargin; } void TrackPlayer() { targetX = transform.position.x; targetY = transform.position.y; if(CheckXMargin()) { targetX = Mathf.Lerp(transform.position.x, player.position.x, xSmooth * Time.deltaTime); } if(CheckYMargin()) { targetY = Mathf.Lerp(transform.position.y, player.position.y, ySmooth * Time.deltaTime); } targetY = Mathf.Clamp(targetY, minY, maxY); transform.position = new Vector3(targetX, targetY, transform.position.z); } }