示例#1
0
        /// <summary>
        ///卸载
        /// </summary>
        public void AddUnLoadAsset(UnityLODGroupFast fast)
        {
            int           id        = fast.GetInstanceID();
            LoadAssetBase loadAsset = null;

            fast.SetEnableApply();
            if (!m_LoadAsset.TryGetValue(id, out loadAsset))
            {
                return;
            }
            switch (loadAsset.State)
            {
            case Loadm_State.Loading:
                m_LoadCount--;
                loadAsset.UnLoad();
                break;

            case Loadm_State.Instantiated:
                if (!m_ImmediateUnLoad)   //不等待
                {
                    loadAsset.UnLoad();
                    break;
                }
                m_UnLoadCount++;
                loadAsset.ReadyState = Loadm_State.Unloaded;
                break;

            case Loadm_State.Unloaded:
            case Loadm_State.UnLoading:
                break;
            }
        }
示例#2
0
        /// <summary>
        ///刷新状态
        /// </summary>
        public void Refesh()
        {
            /*
             * if(m_LoadCount < 1 && m_UnLoadCount < 1)//gc
             * {
             *  if (UnLoadCount > m_Refesh)
             *  {
             *      UnLoadCount = 0;
             *      Resources.UnloadUnusedAssets();
             *  }
             *  return;
             * }*/
            if (!m_ImmediateUnLoad || m_LoadCount > 0 || m_UnLoadCount < 1) //是否等待加载完成
            {
                return;
            }

            foreach (var value in m_LoadAsset)
            {
                LoadAssetBase loadAsset = value.Value;
                if (loadAsset.ReadyState == Loadm_State.Unloaded)//卸载标记要卸载的
                {
                    loadAsset.ReadyState = Loadm_State.None;
                    loadAsset.UnLoad();
                    m_UnLoadCount--;
                }
            }
        }