Unity资产包服务器自动化

5
我正在使用Unity开发一个应用程序,用户可以上传自己的3D模型。我一直在寻找实现此功能的方法,最好的方法似乎是使用资源包从所有类型中加载模型。为了在服务器上创建这些包,我想以批处理模式运行Unity,并从静态方法中创建这些包。
我遇到的问题是,似乎不可能从脚本中将对象包含在资源包中。在编辑器中,您只需选择资源包名称,但自动化这个过程则不可能。
1个回答

1

使用AssetImporter,我找到了答案,正如我最初想要的那样。出于某种原因,我认为必须实例化对象才能打包它。这是一个错误的假设,只需添加项目路径即可将bundle名称分配给资产。

    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;
            }
        }
    }

当所有的资产被分配后,您可以像往常一样构建它们。
public static void ExecBuildAssetBundles()
{
    Debug.Log("Building bundle");
    BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.Android);
}

太棒了。我花了很多时间寻找它。 - Faiyaz Md Abdul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接