using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; /// <summary> /// 控制窗户 /// </summary> public class Control_Windows : MonoBehaviour { public static Control_Windows Instance; /// <summary> /// 开/关窗户 /// </summary> //public Button openwindows; /// <summary> /// 点击的窗户 /// </summary> public Transform window; public Toggle open; public Toggle close; private void Awake() { Instance = this; } void Start() { //openwindows.onClick.AddListener(() => { Openwindows(); }); } // Update is called once per frame void Update() { if (window != null ) { if (window.GetComponent<SkinnedMeshRenderer>().GetBlendShapeWeight(0) == 0 || window.GetComponent<SkinnedMeshRenderer>().GetBlendShapeWeight(0) == 100) { open.interactable = true; close.interactable = true; } } } public void Openwindows(bool isopen) { open.interactable = false; close.interactable = false; StartCoroutine(Openwindow(isopen)); } /// <summary> /// 开关窗户 /// </summary> /// <returns></returns> IEnumerator Openwindow(bool isopen) { if (window.GetComponent<SkinnedMeshRenderer>().GetBlendShapeWeight(0) == 0 && isopen) { //openwindows.GetComponentInChildren<TextMeshProUGUI>().text = "关窗"; for (int i = 1; i < 101; i++) { window.GetComponent<SkinnedMeshRenderer>().SetBlendShapeWeight(0, i); yield return new WaitForSeconds(0.025f); } } else if (window.GetComponent<SkinnedMeshRenderer>().GetBlendShapeWeight(0) == 100 && !isopen) { //openwindows.GetComponentInChildren<TextMeshProUGUI>().text = "开窗"; for (int i = 100; i >= 0; i--) { window.GetComponent<SkinnedMeshRenderer>().SetBlendShapeWeight(0, i); yield return new WaitForSeconds(0.025f); } } } }