2017-09-18 4 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); 
}