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(); 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; } }