예제 #1
0
        private IEnumerator LoadBytesCo(string fileUri, LoadBytesCallbacks loadBytesCallbacks, object userData)
        {
            bool isError = false;

            byte[]   bytes        = null;
            string   errorMessage = null;
            DateTime startTime    = DateTime.Now;

            UnityWebRequest unityWebRequest = UnityWebRequest.Get(fileUri);

            yield return(unityWebRequest.SendWebRequest());

            isError = unityWebRequest.isNetworkError || unityWebRequest.isHttpError;

            bytes        = unityWebRequest.downloadHandler.data;
            errorMessage = isError ? unityWebRequest.error : null;
            unityWebRequest.Dispose();


            if (!isError)
            {
                float elapseSeconds = (float)(DateTime.Now - startTime).TotalSeconds;
                loadBytesCallbacks.LoadBytesSuccessCallback(fileUri, bytes, elapseSeconds, userData);
            }
            else if (loadBytesCallbacks.LoadBytesFailureCallback != null)
            {
                loadBytesCallbacks.LoadBytesFailureCallback(fileUri, errorMessage, userData);
            }
        }
        private IEnumerator LoadBytesCo(string fileUri, LoadBytesCallbacks loadBytesCallbacks, object userData)
        {
            bool isError = false;

            byte[]   bytes        = null;
            string   errorMessage = null;
            DateTime startTime    = DateTime.UtcNow;

#if UNITY_5_4_OR_NEWER
            UnityWebRequest unityWebRequest = UnityWebRequest.Get(fileUri);
#if UNITY_2017_2_OR_NEWER
            yield return(unityWebRequest.SendWebRequest());
#else
            yield return(unityWebRequest.Send());
#endif

#if UNITY_2020_2_OR_NEWER
            isError = unityWebRequest.result != UnityWebRequest.Result.Success;
#elif UNITY_2017_1_OR_NEWER
            isError = unityWebRequest.isNetworkError || unityWebRequest.isHttpError;
#else
            isError = unityWebRequest.isError;
#endif
            bytes        = unityWebRequest.downloadHandler.data;
            errorMessage = isError ? unityWebRequest.error : null;
            unityWebRequest.Dispose();
#else
            WWW www = new WWW(fileUri);
            yield return(www);

            isError      = !string.IsNullOrEmpty(www.error);
            bytes        = www.bytes;
            errorMessage = www.error;
            www.Dispose();
#endif

            if (!isError)
            {
                float elapseSeconds = (float)(DateTime.UtcNow - startTime).TotalSeconds;
                loadBytesCallbacks.LoadBytesSuccessCallback(fileUri, bytes, elapseSeconds, userData);
            }
            else if (loadBytesCallbacks.LoadBytesFailureCallback != null)
            {
                loadBytesCallbacks.LoadBytesFailureCallback(fileUri, errorMessage, userData);
            }
        }
        private IEnumerator LoadBytesCo(string fileUri, LoadBytesCallbacks loadBytesCallback)
        {
            byte[] bytes        = null;
            string errorMessage = null;

#if UNITY_5_4_OR_NEWER
            UnityWebRequest unityWebRequest = UnityWebRequest.Get(fileUri);
#if UNITY_2017_2_OR_NEWER
            yield return(unityWebRequest.SendWebRequest());
#else
            yield return(unityWebRequest.Send());
#endif

            bool isError = false;
#if UNITY_2017_1_OR_NEWER
            isError = unityWebRequest.isNetworkError || unityWebRequest.isHttpError;
#else
            isError = unityWebRequest.isError;
#endif
            bytes        = unityWebRequest.downloadHandler.data;
            errorMessage = isError ? unityWebRequest.error : null;
            unityWebRequest.Dispose();
#else
            WWW www = new WWW(fileUri);
            yield return(www);

            bytes        = www.bytes;
            errorMessage = www.error;
            www.Dispose();
#endif

            if (loadBytesCallback != null)
            {
                //loadBytesCallback(fileUri, bytes, errorMessage);
            }
        }
예제 #4
0
 /// <summary>
 /// 直接从指定文件路径加载数据流。
 /// </summary>
 /// <param name="fileUri">文件路径。</param>
 /// <param name="loadBytesCallbacks">加载数据流回调函数集。</param>
 /// <param name="userData">用户自定义数据。</param>
 public override void LoadBytes(string fileUri, LoadBytesCallbacks loadBytesCallbacks, object userData)
 {
     StartCoroutine(LoadBytesCo(fileUri, loadBytesCallbacks, userData));
 }
예제 #5
0
 private void LoadLuaAb()
 {
     m_LoadBytesCallbacks = new LoadBytesCallbacks(OnBytesLoadSuccess, OnBytesLoadFailure);
     GameEntry.Resource.LoadBytes("HotFix", m_LoadBytesCallbacks, null);
 }
 public void LoadBytes(string abName, LoadBytesCallbacks callback, object userdata)
 {
     throw new NotImplementedException();
 }
 public void LoadBytes(string abName, LoadBytesCallbacks callback, object userdata)
 {
     m_ResourceManager.LoadBytes(abName, callback, userdata);
 }
 /// <summary>
 /// 直接从指定文件路径读取数据流。
 /// </summary>
 /// <param name="fileUri">文件路径。</param>
 /// <param name="loadBytesCallback">读取数据流回调函数。</param>
 public override void LoadBytes(string fileUri, LoadBytesCallbacks loadBytesCallback)
 {
     StartCoroutine(LoadBytesCo(fileUri, loadBytesCallback));
 }
 public override void LoadBytes(string fileUri, LoadBytesCallbacks loadBytesCallbacks, object userData)
 {
     throw new System.NotImplementedException();
 }
예제 #10
0
 public abstract void LoadBytes(string fileUri, LoadBytesCallbacks loadBytesCallbacks, object userData);
예제 #11
0
 /// <summary>
 /// 直接从指定文件路径读取数据流。
 /// </summary>
 /// <param name="fileUri">文件路径。</param>
 /// <param name="loadBytesCallback">读取数据流回调函数。</param>
 public abstract void LoadBytes(string fileUri, LoadBytesCallbacks loadBytesCallback);