/// <summary>
        /// File のLoadリクエスト
        /// </summary>
        /// <param name="_fileName">ファイル名(CPKのRootからの相対パス)</param>
        /// <param name="_data">対象のBindData</param>
        /// <param name="_onComplete">コールバック</param>
        /// <returns></returns>
        private IEnumerator LoadFile(string _fileName, BinderData _data, OnCompleteLoad _onComplete)
        {
            // Validation
            if (string.IsNullOrEmpty(_fileName) || _data == null)
            {
                if (_onComplete != null)
                {
                    _onComplete.Invoke(false, null);
                }
                yield break;
            }

            CriFsLoadFileRequest req = CriFsUtility.LoadFile(_data.Binder, _fileName);

            // 待機
            yield return(req.WaitForDone(m_manager));

            bool isSucceeded = string.IsNullOrEmpty(req.error);

            if (!isSucceeded)
            {
                Debug.LogError("[Error]" + req.error);
                Debug.LogWarning("Failed to load :" + _fileName);
            }

            if (_onComplete != null)
            {
                _onComplete.Invoke(isSucceeded, req.bytes);
            }
            req.Dispose();
        }
Example #2
0
    public CriFsLoadFileRequest LoadFile(CriFsBinder binder, string path, CriFsRequest.DoneDelegate doneDelegate, int readUnitSize)
    {
        var request = new CriFsLoadFileRequest(binder, path, doneDelegate, readUnitSize);

        this.AddRequest(request);
        return(request);
    }
Example #3
0
 public override void Update()
 {
     if (this.loadFileReq != null) {
         if (this.loadFileReq.isDone) {
             if (this.loadFileReq.error != null) {
                 this.error = "Error occurred.";
                 this.Done();
             } else {
                 this.assetBundleReq = AssetBundle.CreateFromMemory(this.loadFileReq.bytes);
             }
             this.loadFileReq = null;
         }
     } else if (this.assetBundleReq != null) {
         if (this.assetBundleReq.isDone) {
             this.assetBundle = this.assetBundleReq.assetBundle;
             this.Done();
         }
     } else {
         this.Done();
     }
 }
Example #4
0
    public override void Dispose()
    {
        if (this.isDisposed) {
            return;
        }

        /* ローダの破棄 */
        if (this.loadFileReq != null) {
            this.loadFileReq.Dispose();
            this.loadFileReq = null;
        }

        GC.SuppressFinalize(this);
        this.isDisposed = true;
    }
Example #5
0
 public CriFsLoadAssetBundleRequest(CriFsBinder binder, string path, int readUnitSize)
 {
     this.path = path;
     this.loadFileReq = CriFsUtility.LoadFile(binder, path, readUnitSize);
 }
Example #6
0
 public CriFsLoadFileRequest LoadFile(CriFsBinder binder, string path, CriFsRequest.DoneDelegate doneDelegate, int readUnitSize)
 {
     var request = new CriFsLoadFileRequest(binder, path, doneDelegate, readUnitSize);
     this.AddRequest(request);
     return request;
 }