101 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|