private void LoadEntitySuccessCallback(string entityAssetName, object entityAsset, float duration, object userData)
        {
            //获取记载实体的信息
            LoadEntityInfo loadEntityInfo = (LoadEntityInfo)userData;

            if (loadEntityInfo == null)
            {
                Debug.LogError("加载实体的信息为空");
                return;
            }
            m_EntitiesBeingLoaded.Remove(loadEntityInfo.EntityId);

            if (m_EntitiesToReleaseOnLoad.Contains(loadEntityInfo.SerialId))
            {
                Debug.LogError(string.Format("需要释放的实体:{0}(id:{1})加载成功", loadEntityInfo.EntityId.ToString(), loadEntityInfo.SerialId.ToString()));
                m_EntitiesToReleaseOnLoad.Remove(loadEntityInfo.SerialId);
                m_EntityHelper.ReleaseEntity(entityAsset, null);
                return;
            }

            //实例化实体,并将实体实例对象放入对象池
            EntityInstanceObject entityInstanceObject = new EntityInstanceObject(entityAssetName, entityAsset, m_EntityHelper.InstantiateEntity(entityAsset), m_EntityHelper);

            loadEntityInfo.EntityGroup.RegisterEntityInstanceObject(entityInstanceObject, true);

            //显示实体
            ShowEntity(loadEntityInfo.EntityId, entityAssetName, loadEntityInfo.EntityGroup, entityInstanceObject.Target, true, duration, loadEntityInfo.UserData);
        }
        private void LoadEntityDependencyAssetCallback(string entityAssetName, string dependencyAssetName, int loadedCount, int totalCount, object userData)
        {
            LoadEntityInfo loadEntityInfo = (LoadEntityInfo)userData;

            if (loadEntityInfo == null)
            {
                Debug.LogError("加载实体的信息为空");
                return;
            }

            //派发显示实体时加载依赖资源事件
            ShowEntityDependencyAssetEventArgs e = ReferencePool.Acquire <ShowEntityDependencyAssetEventArgs>();

            m_EventManager.Fire(this, e.Fill(loadEntityInfo.UserData, loadEntityInfo.EntityId, entityAssetName, loadEntityInfo.EntityGroup.Name, dependencyAssetName, loadedCount, totalCount));
        }
        private void LoadEntityUpdateCallback(string entityAssetName, float progress, object userData)
        {
            LoadEntityInfo loadEntityInfo = (LoadEntityInfo)userData;

            if (loadEntityInfo == null)
            {
                Debug.LogError("加载实体的信息为空");
                return;
            }

            //派发显示实体更新事件
            ShowEntityUpdateEventArgs e = ReferencePool.Acquire <ShowEntityUpdateEventArgs>();

            m_EventManager.Fire(this, e.Fill(loadEntityInfo.UserData, loadEntityInfo.EntityId, entityAssetName, loadEntityInfo.EntityGroup.Name, progress));
        }
        private void LoadEntityFailureCallback(string entityAssetName, LoadResourceStatus status, string errorMessage, object userData)
        {
            LoadEntityInfo loadEntityInfo = (LoadEntityInfo)userData;

            if (loadEntityInfo == null)
            {
                Debug.LogError("加载实体的信息为空");
                return;
            }
            m_EntitiesBeingLoaded.Remove(loadEntityInfo.EntityId);
            m_EntitiesToReleaseOnLoad.Remove(loadEntityInfo.SerialId);

            string message = string.Format("加载实体:{0} 失败,错误信息:{1}", entityAssetName, errorMessage);

            //派发显示实体失败事件
            ShowEntityFailureEventArgs e = ReferencePool.Acquire <ShowEntityFailureEventArgs>();

            m_EventManager.Fire(this, e.Fill(loadEntityInfo.UserData, loadEntityInfo.EntityId, entityAssetName, loadEntityInfo.EntityGroup.Name, message));
        }