Unity 资源包服务器自动化

Cez*_*yen 5 c# unity-game-engine assetbundle server

我正在 Unity 中开发一个应用程序,用户可以在其中上传自己的 3D 模型。我一直在寻找实现此目的的方法,从所有类型加载模型的最佳方法似乎是资源包。为了在服务器上创建这些捆绑包,我想以批处理模式运行 Unity 并通过静态方法创建捆绑包。

我面临的问题是似乎不可能将脚本中的对象包含在资源包中。在编辑器中,您只需选择资源包名称,但要自动执行此操作,这是不可能的。

Cez*_*yen 1

按照我的初衷,使用 AssetImporter 找到了答案。由于某种原因,我认为我必须实例化该对象才能捆绑它。这是一个错误的假设,只需添加项目路径,您就可以将包名称分配给资产。

    foreach (string file in filesInFolder)
    {
        if (!file.Contains(".meta"))
        {
            AssetImporter importer = AssetImporter.GetAtPath("Assets/models/" + file);
            if (importer != null)
            {
                importer.assetBundleName = BundleName;
                Debug.Log("assetBundlesAssigned");

            }
            else
            {
                Debug.Log("No asset selected");
                complete = false;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当所有资产都分配完毕后,您可以像往常一样构建它们。

public static void ExecBuildAssetBundles()
{
    Debug.Log("Building bundle");
    BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.Android);
}
Run Code Online (Sandbox Code Playgroud)