Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/BarPresentation.cs
2026-02-21 16:45:37 +08:00

101 lines
1.6 KiB
C#

using System;
using UnityEngine;
[ExecuteInEditMode]
public class BarPresentation : MonoBehaviour
{
[Serializable]
public class Slide
{
public GameObject gameObject;
public void Show()
{
gameObject.SetActive(true);
}
public void Hide()
{
gameObject.SetActive(false);
}
}
public int currentSlideNum = 1;
public GameObject slidesBar;
public Slide[] slides;
private Slide currentSlide;
private EnergyBar bar;
private void Start()
{
bar = slidesBar.GetComponent<EnergyBar>();
bar.valueMax = slides.Length;
HideAll();
}
private void Update()
{
if (slides.Length != 0)
{
if (currentSlide == null)
{
ChangeSlide(currentSlideNum);
}
currentSlideNum = Mathf.Clamp(currentSlideNum, 1, slides.Length);
bar.valueCurrent = currentSlideNum;
}
}
private void OnGUI()
{
if (slides.Length != 0)
{
if (currentSlideNum != 1 && GUI.Button(new Rect(140f, 15f, 80f, 30f), "<< Prev"))
{
PreviousSlide();
}
if (currentSlideNum != slides.Length && GUI.Button(new Rect(580f, 15f, 80f, 30f), "Next >>"))
{
NextSlide();
}
if (currentSlideNum <= slides.Length)
{
}
}
}
private void HideAll()
{
Slide[] array = slides;
foreach (Slide slide in array)
{
slide.Hide();
}
}
private void NextSlide()
{
ChangeSlide(currentSlideNum + 1);
}
private void PreviousSlide()
{
ChangeSlide(currentSlideNum - 1);
}
private void ChangeSlide(int num)
{
if (currentSlide != null)
{
currentSlide.Hide();
}
currentSlide = slides[num - 1];
currentSlide.Show();
currentSlideNum = num;
}
}