You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
namespace Exsersewo.UI.Canvas
|
|
{
|
|
[RequireComponent(typeof(CanvasGroup))]
|
|
public class CanvasManager : MonoBehaviour
|
|
{
|
|
public CanvasFader[] Canvases;
|
|
public float TimeToLerp;
|
|
|
|
void ChangeCanvas(MenuType menu, bool lerp)
|
|
{
|
|
var toZero = Canvases.Where(x => x.MenuType != menu).ToList();
|
|
var toOne = Canvases.FirstOrDefault(x => x.MenuType == menu);
|
|
|
|
toZero.ForEach(x =>
|
|
{
|
|
var fader = x.GetComponent<CanvasFader>();
|
|
if (fader.Visible)
|
|
{
|
|
fader.HidePanel(lerp, TimeToLerp);
|
|
}
|
|
});
|
|
|
|
toOne.GetComponent<CanvasFader>().ShowPanel(lerp, TimeToLerp);
|
|
}
|
|
|
|
public void ChangeToCanvas(CanvasFader menu)
|
|
=> ChangeToCanvas(menu.MenuType);
|
|
|
|
public void ChangeToCanvas(MenuType menu)
|
|
=> ChangeCanvas(menu, false);
|
|
|
|
public void LerpToCanvas(CanvasFader menu)
|
|
=> LerpToCanvas(menu.MenuType);
|
|
|
|
public void LerpToCanvas(MenuType menu)
|
|
=> ChangeCanvas(menu, true);
|
|
}
|
|
|
|
[System.Serializable]
|
|
public enum MenuType
|
|
{
|
|
Game = 0,
|
|
Stats = 1,
|
|
Codex = 2
|
|
}
|
|
}
|
|
|