using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class MainMenuManager : MonoBehaviour { [SerializeField] private TMP_Text title; [SerializeField] private List<TMP_Text> textList = new(); [SerializeField] private float dilateSpeed = 0.1f; [SerializeField] private Animator cover; private readonly string component = "_FaceDilate"; private float dilate = -1; private readonly List<float> dilates = new(); private float initDilate; private readonly List<float> initDilates = new(); private bool transitioning; // Start is called before the first frame update private void Start() { //initDilate = title.fontSharedMaterials[0].GetFloat(component); initDilate = title.fontMaterials[0].GetFloat(component); foreach (var text in textList) { initDilates.Add(text.fontMaterials[0].GetFloat(component)); dilates.Add(-1f); } textList[0].GetComponent<Button>().onClick.AddListener(LoadFirstLevel); textList[2].GetComponent<Button>().onClick.AddListener(ExitApp); } // Update is called once per frame private void Update() { //dilate = Mathf.Min(initDilate, dilate += Time.deltaTime); dilate = Mathf.Lerp(dilate, initDilate, Time.deltaTime * dilateSpeed); title.fontMaterials[0].SetFloat(component, dilate); for (var i = 0; i < textList.Count; i++) { dilates[i] = Mathf.Lerp(dilates[i], initDilates[i], Time.deltaTime * dilateSpeed); textList[i].fontMaterials[0].SetFloat(component, dilates[i]); } } private void LoadFirstLevel() { if (!transitioning) { cover.Play("Cover_load_out"); transitioning = true; StartCoroutine(_LoadFirstLevel()); } } private IEnumerator _LoadFirstLevel() { yield return new WaitForSeconds(4); SceneManager.LoadScene(1); } private void ExitApp() { Application.Quit(); } }