SamsonGame/Assets/Scripts/Managers/Camera/CameraController.SwitchCame...

64 lines
1.5 KiB
C#
Raw Normal View History

2021-12-29 20:50:11 +03:00
using System;
using UnityEngine;
namespace RND
{
public partial class CameraController
{
private CameraItem[] _switchCameras;
private int _activeSwitchCamera;
private void InitSwitchCameras()
{
#if UNITY_EDITOR
_switchCameras = Array.FindAll(_cameras, item => item.switchable);
#endif
}
private void SwitchCamerasTick()
{
#if UNITY_EDITOR
if (_switchCameras.Length == 0)
return;
if (Input.GetKeyDown(KeyCode.V))
ChangeSwitchCamera();
if (Input.GetKey(KeyCode.LeftShift))
{
for (int i = 0; i < _switchCameras.Length; i++)
{
if (Input.GetKeyDown(KeyCode.F1 + i))
{
SetSwitchCamera(i);
}
}
}
#endif
}
private void ChangeSwitchCamera()
{
int nextCameraIndex = _activeSwitchCamera + 1;
if (nextCameraIndex >= _switchCameras.Length)
nextCameraIndex = 0;
_activeSwitchCamera = nextCameraIndex;
SetActive(_switchCameras[_activeSwitchCamera]);
}
private void SetSwitchCamera(int index)
{
if (index < 0 || index >= _switchCameras.Length)
throw new ArgumentOutOfRangeException();
_activeSwitchCamera = index;
SetActive(_switchCameras[_activeSwitchCamera]);
}
}
}