2017-11-11 7 views
-1

Windows用のビルドにfinsihingした後、2つのテキストファイルとフォルダをビルドデータフォルダにコピーする必要があります。私がビルドするたびに、これらのファイルとフォルダをアセットからコピーしてデータフォルダを構築します。これは単一で可能ですか?いつか私はデータフォルダ内の目的のファイルをコピーするのを忘れ、私のプレーヤーは正しく動作しません。ビルド後にデータフォルダに余分なファイルをコピーします。

答えて

0

独自のカスタムエディタビルド機能が必要なようです。これはカスタムエディタメニュー項目で行うことができます。ここで

Unity Editor Extensions – Menu Items

コードがどのように見えるかです:

[MenuItem("MyBuildMenu/MyBuildMenuItem")] 
static void BuildAndCopyItems() 
{ 
    File.Copy("path1","path2"); // copy your files 
    BuildPipeline.BuildPlayer(); // build the player 
} 

あなたはBuildPlayerに正しい引数を渡す必要があります:

BuildPipeline.BuildPlayer

これを含むファイルスクリプトは 'Editor'というフォルダ内のプロジェクト内に存在する必要があります。

そして、あなたはあなたのカスタムビルドを実行するためにユニティエディタで新しいメニュー項目を取得します:

enter image description here

+0

をあなたはこの – Programmer

+0

は、だから私はハードコードにパス –

1

あなたはこの方法では、毎回のビルドと呼ばれるPostprocessBuild.OnPostprocessBuild に静的メソッドを購読することができます終了です。 だからあなたのコードは次のようになります。

using UnityEditor; 
using System.IO; 
using UnityEditor.Build; 
using UnityEngine; 

class MyCustomBuildProcessor : IPostprocessBuild 
{ 
    public int callbackOrder { get { return 0; } } 
    public void OnPostprocessBuild(BuildTarget target, string path) 
    { 
     File.Copy("sourceFilePath","destinationFilePath"); 
    } 
} 
+0

を持っているので、私はハードコードには、システムを追加することを忘れてい –

+0

パスを持っているためにカスタムビルドする必要はありません.io –

+0

良い点は、それを修正しました。 まあ、エディタウィンドウを使ってパスを設定し、たとえばEditorPrefs(https://docs.unity3d.com/ScriptReference/EditorPrefs.html)に保存することもできます。 プロジェクトへのパスを取得するには、Application.dataPathを使用します。 – Johannski

関連する問題