C# can';无法加载,因为已加载另一个具有相同文件的AssetBundle。加载不同的捆绑包时出错
我已尝试从URL加载资产包。当我只加载单个资产包时,它工作得很好。但如果我尝试加载多个资产捆绑包,Unity会出现以下错误:C# can';无法加载,因为已加载另一个具有相同文件的AssetBundle。加载不同的捆绑包时出错,c#,unity3d,C#,Unity3d,我已尝试从URL加载资产包。当我只加载单个资产包时,它工作得很好。但如果我尝试加载多个资产捆绑包,Unity会出现以下错误:AssetBundle'https://example.com/uc?export=download&id=1234567'无法加载,因为已加载另一个具有相同文件的AssetBundle。 示例代码如下 using System.Collections; using UnityEngine; using UnityEngine.Networking; using Unity
AssetBundle'https://example.com/uc?export=download&id=1234567'无法加载,因为已加载另一个具有相同文件的AssetBundle。
示例代码如下
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using TMPro;
public class sahnecagir : MonoBehaviour
{
public TextMeshProUGUI Log;
// Start is called before the first frame update
void Start()
{
StartCoroutine(LoadBundleFromUrl("https://example.com/uc?export=download&id=123456", 2, 0, (uint)Crc.Gifts));
}
IEnumerator LoadBundleFromUrl(string url, int tip, uint version, uint crc)
{
using (UnityWebRequest uwr = UnityWebRequestAssetBundle.GetAssetBundle(url, version, crc))
{
uwr.SendWebRequest();
while (!uwr.isDone)
{
if(tip == 1) Log.text = "Rooms loading " + (uwr.downloadProgress * 100).ToString("0") + "%";
else if(tip == 2) Log.text = "Gifts loading " + (uwr.downloadProgress * 100).ToString("0") + "%";
yield return null;
}
if (uwr.isNetworkError || uwr.isHttpError)
{
Debug.Log(uwr.error);
}
else
{
if (tip == 1)
{
MainConfig.Instance.RoomBgBundle = DownloadHandlerAssetBundle.GetContent(uwr);
}
else if (tip == 2)
{
MainConfig.Instance.GiftBundle = DownloadHandlerAssetBundle.GetContent(uwr);
}
}
if (uwr.isDone && tip == 1)
{
Log.text = "Rooms loading 100%";
StartCoroutine(LoadBundleFromUrl("https://example.com/uc?export=download&id=1234567", 2, 0, 0));
}
else
{
Log.text = "Gifts loading 100%";
}
yield return null;
}
}
}
如何创建捆绑包?听起来您的AssetBundles共享一些公共文件=>因为Unity告诉您不能多次加载同一个文件。或者在不需要的时候考虑卸载一个包,或者将这些公共文件包含到您的构建中,或者仅以不同的方式下载它们。once@derHugo您好,不同的捆绑包中没有相同的文件。例如,捆绑包一包含:assets/resources/rooms/1.png-2png等等,捆绑包二包含:assets/resources/gift1.png-gift2.png如何创建捆绑包?听起来您的AssetBundles共享一些公共文件=>因为Unity告诉您不能多次加载同一个文件。或者在不需要的时候考虑卸载一个包,或者将这些公共文件包含到您的构建中,或者仅以不同的方式下载它们。once@derHugo您好,不同的捆绑包中没有相同的文件。例如,包1包含:assets/resources/rooms/1.png-2png等等,包2包含:assets/resources/gift1.png-gift2.png等等