38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using PhxhSDK;
|
|
using UnityEngine;
|
|
namespace Code.Scripts.Gameplay.Utils
|
|
{
|
|
public static class CameraEx
|
|
{
|
|
public static float GetScaleProgress(this CameraManager cameraManager)
|
|
{
|
|
if (cameraManager == null) return 1;
|
|
var camera = cameraManager.MainCamera;
|
|
if (camera == null) return 1;
|
|
var cameraController = camera.GetComponent<CameraController>();
|
|
if (cameraController == null) return 1;
|
|
var orthographicSize = camera.orthographicSize;
|
|
var minSize = cameraController.CameraMinSize;
|
|
var maxSize = cameraController.CameraMaxSize;
|
|
return (orthographicSize - minSize) / (maxSize - minSize);
|
|
}
|
|
|
|
public static float GetOutlineScale(this CameraManager cameraManager, float inDistance)
|
|
{
|
|
if (cameraManager == null) return 1;
|
|
var camera = cameraManager.MainCamera;
|
|
if (camera == null) return 1;
|
|
var cameraController = camera.GetComponent<CameraController>();
|
|
if (cameraController == null) return 1;
|
|
var orthographicSize = camera.orthographicSize;
|
|
var minSize = cameraController.CameraMinSize;
|
|
var maxSize = cameraController.CameraMaxSize;
|
|
var progress = (orthographicSize - minSize) / (maxSize - minSize);
|
|
var downScale = minSize / (float)maxSize;
|
|
var upScale = 1f;
|
|
var scale = Mathf.Lerp(upScale, downScale, progress);
|
|
return scale;
|
|
}
|
|
}
|
|
}
|