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)); } }
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); } }
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); }
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); } }
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); }
/// <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); } }
/// <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)); }