/// <summary> /// Start www loadings sub /// </summary> /// <returns>IEnumerator</returns> // ------------------------------------------------------------------------------------------------------- protected IEnumerator startWwwStartupSub() { int size = this.m_wwwsList.Count; WwwStartupContents wwws = null; // ---------------------- for (int i = 0; i < size; i++) { // hasError break { if (this.hasError()) { break; } } // ---------------------- wwws = this.m_wwwsList[i]; // ---------------------- // continue if not NotYet { if (wwws.currentWorkingState != StartupContents.WorkingState.NotYet) { continue; } } // NowWorking { wwws.currentWorkingState = StartupContents.WorkingState.NowWorking; } // loadWwwStartupContents { yield return(this.loadWwwStartupContents(wwws)); } // DoneSuccessOrError { wwws.currentWorkingState = StartupContents.WorkingState.DoneSuccessOrError; } } }
/// <summary> /// Load WwwStartupContents /// </summary> /// <param name="wwws">WwwStartupContents</param> /// <returns>IEnumerator</returns> // ------------------------------------------------------------------------------------------------------- protected IEnumerator loadWwwStartupContents(WwwStartupContents wwws) { if (wwws == null) { yield break; } // --------------------- // WWW { float noProgressTimer = 0.0f; float previousProgress = 0.0f; using (WWW www = new WWW(wwws.url)) { #if !UNITY_WEBGL www.threadPriority = this.m_threadPriority; #endif // set progressValueFunc { wwws.progressValueFunc = () => { return((www != null) ? www.progress : 0.0f); }; } // set urlIfNeeded { wwws.urlIfNeeded = wwws.url; } // wait www done { while (!www.isDone) { if (wwws.progressAction != null) { wwws.progressAction(www); } // timeout { if (this.m_noProgressTimeOutSeconds > 0.0f) { if (Mathf.Approximately(previousProgress, www.progress)) { noProgressTimer += Time.deltaTime; } else { noProgressTimer = 0.0f; } previousProgress = www.progress; if (noProgressTimer >= this.m_noProgressTimeOutSeconds) { wwws.errorMessage = this.messageTimeout(); break; } } } yield return(null); } // while (!www.isDone) if (wwws.progressAction != null) { wwws.progressAction(www); } yield return(null); } // success or fail { // set errorMessage { if (string.IsNullOrEmpty(wwws.errorMessage)) { wwws.errorMessage = www.error; } } // success if (string.IsNullOrEmpty(wwws.errorMessage)) { if (wwws.successAction != null) { wwws.successAction(www); } } // fail else { if (wwws.failedAction != null) { wwws.failedAction(www); } // updateError { this.updateError(wwws); } } } // set progressValueFunc to null { wwws.progressValueFunc = null; } } // using } }