2017-09-18 37 views
1

我正在Unity開發一個應用程序,用戶可以上傳他們自己的3D模型。我一直在尋找實現這一點的方法,加載所有類型模型的最佳方式似乎是資產捆綁。要在服務器上創建這些軟件包,我希望以批處理模式運行Unity,並從靜態方法創建軟件包。Unity資產捆綁包服務器自動化

我面臨的問題是,似乎不可能從腳本中包含資源包中的對象。在編輯器中,您只需選擇資產包名稱,但要自動執行此操作,這是不可能的。

回答

0

找到答案使用AssetImporter,因爲我首先打算。出於某種原因,我想我必須實例化對象才能捆綁它。這是一個錯誤的假設,只需添加項目路徑就可以將一個包名分配給一個資產。

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