Files
Northbound/Assets/Scripts/SimpleCameraZFollow.cs
T

50 lines
1.3 KiB
C#

using UnityEngine;
public class SimpleCameraZFollow : MonoBehaviour
{
[Header("Camera Settings")]
[SerializeField] private float fixedXPosition = 0f;
[SerializeField] private float fixedYPosition = 10f;
[SerializeField] private float zOffset = -10f;
[SerializeField] private float smoothSpeed = 5f;
[SerializeField] private bool lockRotation = true;
private Transform target;
private void Start()
{
FindPlayerTarget();
}
private void FindPlayerTarget()
{
var players = FindObjectsByType<NetworkPlayerController>();
foreach (var player in players)
{
if (player.IsOwner)
{
target = player.transform;
Debug.Log($"<color=green>[Camera] Target found: {player.name}</color>");
return;
}
}
Invoke(nameof(FindPlayerTarget), 0.5f);
}
private void LateUpdate()
{
if (target == null) return;
Vector3 targetPos = target.position;
Vector3 desiredPosition = new Vector3(fixedXPosition, fixedYPosition, targetPos.z + zOffset);
transform.position = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed * Time.deltaTime);
if (!lockRotation)
{
transform.LookAt(target);
}
}
}