using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; using System.Timers; public class MenuTab : MonoBehaviour { public GameObject[] 面板; public Toggle[] 开关组; // Start is called before the first frame update public Text 饱腹度; public Text 快乐; public Text 体力; public Text 口渴; public Text 健康; public Text 干净; public Image 饱腹度背景; public Image 快乐背景; public Image 体力背景; public Image 口渴背景; public Image 健康背景; public Image 干净背景; public int num = 50; private CanvasGroup canvasGroup1; private CanvasGroup canvasGroup2; private CanvasGroup canvasGroup3; private CanvasGroup canvasGroup4; private CanvasGroup canvasGroup5; private CanvasGroup canvasGroup6; public Button 场景; public Button 物品; public Button 玩具; public Button 商店; public Button 状态; public Button 设置; void Start() { gameTime(); canvasGroup1 = 场景.GetComponent(); if (canvasGroup1 == null) { canvasGroup1 = 场景.gameObject.AddComponent(); } canvasGroup2 = 物品.GetComponent(); if (canvasGroup2 == null) { canvasGroup2 = 物品.gameObject.AddComponent(); } canvasGroup3 = 玩具.GetComponent(); if (canvasGroup3 == null) { canvasGroup3 = 玩具.gameObject.AddComponent(); } canvasGroup4 = 商店.GetComponent(); if (canvasGroup4 == null) { canvasGroup4 = 商店.gameObject.AddComponent(); } canvasGroup5 = 状态.GetComponent(); if (canvasGroup5 == null) { canvasGroup5 = 状态.gameObject.AddComponent(); } canvasGroup6 = 设置.GetComponent(); if (canvasGroup6 == null) { canvasGroup6 = 设置.gameObject.AddComponent(); } FadeOut(canvasGroup1,1); FadeOut(canvasGroup2, 1); FadeOut(canvasGroup3, 1); FadeOut(canvasGroup4, 1); FadeOut(canvasGroup5, 1); FadeOut(canvasGroup6, 1); } public void menuBtnClick() { FadeIn(canvasGroup1, 0.1f); FadeIn(canvasGroup2, 0.1f); FadeIn(canvasGroup3, 0.1f); FadeIn(canvasGroup4, 0.1f); FadeIn(canvasGroup5, 0.1f); FadeIn(canvasGroup6, 0.1f); } public void menuFadeOut() { FadeOut(canvasGroup1, 0.1f); FadeOut(canvasGroup2, 0.1f); FadeOut(canvasGroup3, 0.1f); FadeOut(canvasGroup4, 0.1f); FadeOut(canvasGroup5, 0.1f); FadeOut(canvasGroup6, 0.1f); } void gameTime() { // 创建一个 Timer 对象 var timer = new Timer(); // 设置触发事件的间隔(单位为毫秒) timer.Interval = 1000 * 60; // 这里表示每分钟执行一次 // 添加 Elapsed 事件处理程序 timer.Elapsed += (sender, e) => { num--; Debug.Log(num); //饱腹度.text = num.ToString(); 快乐.text = num.ToString(); //肥胖.text = num.ToString(); //口渴.text = num.ToString(); //饱腹度背景.gameObject.GetComponent().sizeDelta = new Vector2(num, 100f); 快乐背景.gameObject.GetComponent().sizeDelta = new Vector2(num, 100f); //情绪背景.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, num); // 在此处编写需要定期执行的任务代码 }; // 开始计时器 timer.Start(); // 保持控制台应用程序运行 Console.ReadLine(); } public void plane_场景() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[0].SetActive(true); } public void plane_物品() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[1].SetActive(true); } public void plane_玩具() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[2].SetActive(true); } public void plane_商店() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[3].SetActive(true); } public void plane_状态() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[4].SetActive(true); } public void plane_设置() { for (int i = 0; i < 面板.Length; i++) { 面板[i].SetActive(false); } 面板[5].SetActive(true); } // Update is called once per frame void Update() { } public void FadeIn(CanvasGroup canvasGroup, float duration) { canvasGroup.alpha = 0; canvasGroup.blocksRaycasts = false; canvasGroup.interactable = false; StartCoroutine(FadeInCoroutine(canvasGroup, 1, duration)); } public void FadeOut(CanvasGroup canvasGroup, float duration) { StartCoroutine(FadeOutCoroutine(canvasGroup, 0,duration)); } private IEnumerator FadeInCoroutine(CanvasGroup canvasGroup, float targetAlpha, float duration) { float elapsedTime = 0; while (elapsedTime < duration) { elapsedTime += Time.deltaTime; //canvasGroup.alpha = Mathf.Lerp(0, targetAlpha, elapsedTime / duration); if(elapsedTime + Time.deltaTime >= duration) { canvasGroup.alpha = 1; } yield return null; } canvasGroup.alpha = targetAlpha; canvasGroup.blocksRaycasts = true; canvasGroup.interactable = true; } private IEnumerator FadeOutCoroutine(CanvasGroup canvasGroup, float targetAlpha, float duration) { float elapsedTime = 0; while (elapsedTime < duration) { elapsedTime += Time.deltaTime; //canvasGroup.alpha = Mathf.Lerp(1, targetAlpha, elapsedTime / duration); if (elapsedTime + Time.deltaTime >= duration) { canvasGroup.alpha = 0; } yield return null; } canvasGroup.alpha = targetAlpha; canvasGroup.blocksRaycasts = false; canvasGroup.interactable = false; } }