55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
using UnityEngine;
|
|
using Unity.Cinemachine;
|
|
|
|
public class cameraSwitcher : MonoBehaviour
|
|
{
|
|
[SerializeField] private CinemachineCamera virtualCamera;
|
|
[SerializeField] private float zoomedFOV = 30f;
|
|
[SerializeField] private float normalFOV = 40f;
|
|
[SerializeField] private Vector3 zoomedOffset = new Vector3(0, 2, -10);
|
|
[SerializeField] private Vector3 normalOffset = new Vector3(0, 5, -10);
|
|
|
|
private int playerInsideCount = 0;
|
|
//private CinemachineTransposer transposer;
|
|
|
|
private void Start()
|
|
{
|
|
/* if (virtualCamera != null)
|
|
{
|
|
transposer = virtualCamera.GetCinemachineComponent<CinemachineTransposer>();
|
|
}*/
|
|
}
|
|
|
|
private void OnTriggerEnter2D(Collider2D other)
|
|
{
|
|
if (other.CompareTag("Player"))
|
|
{
|
|
playerInsideCount++;
|
|
/*if (playerInsideCount == 1 && virtualCamera != null)
|
|
{
|
|
// Adjust FOV
|
|
virtualCamera.m_Lens.FieldOfView = zoomedFOV;
|
|
// Adjust follow distance (offset)
|
|
if (transposer != null)
|
|
transposer.m_FollowOffset = zoomedOffset;
|
|
}*/
|
|
}
|
|
}
|
|
|
|
private void OnTriggerExit2D(Collider2D other)
|
|
{
|
|
if (other.CompareTag("Player"))
|
|
{
|
|
playerInsideCount--;
|
|
/*if (playerInsideCount == 0 && virtualCamera != null)
|
|
{
|
|
// Restore FOV
|
|
virtualCamera.m_Lens.FieldOfView = normalFOV;
|
|
// Restore follow distance (offset)
|
|
if (transposer != null)
|
|
transposer.m_FollowOffset = normalOffset;
|
|
}*/
|
|
}
|
|
}
|
|
}
|