53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Cinemachine;
|
|
using System;
|
|
|
|
public class CameraSizeController : MonoBehaviour
|
|
{
|
|
public float maxSize = 7.5f, camExpandSmoothness = 0.01f;
|
|
public TileOwner trackingPlayer = TileOwner.Ariost;
|
|
|
|
private float _startSize;
|
|
|
|
[SerializeField] private CinemachineVirtualCamera _cam;
|
|
|
|
private void Awake()
|
|
{
|
|
//TileManagment.OnAnyTileCaptured += UpdateCamSize;
|
|
_startSize = _cam.m_Lens.OrthographicSize;
|
|
}
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
UpdateCamSize();
|
|
}
|
|
|
|
private void UpdateCamSize(PlayerState player)
|
|
{
|
|
if (player.ownerIndex != trackingPlayer)
|
|
{
|
|
return;
|
|
}
|
|
int maxTilesNumber = TileManagment.levelTiles.Count;
|
|
int playerTilesNumber = TileManagment.charTiles[(int)player.ownerIndex].Count;
|
|
|
|
float camSizeDelta = maxSize - _startSize;
|
|
|
|
_cam.m_Lens.OrthographicSize = _startSize + (float)playerTilesNumber / maxTilesNumber * camSizeDelta;
|
|
}
|
|
|
|
private void UpdateCamSize()
|
|
{
|
|
int maxTilesNumber = TileManagment.levelTiles.Count;
|
|
int playerTilesNumber = TileManagment.charTiles[(int)trackingPlayer].Count;
|
|
|
|
float camSizeDelta = maxSize - _startSize;
|
|
|
|
float targetSize = _startSize + (float)playerTilesNumber / maxTilesNumber * camSizeDelta;
|
|
|
|
_cam.m_Lens.OrthographicSize = Mathf.Lerp(_cam.m_Lens.OrthographicSize, targetSize, camExpandSmoothness);
|
|
}
|
|
}
|