Unity导出Android自动添加文件夹

问题遇到的现象和发生背景

我在使用Unity把游戏导出Anroid版本

我的游戏中有模组系统, 所以有一个 sole_assets
Windows我会用程序自动放在放在exe同级目录
我想要让编辑器在编译Anroid的时候自动把这个文件夹放在APK压缩包打开后的根目录下, 我应该怎么做?”

你可以使用Unity的PostprocessBuildPlayer事件来自动在打包APK之后处理文件。

你可以在你的项目中创建一个脚本,在这个脚本中挂载PostprocessBuildPlayer事件,然后在这个事件回调函数中写入代码来复制文件并放置到APK压缩包中。

例如:

using UnityEngine;
using UnityEditor;
using System.IO;

public class MyBuilder : MonoBehaviour
{
    static void OnPostprocessBuildPlayer(BuildTarget target, string pathToBuiltProject)
    {
        if (target == BuildTarget.Android)
        {
            // 获取源文件夹的路径
            string sourceFolderPath = Application.dataPath + "/sole_assets";

            // 获取目标文件夹的路径
            string targetFolderPath = Path.GetDirectoryName(pathToBuiltProject) + "/sole_assets";

            // 复制文件夹
            FileUtil.CopyFileOrDirectory(sourceFolderPath, targetFolderPath);
        }
    }
}

注意,在使用FileUtil.CopyFileOrDirectory函数复制文件夹时,如果目标文件夹已存在,会自动覆盖。如果你希望在复制文件之前进行一些额外的处理,你可以使用Directory.Exists函数来检查目标文件夹是否存在,如果存在,再使用Directory.Delete函数删除目标文件夹,然后再复制源文件夹。