/// <summary> /// 等待一段时间后执行无参函数 /// </summary> /// <param name="waitTime">等待的时间</param> /// <param name="w">需要执行的无参函数</param> /// <returns></returns> IEnumerator WaitAndToDoSth(float waitTime, JustDo w) { yield return(new WaitForSeconds(waitTime)); w(); }
/// <summary> /// 开始一个音节拼写单元 /// </summary> /// <param name="times">回合数</param> void StartBoom(int times) { // 立即删除所有气泡 JustDo DeleteAll = () => { foreach (var item in boom) { if (item) { DestroyImmediate(item); } } boom.Clear(); }; // 如果单词拼对了 if (times >= pernouncationList.Count) { PlayerScore += 10; PlayerWin = true; StopCoroutine(MonsterScoreUpV); Debug.Log("结束了!"); turn++; StartCoroutine(WaitAndToDoSth(waitTime, DeleteAll)); StartCoroutine(WaitAndToDoSth(waitTime + emptyWaitTime, StartTurn)); return; } DeleteAll(); //初始化错误列表 GetWrongList(0); int numid = Random.Range(0, PosNum); for (int i = 0; i < PosNum; i++) { // 实例化气泡 GameObject bom = Instantiate(boomPer, posData[i], qua, canvas.transform); Text t = bom.GetComponentInChildren <Text>(); // 注册点击事件 EventTrigger evt = bom.GetComponent <EventTrigger>(); var trigs = new EventTrigger.Entry { eventID = EventTriggerType.PointerClick }; trigs.callback.AddListener((data) => { OnClickBoom((PointerEventData)data, times); }); evt.triggers.Add(trigs); // 显示气泡上的文字 boom.Add(bom); if (i == numid) { t.text = pernouncationList[times]; } else { t.text = wrongs[times][i]; } } }