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