예제 #1
0
            public static LoadDictionaryInfo Create(LoadType loadType, object userData)
            {
                LoadDictionaryInfo loadDictionaryInfo = ReferencePool.Acquire <LoadDictionaryInfo>();

                loadDictionaryInfo.m_LoadType = loadType;
                loadDictionaryInfo.m_UserData = userData;
                return(loadDictionaryInfo);
            }
        private void LoadDictionaryDependencyAssetCallback(string dictionaryAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GameFrameworkException("Load dictionary info is invalid.");
            }

            if (m_LoadDictionaryDependencyAssetEventHandler != null)
            {
                m_LoadDictionaryDependencyAssetEventHandler(this, new LoadDictionaryDependencyAssetEventArgs(dictionaryAssetName, dependencyAssetName, loadedCount, totalCount, loadDictionaryInfo.UserData));
            }
        }
        private void LoadDictionaryUpdateCallback(string dictionaryAssetName, float progress, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GameFrameworkException("Load dictionary info is invalid.");
            }

            if (m_LoadDictionaryUpdateEventHandler != null)
            {
                m_LoadDictionaryUpdateEventHandler(this, new LoadDictionaryUpdateEventArgs(dictionaryAssetName, progress, loadDictionaryInfo.UserData));
            }
        }
예제 #4
0
        private void LoadAssetDependencyAssetCallback(string dictionaryAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GXException("Load dictionary info is invalid.");
            }

            if (m_LoadDictionaryDependencyAssetEventHandler != null)
            {
                LoadDictionaryDependencyAssetEventArgs loadDictionaryDependencyAssetEventArgs = LoadDictionaryDependencyAssetEventArgs.Create(dictionaryAssetName, dependencyAssetName, loadedCount, totalCount, loadDictionaryInfo.UserData);
                m_LoadDictionaryDependencyAssetEventHandler(this, loadDictionaryDependencyAssetEventArgs);
                ReferencePool.Release(loadDictionaryDependencyAssetEventArgs);
            }
        }
예제 #5
0
        private void LoadAssetUpdateCallback(string dictionaryAssetName, float progress, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GXException("Load dictionary info is invalid.");
            }

            if (m_LoadDictionaryUpdateEventHandler != null)
            {
                LoadDictionaryUpdateEventArgs loadDictionaryUpdateEventArgs = LoadDictionaryUpdateEventArgs.Create(dictionaryAssetName, loadDictionaryInfo.LoadType, progress, loadDictionaryInfo.UserData);
                m_LoadDictionaryUpdateEventHandler(this, loadDictionaryUpdateEventArgs);
                ReferencePool.Release(loadDictionaryUpdateEventArgs);
            }
        }
        private void LoadDictionaryFailureCallback(string dictionaryAssetName, LoadResourceStatus status, string errorMessage, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GameFrameworkException("Load dictionary info is invalid.");
            }

            string appendErrorMessage = Utility.Text.Format("Load dictionary failure, asset name '{0}', status '{1}', error message '{2}'.", dictionaryAssetName, status.ToString(), errorMessage);

            if (m_LoadDictionaryFailureEventHandler != null)
            {
                m_LoadDictionaryFailureEventHandler(this, new LoadDictionaryFailureEventArgs(dictionaryAssetName, appendErrorMessage, loadDictionaryInfo.UserData));
                return;
            }

            throw new GameFrameworkException(appendErrorMessage);
        }
