private void UpdateAsyncOperation()
 {
     if (m_AsyncOperation != null)
     {
         if (m_AsyncOperation.isDone)
         {
             if (m_AsyncOperation.allowSceneActivation)
             {
                 LoadResourceAgentHelperLoadCompleteEventArgs loadResourceAgentHelperLoadCompleteEventArgs = LoadResourceAgentHelperLoadCompleteEventArgs.Create(new SceneAsset());
                 m_LoadResourceAgentHelperLoadCompleteEventHandler(this, loadResourceAgentHelperLoadCompleteEventArgs);
                 ReferencePool.Release(loadResourceAgentHelperLoadCompleteEventArgs);
                 m_AssetName      = null;
                 m_LastProgress   = 0f;
                 m_AsyncOperation = null;
             }
             else
             {
                 LoadResourceAgentHelperErrorEventArgs loadResourceAgentHelperErrorEventArgs = LoadResourceAgentHelperErrorEventArgs.Create(LoadResourceStatus.AssetError, Utility.Text.Format("Can not load scene asset '{0}' from asset bundle.", m_AssetName));
                 m_LoadResourceAgentHelperErrorEventHandler(this, loadResourceAgentHelperErrorEventArgs);
                 ReferencePool.Release(loadResourceAgentHelperErrorEventArgs);
             }
         }
         else if (m_AsyncOperation.progress != m_LastProgress)
         {
             m_LastProgress = m_AsyncOperation.progress;
             LoadResourceAgentHelperUpdateEventArgs loadResourceAgentHelperUpdateEventArgs = LoadResourceAgentHelperUpdateEventArgs.Create(LoadResourceProgress.LoadScene, m_AsyncOperation.progress);
             m_LoadResourceAgentHelperUpdateEventHandler(this, loadResourceAgentHelperUpdateEventArgs);
             ReferencePool.Release(loadResourceAgentHelperUpdateEventArgs);
         }
     }
 }
 private void UpdateAssetBundleRequest()
 {
     if (m_AssetBundleRequest != null)
     {
         if (m_AssetBundleRequest.isDone)
         {
             if (m_AssetBundleRequest.asset != null)
             {
                 LoadResourceAgentHelperLoadCompleteEventArgs loadResourceAgentHelperLoadCompleteEventArgs = LoadResourceAgentHelperLoadCompleteEventArgs.Create(m_AssetBundleRequest.asset);
                 m_LoadResourceAgentHelperLoadCompleteEventHandler(this, loadResourceAgentHelperLoadCompleteEventArgs);
                 ReferencePool.Release(loadResourceAgentHelperLoadCompleteEventArgs);
                 m_AssetName          = null;
                 m_LastProgress       = 0f;
                 m_AssetBundleRequest = null;
             }
             else
             {
                 LoadResourceAgentHelperErrorEventArgs loadResourceAgentHelperErrorEventArgs = LoadResourceAgentHelperErrorEventArgs.Create(LoadResourceStatus.AssetError, Utility.Text.Format("Can not load asset '{0}' from asset bundle which is not exist.", m_AssetName));
                 m_LoadResourceAgentHelperErrorEventHandler(this, loadResourceAgentHelperErrorEventArgs);
                 ReferencePool.Release(loadResourceAgentHelperErrorEventArgs);
             }
         }
         else if (m_AssetBundleRequest.progress != m_LastProgress)
         {
             m_LastProgress = m_AssetBundleRequest.progress;
             LoadResourceAgentHelperUpdateEventArgs loadResourceAgentHelperUpdateEventArgs = LoadResourceAgentHelperUpdateEventArgs.Create(LoadResourceProgress.LoadAsset, m_AssetBundleRequest.progress);
             m_LoadResourceAgentHelperUpdateEventHandler(this, loadResourceAgentHelperUpdateEventArgs);
             ReferencePool.Release(loadResourceAgentHelperUpdateEventArgs);
         }
     }
 }