Tôi có một coroutine thay đổi trơn tru một biến trong UI của tôi, nhưng khi tôi tạm dừng trò chơi, coroutine cũng tạm dừng. Lam sao tôi co thể sửa no?
Mã số:
using UnityEngine;
using System.Collections;
public class HUDController : MonoBehaviour {
public void PauseGame() {
FreezeTime();
StartCoroutine(ShowPauseMenu());
}
private void FreezeTime() {
Time.timeScale = 0;
}
private IEnumerator ShowPauseMenu() {
var pauseMenuCanvasGroup = GameObject.FindWithTag("PauseMenu").GetComponent<CanvasGroup>();
var alphaValue = 1f;
var velocity = 0f;
var time = 0.15f;
while (!Mathf.Approximately(pauseMenuCanvasGroup.alpha, alphaValue)) {
pauseMenuCanvasGroup.alpha = Mathf.SmoothDamp(pauseMenuCanvasGroup.alpha, alphaValue, ref velocity, time);
yield return null;
}
pauseMenuCanvasGroup.alpha = 1; // Since float is not accurate, manually set the alpha to 1
pauseMenuCanvasGroup.interactable = true;
}
}
yield return null
haynew WaitForEndOfFrame()
tiếp tục ngân nga tốt khiTime.timeScale = 0
- đó chỉyield return new WaitForSeconds(delay)
là tạm dừng. Bạn có thể xác nhận phiên bản nào của Unity bạn đang chạy không?