gpt4 book ai didi

c# - unity assetbundle 加载 Assets 类型

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:19 26 4
gpt4 key购买 nike

我对来自 unity 的 Assets 包有疑问。我有一个包含多个 Assets 的 bundle ,名称相同但扩展名不同,例如 bonus.png bonus.prefab。

当我尝试实例化一个名为 bonus 的预制件时,assetBundle.LoadAssets("bonus") 函数不会像往常那样返回一个游戏对象。这似乎只有在我有多个同名 Assets 时才会发生。

AssetBundleRequest request = assetBundle.LoadAssetAsync(m_ObjectsToPool[i].m_Name, typeof(GameObject));
yield return request;
GameObject prefab = request.asset as GameObject;

if (prefab != null)
{
PoolManager.Instance.AddLoadedPrefabToPool(prefab, m_ObjectsToPool[i].m_Name, null, m_ObjectsToPool[i].m_Amount);
}

但如果我调用 loadallassets(typeof(GameObject)) 然后使用 for 循环,我可以找到我的 Assets 并正确实例化它。但这只是一种肮脏的做法。

最佳答案

您应该能够加载具有相同名称的不同类型的 Assets 。

您使用的是什么版本的 Unity?

您上面的代码看起来是正确的(除了称为 LoadAssetAsync 的拼写错误?),我们不确定它是否无法输入 if() 语句?

以下在 Unity 4.5.5f1 上对我有用

  1. 将 ExportAssetBundles.cs 上下文菜单脚本添加到我从 Unity Docs 构建的 Unity 中

  2. 创建要导出的内容

    • 找到一张JPG,将其拖入并命名为“marble.jpg”
    • 创建了一个立方体,将其命名为“marble”并将其拖到项目中以创建一个预制件
    • 创建一个 Material ,将其命名为“marble”,添加 jpg 并将其拖到立方体上,然后按“应用”。
  3. 使用“Build Assets From Selection - Track Selection”突出显示所有 3 个并导出 Assets 包,并将其保存到“c:\temp\marble.unity3d”

  4. 添加了一个脚本以在启动时加载该 Assets 包(与您的类似):

    using UnityEngine;
    using System.Collections;

    public class BundleTest : MonoBehaviour {

    void Start () {
    StartCoroutine(StartCo());
    }

    IEnumerator StartCo() {
    string url = "file://c:\\temp\\marble.unity3d";
    WWW www = new WWW(url);
    yield return www;

    AssetBundle bundle = www.assetBundle;
    AssetBundleRequest request = bundle.LoadAsync ("marble", typeof(GameObject));
    yield return request;

    Debug.Log ("loaded asset: " + request.asset.ToString());
    GameObject prefab = request.asset as GameObject;

    GameObject go = (GameObject)Instantiate(prefab);
    bundle.Unload(false);
    www.Dispose();
    }
    }
  5. 运行 Unity 并验证我正确地看到了游戏对象。

关于c# - unity assetbundle 加载 Assets 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com