/// <summary> /// 添加请求 /// </summary> /// <param name="_request">请求</param> public void Request(IAssetBundleRequestInMemory _request) { mQueueRequest.Enqueue(_request); if (!mAssetBundleResultMonoBehaviour.ContainsKey(_request.input.uniqueId)) { GameObject go = new GameObject(_request.input.config.fileName); go.hideFlags = gameObject.hideFlags; go.transform.SetParent(gameObject.transform); AssetBundleOutputMonoBehaviour mono = go.AddDynamicComponent <AssetBundleOutputMonoBehaviour>(); mono.SetParameter(fileParameter); mAssetBundleResultMonoBehaviour.Add(_request.input.uniqueId, mono); } }
/// <summary> /// 执行请求队列 /// </summary> void OnExecuteQueueRequest() { if (mLoadState == enLoadState.Ready) { if (!mIsExecuteQueue) { mIsExecuteQueue = true; while (mQueueRequest.Count > 0) { IAssetBundleRequestInMemory req = mQueueRequest.Dequeue(); AssetBundleOutput output = new AssetBundleOutput(req.input); output.OnInstantiate += Output_OnInstantiate; req.outputEvent?.Invoke(output); } mIsExecuteQueue = false; } } }