using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; /// /// отмена создания стены, маяка, зоны /// public class HistoryController : MonoBehaviour { public static HistoryController instance; public Button redo; public Button undo; // отмена public List histories = new List(); private void Awake() { instance = this; } // Start is called before the first frame update void Start() { undo.onClick.AddListener(Undo); redo.onClick.AddListener(Redo); } // Update is called once per frame void Update() { } public void Undo() { var last = histories.Where(l => l.status).LastOrDefault(); if (last != null) { last.obj.SetActive(false); if (last.ButtonPanel != null) last.ButtonPanel.SetActive(false); last.status = false; } } public void Redo() { var last = histories.Where(l => !l.status).FirstOrDefault(); if (last != null) { last.obj.SetActive(true); if(last.ButtonPanel != null) last.ButtonPanel.SetActive(true); last.status = true; } histories.Remove(last); } public void EventHistory(uint id, GameObject gameObject, GameObject panel = null) { histories.Add(new History { id = id, obj = gameObject, ButtonPanel = panel, status = true }); } }