//在LoadAsssetBundle时inUrl链接会拼入用^拆分cache路径,用&拆分连接参数 public RequestHandler(string inHelpInfo, NetCtrlManager net, string inUrl, WebQuestDelegate p = null, WebQuestDelegate eFalse = null, WebQuestDelegateText eText = null, WebQuestDelegateTexture eTexture = null, WebQuestDelegateAssetBundle eAssetBundle = null) { if (inUrl == "") { Debug.LogError("输入的URL为空!"); return; } name = inHelpInfo; netCtrlManager = net; helpInfo = inHelpInfo; Debug.Log("InputURL: <color=blue>" + inUrl + "</color>"); timing = 0; string[] splitStringGroup = inUrl.Split('^'); url = splitStringGroup[0]; //保存所有的参数 paddingArgUrlSplitGroup = url.Split('?'); if (paddingArgUrlSplitGroup.Length > 1) { //除去参数的连接 urlWithoutArg = paddingArgUrlSplitGroup[0]; paddingArgUrlSplitGroup = paddingArgUrlSplitGroup[1].Split('&'); } // string[] urlSplit = url.Split('/'); // name = urlSplit[urlSplit.Length - 1]; //Cache路径 if (splitStringGroup.Length > 1) { paddingUrl = splitStringGroup[1]; paddingUrlSplitGroup = paddingUrl.Split(','); } if (url == "") { processInfo = "url为空"; return; } isNeedProcess = true; onProgress += GetProgress; if (p != null) { onProgress += p; onTrue += p; onFalse += p; } if (eFalse != null) { onFalse += eFalse; } if (eText != null) { request = UnityWebRequest.Get(url); requestType = 0; onEndText += eText; finalTimeOut = timeOut; } else if (eTexture != null) { WWWForm form = new WWWForm(); form.AddField("downloadId", paddingArgUrlSplitGroup[0].Split('=')[1]); form.AddField("downloadType", paddingArgUrlSplitGroup[1].Split('=')[1]); form.AddField("mediaType", paddingArgUrlSplitGroup[2].Split('=')[1]); form.AddField("fileName", paddingArgUrlSplitGroup[3].Split('=')[1]); /* * Debug.Log(urlWithoutArg); * foreach (string s in paddingArgUrlSplitGroup) * { * Debug.Log(s); * } */ request = UnityWebRequest.Post(urlWithoutArg, form); requestType = 1; onEndTexture += eTexture; request.downloadHandler = new DownloadHandlerTexture(); finalTimeOut = timeOut * 12; } else if (eAssetBundle != null) { request = UnityWebRequest.Get(url); requestType = 2; onEndAssetBundle += eAssetBundle; //name包含了路径Cache request.downloadHandler = new DownloadHandlerAssetBundle("", paddingUrlSplitGroup[0], Hash128.Parse(paddingUrlSplitGroup[1]), uint.Parse(paddingUrlSplitGroup[2])); finalTimeOut = timeOut * 360; } request.timeout = finalTimeOut; asyncOpertion = request.SendWebRequest(); // asyncOpertion.allowSceneActivation = true; }