My custom camera is prioritising one object and zooming in very far disregarding my variable. How do I fix it?
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class CustomCameraFollow : MonoBehaviour
{
[Header("Camera Settings")]
[SerializeField] private float cameraLerpSped;
[SerializeField] private float zoomLerpSpeed;
[SerializeField] private float desiredDistanceFromPlayers;
[Header("References")]
[SerializeField] private Transform cameraTransform;
public List<Transform> followObjects = new List<Transform>();
private Vector3 followCenter;
private float xRange;
private float yRange;
void Update()
{
CalculateXandYRanges();
CalculatePositionAvrage();
FollowPoint();
AdjustZoom();
}
private void CalculateXandYRanges()
{
float xMax = float.MinValue;
float xMin = float.MaxValue;
float yMax = float.MinValue;
float yMin = float.MaxValue;
foreach (var obj in followObjects)
{
if (obj.position.x > xMax) xMax = obj.position.x;
if (obj.position.x < xMin) xMin = obj.position.x;
if (obj.position.y > yMax) yMax = obj.position.y;
if (obj.position.y < yMin) yMin = obj.position.y;
}
xRange = Mathf.Abs(xMax - xMin);
yRange = Mathf.Abs(yMax - yMin);
}
private void CalculatePositionAvrage()
{
Vector3 avragePosition = new Vector3(0, 0, 0);
foreach (var obj in followObjects)
{
avragePosition += obj.position;
}
followCenter = avragePosition / followObjects.Count;
}