我正在Unity中开发一个应用程序,用户可以上传自己的3D模型。我一直在寻找实现这一点的方法,从各种类型加载模型的最佳方法似乎是资产包。要在服务器上创建这些捆绑包,我想以批处理模式运行Unity,并从静态方法创建捆绑包。
我面临的问题是,似乎无法在脚本中包含资产包中的对象。在编辑器中,您只需选择资产包名称,但要自动执行此操作,这是不可能的。
答案 0 :(得分:1)
首先使用AssetImporter找到答案。出于某种原因,我认为我必须实例化该对象才能捆绑它。这是一个错误的假设,只需添加项目路径,您就可以为资产分配一个bundlename。
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);
}