统一编译后在数据文件夹中复制一些额外的文件

问题描述:

我必须将两个文本文件和一个文件夹复制到构建数据文件夹中,然后再编译窗口。每次我建立我想要从资产复制这些文件和文件夹建立数据文件夹。这可能是统一的吗?导致有时我忘记复制数据文件夹中的所需文件,并且我的播放器无法正常工作。统一编译后在数据文件夹中复制一些额外的文件

这听起来像你想要你自己的自定义编辑器构建函数。您可以使用自定义编辑器菜单项执行此操作。

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

包含该文件脚本将需要位于您的项目中名为“编辑器”的文件夹中。

你会在Unity编辑得到一个新的菜单项,执行您的自定义生成:

enter image description here

+0

你不需要自定义生成做到这一点 – Programmer

+0

所以我要硬编码路径 –

您可以订阅一个静态方法来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