Unity资产包服务器自动化

时间:2017-09-18 08:13:45

标签: c# unity3d server assetbundle

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

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

1 个答案:

答案 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);
}