【问题标题】:How I can test AssetBundle (DLC) locally on Android in Unity?如何在 Unity 中的 Android 上本地测试 AssetBundle (DLC)?
【发布时间】:2019-02-16 06:17:09
【问题描述】:

我正在尝试为我目前正在开发的游戏测试一些 AssetBundle。我想使用它,因为我不希望游戏占用太多空间。我仍然不知道服务器如何工作以及如何将它们上传到那里。我正在寻找如何做到这一点,并在这里找到了一些整洁的东西:AssetBundle (DLC) data load to Android phone at runtime [UNITY] 但它告诉了一些关于上传到服务器和东西的信息,但我想在本地测试它。有什么推荐吗?

按照 Remy 告诉我的内容,我的代码如下所示:

public class LoadFromFileExample : MonoBehaviour {

// Use this for initialization
void Start () {

    string fileName = "planes";
    var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, fileName));
    if (myLoadedAssetBundle == null)
    {
        Debug.Log("Failed to load AssetBundle!");
        return;
    }
    var prefab = myLoadedAssetBundle.LoadAsset< GameObject > ("andy");
    Instantiate(prefab);

    myLoadedAssetBundle.Unload(false);

}

// Update is called once per frame
void Update () {

}
} 

但它显示以下错误:Unable to open archive file: C:/Users/Chris/Desktop/myDLC/Assets/StreamingAssets/myassetBundle

This is the asset bundle name

【问题讨论】:

    标签: android unity3d assets assetbundle


    【解决方案1】:

    看看AssetBundle.LoadFromFile

    这允许您从设备的本地存储中加载您的资产包文件。这意味着您不必先上传/下载它们。

    它将如下所示:

    string fileName = "fooAssetBundle";//name of the assetbundle you want to load
    
    var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, fileName));//Creates a filepath starting at the streamingAssetsPath and appends filename to it. 
    
    var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("MyObject");//Create a GameObject from the assetbundle
    Instantiate(prefab);//instantiate the GameObject
    
    myLoadedAssetBundle.Unload(false);//Unload the assetbundle from memory as it isn't used anymore
    

    以上示例使用Application.StreamingAssetsPath,但这可以是您想要的任何路径,例如Application.PersistentDataPath 或外部存储。

    【讨论】:

    • 谢谢你的回答,我很接近我想要完成的事情。我按照你的建议做了,我收到一个错误:“无法打开存档文件:C:/Users/Chris/Desktop/myDLC/Assets/StreamingAssets/myassetBundle”,我不知道是怎么回事。我什至做了一个名为“StreamingAssets”的文件夹并将我的资产包放在那里,但仍然没有帮助:/
    • 您确定该文件存在于该位置吗?就像你在资源管理器中复制它一样,你最终会得到文件,并且有一个名为“myassetBundle?”的文件?
    • 这就是我担心的事情,我没有文件名“myassetBundle”,资产包名称是“planes”,我保存项目并重新加载它,它一直说“myassetBundle” "
    • 我附上了assetBundles文件夹的图片
    • 在“planes”内,它假设有 3 个资产,名为:“andy”、“jet”和“plane”。
    猜你喜欢
    • 2018-10-14
    • 2020-02-07
    • 2018-10-15
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多