Files
LowPolyRPG/Assets/Plugins/Nullframes/Intrigues/Demo/Scripts/UI/FadeSprites.cs
Caleb Sandford deQuincey 715fb68744 Initial commitment
2025-06-25 11:10:11 +01:00

63 lines
1.7 KiB
C#

using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Events;
namespace Nullframes.Intrigues.Demo
{
public class FadeSprites : MonoBehaviour
{
public List<SpriteRenderer> renderers;
public List<TextMeshPro> texts;
private Camera mainCamera;
public bool visible;
public float minZoom = 14f;
public float maxZoom = 15f;
public float minAlpha = 0f;
public float maxAlpha = 1f;
public UnityEvent onVisible;
public UnityEvent onHide;
private void Start()
{
visible = true;
mainCamera = Camera.main;
}
void LateUpdate()
{
float z = mainCamera.orthographicSize;
float targetAlpha = z.Remap(minZoom, maxZoom, maxAlpha, minAlpha);
//Sprite Renderers
foreach (var spriteRenderer in renderers)
{
spriteRenderer.color = new Color(spriteRenderer.color.r, spriteRenderer.color.g, spriteRenderer.color.b,
targetAlpha);
}
//Texts
foreach (var spriteRenderer in texts)
{
spriteRenderer.color = new Color(spriteRenderer.color.r, spriteRenderer.color.g, spriteRenderer.color.b,
targetAlpha);
}
//Events
var currentVisibleBeforeCheck = visible;
//Check
visible = !(targetAlpha < .1f);
if (currentVisibleBeforeCheck != visible)
{
if (visible) onVisible.Invoke();
if (!visible) onHide.Invoke();
}
}
}
}