Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Camera/Player Camera/setCameraFOVValue.cs

122 lines
2.4 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class setCameraFOVValue : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool cameraFOVChangeEnabled = true;
public float changeFOVAmount = 0.4f;
public Vector2 FOVClampValue;
[Space]
public bool getMainPlayerCameraOnScene;
[Space]
[Header ("Debug")]
[Space]
public bool mainCameraLocated;
public bool showDebugPrint;
[Space]
[Header ("Components")]
[Space]
public Camera mainCamera;
public void enableOrDisableCameraFOVChange (bool state)
{
cameraFOVChangeEnabled = state;
}
public void increaseFov ()
{
if (!cameraFOVChangeEnabled) {
return;
}
changeFOV (1);
}
public void decreaseFOV ()
{
if (!cameraFOVChangeEnabled) {
return;
}
changeFOV (-1);
}
void changeFOV (float changeDirection)
{
checkMainCameraLocated ();
if (!mainCameraLocated) {
return;
}
mainCamera.fieldOfView += (changeFOVAmount * changeDirection);
if (showDebugPrint) {
print ("setting FOV value to " + mainCamera.fieldOfView);
}
clampFOVValue ();
}
public void setCameraFOV (float newValue)
{
checkMainCameraLocated ();
if (!mainCameraLocated) {
return;
}
mainCamera.fieldOfView = newValue;
clampFOVValue ();
}
void clampFOVValue ()
{
mainCamera.fieldOfView = Mathf.Clamp (mainCamera.fieldOfView, FOVClampValue.x, FOVClampValue.y);
}
public void setFOVClampValueX (float newValue)
{
FOVClampValue.x = newValue;
}
public void setFOVClampValueY (float newValue)
{
FOVClampValue.y = newValue;
}
void checkMainCameraLocated ()
{
if (!mainCameraLocated) {
mainCameraLocated = mainCamera != null;
if (!mainCameraLocated && getMainPlayerCameraOnScene) {
playerCamera mainPlayerCamera = GKC_Utils.findMainPlayerCameraOnScene ();
if (mainPlayerCamera != null) {
mainCamera = mainPlayerCamera.getMainCamera ();
} else {
mainCamera = Camera.main;
}
mainCameraLocated = mainCamera != null;
}
}
}
}