Exemplo n.º 1
0
    /// <summary>
    /// 移除数据对象
    /// </summary>
    /// <param name="path">Path.</param>
    /// <param name="destroy">If set to <c>true</c> destroy.</param>
    public void RemoveData(string path, bool destroy = false)
    {
        if (this.dataList == null || !this.dataList.ContainsKey(path))
        {
            return;
        }

        WwwData wwwData = this.dataList[path];

        if (wwwData != null)
        {
            // 释放引用的资源
            if (wwwData.www.assetBundle != null)
            {
                wwwData.www.assetBundle.Unload(false);
            }
            wwwData.www.Dispose();
            wwwData.www = null;
        }
        this.dataList.Remove(path);

        if (destroy)
        {
            this.Destroy();
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 添加数据到缓存
    /// </summary>
    /// <param name="wwwData">Www data.</param>
    public void InsertData(WwwData wwwData)
    {
        if (wwwData == null)
        {
            return;
        }

        if (this.dataList == null)
        {
            this.dataList = new Dictionary <string, WwwData>();
        }
        this.dataList.Add(wwwData.path, wwwData);
    }
Exemplo n.º 3
0
    /// <summary>
    /// 获得 Texture2D 对象
    /// </summary>
    /// <returns>The data texture.</returns>
    /// <param name="path">Path.</param>
    public Texture2D GetDataTexture(string path)
    {
        if (this.dataList == null || !this.dataList.ContainsKey(path))
        {
            return(null);
        }

        WwwData wwwData = this.dataList[path];

        if (wwwData != null)
        {
            return(wwwData.www.texture);
        }

        return(null);
    }
Exemplo n.º 4
0
    /// <summary>
    /// 获得声音
    /// </summary>
    /// <returns>The data audio clip.</returns>
    /// <param name="path">Path.</param>
    public AudioClip GetDataAudioClip(string path)
    {
        if (this.dataList == null || !this.dataList.ContainsKey(path))
        {
            return(null);
        }

        WwwData wwwData = this.dataList[path];

        if (wwwData != null)
        {
            return(wwwData.www.audioClip);
        }

        return(null);
    }
Exemplo n.º 5
0
    /// <summary>
    /// 获取 AssetBundle 对象
    /// </summary>
    /// <returns>The data asset bundle.</returns>
    /// <param name="path">Path.</param>
    public AssetBundle GetDataAssetBundle(string path)
    {
        if (this.dataList == null || !this.dataList.ContainsKey(path))
        {
            return(null);
        }

        WwwData wwwData = this.dataList[path];

        if (wwwData != null)
        {
            return(wwwData.www.assetBundle);
        }

        return(null);
    }
Exemplo n.º 6
0
    /// <summary>
    /// 加载数据操作
    /// </summary>
    /// <param name="operaterType">If set to <c>true</c> operater type.</param>
    /// <param name="www">Www.</param>
    private void LoaderOperater(bool operaterType, WWW www)
    {
        if (this.wwwLoaderOrder == null || this.wwwLoaderPath == null)
        {
            return;
        }

        if (operaterType)
        {
            if (this.wwwLoaderPath.loaderTypeEnum != WwwLoaderTypeEnum.UNITY_3D)
            {
                WwwData wwwData = new WwwData(this.wwwLoaderPath.path, this.wwwLoaderPath.loaderTypeEnum, www);
                WwwDataManager.instance.InsertData(wwwData);
            }
        }
        this.wwwLoaderOrder.pathList.Remove(this.wwwLoaderPath);

        if (this.wwwLoaderObject != null)
        {
            this.wwwLoaderObject.UnLoader(false);
        }

        this.LoaderItem();
    }