首页 文章

Unity资产包服务器自动化

提问于
浏览
3

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

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

1 回答

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

相关问题