diff --git a/Assets/Scripts/Scenes/Ride/Scripts/AbstratctLoadingController.cs b/Assets/Scripts/Scenes/Ride/Scripts/AbstratctLoadingController.cs index 4dbc3c99..3522dea5 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/AbstratctLoadingController.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/AbstratctLoadingController.cs @@ -42,7 +42,8 @@ namespace Assets.Scenes.Ride.Scripts protected CyclingController cyclingController { get; set; } #endregion - + private float _timer = 15f; + private bool _forceUpdate = false; protected virtual void Start() { App.TextureCache.Clear(); @@ -57,8 +58,9 @@ namespace Assets.Scenes.Ride.Scripts return; } - if (targetAlpha != canvasGroup.alpha && depressFlag && slider.value >= 100) + if (targetAlpha != canvasGroup.alpha && depressFlag && slider.value >= 100 || _forceUpdate) { + canvasGroup.blocksRaycasts = false; canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, targetAlpha, alphaSpeed * Time.deltaTime); if (Mathf.Abs(targetAlpha - canvasGroup.alpha) <= 0.01f) { @@ -70,6 +72,15 @@ namespace Assets.Scenes.Ride.Scripts transform.gameObject.SetActive(false); } } + + if (depressFlag) + { + _timer -= Time.deltaTime; + if (_timer < 0 && tileHeightProcessed) + { + _forceUpdate = true; + } + } } //显示loading动画 protected virtual void ShowLoading() @@ -191,13 +202,11 @@ namespace Assets.Scenes.Ride.Scripts rideNow.interactable = false; processText.gameObject.SetActive(true); slider.gameObject.SetActive(true); + depressFlag = true; + slider.DOValue(process, 1); - canvasGroup.blocksRaycasts = false; - depressFlag = true; - slider.DOValue(process, 1); - - StartGame(); - } + StartGame(); + } protected virtual void Cancel(BaseEventData baseEvent) { SceneManager.LoadScene("MainScene"); @@ -207,12 +216,18 @@ namespace Assets.Scenes.Ride.Scripts yield return new WaitForSeconds(1f); loadingPanel.SetActive(false); } + private bool tileHeightProcessed = false; protected void _map_OnInitialized() { var visualizer = _map.MapVisualizer; visualizer.OnTileHeightProcessingFinished += (s) => { - AddProcess(40); + tileHeightProcessed = true; + }; + visualizer.OnMapVisualizerStateChanged += (s) => + { + if(s == ModuleState.Finished) + AddProcess(40); }; } }