public void GetResource(string strResourceName_With_Extension, OnGetStreamingResource OnGetResource, bool bIsCashing, object pParam)
    {
        if (bIsCashing)
        {
            WWW pFindResource;
            if (_mapResourceCashing.TryGetValue(strResourceName_With_Extension, out pFindResource))
            {
                OnGetResource(strResourceName_With_Extension, pFindResource, true, pParam);
                return;
            }
        }

        _pCoroutineExcuter.StartCoroutine(CoGetStreammingAsset(strResourceName_With_Extension, OnGetResource, bIsCashing, pParam));
    }
    private IEnumerator CoGetStreammingAsset(string strResourceName_With_Extension, OnGetStreamingResource OnGetResource, bool bIsCashing, object pParam)
    {
        _pStrBuilder.Length = 0;
        _pStrBuilder.Append(Application.streamingAssetsPath).Append("/").Append(strResourceName_With_Extension);

        WWW www = new WWW(_pStrBuilder.ToString());

        yield return(www);

        bool bResult = (www.error != null && www.error.Contains("Error")) == false;

        OnGetResource(strResourceName_With_Extension, www, bResult, pParam);
        if (bIsCashing)
        {
            _mapResourceCashing[strResourceName_With_Extension] = www;
        }
    }