Exemple #1
0
        /// <summary>
        /// 执行异步加载
        /// </summary>
        /// <param name="asyncSystem"></param>
        public IEnumerator RunAsync(IRunAsyncSystem asyncSystem)
        {
            var request = Resources.LoadAsync(m_assetName);

            yield return(request);

            if (!request.isDone)
            {
                m_state = ResState.Failed;
                asyncSystem.OnRunAsyncComplete();
                Notification(false);
                yield break;
            }

            m_asset = request.asset;

            if (m_asset == null)
            {
                m_state = ResState.Failed;
                asyncSystem.OnRunAsyncComplete();
                Notification(false);
                yield break;
            }

            m_state = ResState.Ready;
            asyncSystem.OnRunAsyncComplete();
            Notification(true);
        }
Exemple #2
0
        /// <summary>
        /// 执行异步加载
        /// </summary>
        /// <param name="asyncSystem"></param>
        public IEnumerator RunAsync(IRunAsyncSystem asyncSystem)
        {
            var url     = AssetBundlePath.GetFullPath(m_bundleName);
            var request = AssetBundle.LoadFromFileAsync(url);

            m_request = request;
            yield return(request);

            m_request = null;

            if (!request.isDone)
            {
                m_state = ResState.Failed;
                asyncSystem.OnRunAsyncComplete();
                Notification(false);
                yield break;
            }

            m_assetBundle = request.assetBundle;

            if (m_assetBundle == null)
            {
                m_state = ResState.Failed;
                asyncSystem.OnRunAsyncComplete();
                Notification(false);
                yield break;
            }

            m_state = ResState.Ready;
            asyncSystem.OnRunAsyncComplete();
            Notification(true);
        }