123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- 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<CanvasGroup>();
- if (canvasGroup1 == null)
- {
- canvasGroup1 = 场景.gameObject.AddComponent<CanvasGroup>();
- }
- canvasGroup2 = 物品.GetComponent<CanvasGroup>();
- if (canvasGroup2 == null)
- {
- canvasGroup2 = 物品.gameObject.AddComponent<CanvasGroup>();
- }
- canvasGroup3 = 玩具.GetComponent<CanvasGroup>();
- if (canvasGroup3 == null)
- {
- canvasGroup3 = 玩具.gameObject.AddComponent<CanvasGroup>();
- }
- canvasGroup4 = 商店.GetComponent<CanvasGroup>();
- if (canvasGroup4 == null)
- {
- canvasGroup4 = 商店.gameObject.AddComponent<CanvasGroup>();
- }
- canvasGroup5 = 状态.GetComponent<CanvasGroup>();
- if (canvasGroup5 == null)
- {
- canvasGroup5 = 状态.gameObject.AddComponent<CanvasGroup>();
- }
- canvasGroup6 = 设置.GetComponent<CanvasGroup>();
- if (canvasGroup6 == null)
- {
- canvasGroup6 = 设置.gameObject.AddComponent<CanvasGroup>();
- }
- 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<RectTransform>().sizeDelta = new Vector2(num, 100f);
- 快乐背景.gameObject.GetComponent<RectTransform>().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;
- }
-
- }
|