예제 #7
0
        private void LoadAssetSuccessCallback(string dictionaryAssetName, object dictionaryAsset, float duration, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GXException("Load dictionary info is invalid.");
            }

            try
            {
                if (!m_LocalizationHelper.LoadDictionary(dictionaryAsset, loadDictionaryInfo.LoadType, loadDictionaryInfo.UserData))
                {
                    throw new GXException(Utility.Text.Format("Load dictionary failure in helper, asset name '{0}'.", dictionaryAssetName));
                }

                if (m_LoadDictionarySuccessEventHandler != null)
                {
                    LoadDictionarySuccessEventArgs loadDictionarySuccessEventArgs = LoadDictionarySuccessEventArgs.Create(dictionaryAssetName, loadDictionaryInfo.LoadType, duration, loadDictionaryInfo.UserData);
                    m_LoadDictionarySuccessEventHandler(this, loadDictionarySuccessEventArgs);
                    ReferencePool.Release(loadDictionarySuccessEventArgs);
                }
            }
            catch (Exception exception)
            {
                if (m_LoadDictionaryFailureEventHandler != null)
                {
                    LoadDictionaryFailureEventArgs loadDictionaryFailureEventArgs = LoadDictionaryFailureEventArgs.Create(dictionaryAssetName, loadDictionaryInfo.LoadType, exception.ToString(), loadDictionaryInfo.UserData);
                    m_LoadDictionaryFailureEventHandler(this, loadDictionaryFailureEventArgs);
                    ReferencePool.Release(loadDictionaryFailureEventArgs);
                    return;
                }

                throw;
            }
            finally
            {
                ReferencePool.Release(loadDictionaryInfo);
                m_LocalizationHelper.ReleaseDictionaryAsset(dictionaryAsset);
            }
        }
예제 #8
0
        private void LoadAssetOrBinaryFailureCallback(string dictionaryAssetName, LoadResourceStatus status, string errorMessage, object userData)
        {
            LoadDictionaryInfo loadDictionaryInfo = (LoadDictionaryInfo)userData;

            if (loadDictionaryInfo == null)
            {
                throw new GXException("Load dictionary info is invalid.");
            }

            string appendErrorMessage = Utility.Text.Format("Load dictionary failure, asset name '{0}', status '{1}', error message '{2}'.", dictionaryAssetName, status.ToString(), errorMessage);

            if (m_LoadDictionaryFailureEventHandler != null)
            {
                LoadDictionaryFailureEventArgs loadDictionaryFailureEventArgs = LoadDictionaryFailureEventArgs.Create(dictionaryAssetName, loadDictionaryInfo.LoadType, appendErrorMessage, loadDictionaryInfo.UserData);
                m_LoadDictionaryFailureEventHandler(this, loadDictionaryFailureEventArgs);
                ReferencePool.Release(loadDictionaryFailureEventArgs);
                return;
            }

            throw new GXException(appendErrorMessage);
        }
예제 #9
0
        /// <summary>
        /// 加载字典。
        /// </summary>
        /// <param name="dictionaryAssetName">字典资源名称。</param>
        /// <param name="loadType">字典加载方式。</param>
        /// <param name="priority">加载字典资源的优先级。</param>
        /// <param name="userData">用户自定义数据。</param>
        public void LoadDictionary(string dictionaryAssetName, LoadType loadType, int priority, object userData)
        {
            if (m_ResourceManager == null)
            {
                throw new GXException("You must set resource manager first.");
            }

            if (m_LocalizationHelper == null)
            {
                throw new GXException("You must set localization helper first.");
            }

            LoadDictionaryInfo loadDictionaryInfo = LoadDictionaryInfo.Create(loadType, userData);

            if (loadType == LoadType.TextFromAsset || loadType == LoadType.BytesFromAsset || loadType == LoadType.StreamFromAsset)
            {
                m_ResourceManager.LoadAsset(dictionaryAssetName, priority, m_LoadAssetCallbacks, loadDictionaryInfo);
            }
            else
            {
                m_ResourceManager.LoadBinary(dictionaryAssetName, m_LoadBinaryCallbacks, loadDictionaryInfo);
            }
        }
예제 #10
0
        /// <summary>
        /// 加载字典。
        /// </summary>
        /// <param name="dictionaryAssetName">字典资源名称。</param>
        /// <param name="loadType">字典加载方式。</param>
        /// <param name="priority">加载字典资源的优先级。</param>
        /// <param name="userData">用户自定义数据。</param>
        public void LoadDictionary(string dictionaryAssetName, LoadType loadType, int priority, object userData)
        {
            if (m_ResourceManager == null)
            {
                throw new GameFrameworkException("You must set resource manager first.");
            }

            if (m_LocalizationHelper == null)
            {
                throw new GameFrameworkException("You must set localization helper first.");
            }

            m_ResourceManager.LoadAsset(dictionaryAssetName, priority, m_LoadAssetCallbacks, LoadDictionaryInfo.Create(loadType, userData));
        }