Editor编辑界面
使用方式就不说了,没有做安全检测,请保证文件夹路径正确,ftp服务器信息正确,下面贴代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;
namespace XxSlitFrame.Tools.Editor
{
[Serializable]
public class BuildData
{
/// <summary>
/// 平台
/// </summary>
public BuildTarget buildTarget;
/// <summary>
/// 输出文件夹
/// </summary>
public string exportPath;
/// <summary>
/// 项目名称
/// </summary>
public string exportProjectName;
/// <summary>
/// 项目日期
/// </summary>
public bool projectNameDate;
/// <summary>
/// 离线打包
/// </summary>
public bool projectOffline;
/// <summary>
/// 项目类型
/// </summary>
public bool projectBuildEdition;
/// <summary>
/// 拷贝文件夹
/// </summary>
public List<string> copyFolderPaths = new List<string>();
/// <summary>
///粘贴文件夹
/// </summary>
public List<string> pasteFolderPaths = new List<string>();
/// <summary>
/// 更新到服务器
/// </summary>
public bool updateToFtp;
/// <summary>
/// 拷贝文件夹数量
/// </summary>
public int copyFolderCount;
/// <summary>
/// 服务器地址
/// </summary>
public string ftpServerPath;
/// <summary>
/// Ftp用户名
/// </summary>
public string ftpUser;
/// <summary>
/// Ftp用户名
/// </summary>
public string ftpPwd;
/// <summary>
/// Ftp根目录
/// </summary>
public string ftpRoot;
}
public class CustomBuild : EditorWindow
{
[MenuItem("xxslit/打包工具")]
private static void ShowWindow()
{
EditorWindow window = EditorWindow.GetWindow<CustomBuild>();
window.minSize = window.minSize;
window.maxSize = new Vector2(600, 650);
window.titleContent = new GUIContent() {image = null, text = "打包工具"};
window.Show();
}
private void InitData()
{
if (File.Exists(Application.dataPath + "/Resources/BuildData.json"))
{
BuildData buildData = JsonUtility.FromJson<BuildData>(FileOperation.GetTextToLoad(Application.dataPath + "/Resources", "BuildData.json"));
_buildTarget = buildData.buildTarget;
_exportPath = buildData.exportPath;
_exportProjectName = buildData.exportProjectName;
_enableProjectNameDate = buildData.projectNameDate;
_enableProjectOffline = buildData.projectOffline;
_enableProjectEdition = buildData.projectBuildEdition;
_copyFolderPaths = buildData.copyFolderPaths;
_pasteFolderPaths = buildData.pasteFolderPaths;
_copyFolderCount = buildData.copyFolderCount;
_updateToFtp = buildData.updateToFtp;
_ftpServerPath = buildData.ftpServerPath;
_ftpUser = buildData.ftpUser;
_ftpPwd = buildData.ftpPwd;
_ftpRoot = buildData.ftpRoot;
}
}
/// <summary>
/// 平台
/// </summary>
private BuildTarget _buildTarget = BuildTarget.StandaloneWindows;
/// <summary>
/// 输出文件夹
/// </summary>
private static string _exportPath;
/// <summary>
/// 项目名称
/// </summary>
private static string _exportProjectName;
/// <summary>
/// 项目日期
/// </summary>
private bool _enableProjectNameDate;
/// <summary>
/// 离线打包
/// </summary>
private bool _enableProjectOffline;
/// <summary>
/// 项目类型
/// </summary>
private bool _enableProjectEdition;
/// <summary>
/// 拷贝文件夹
/// </summary>
private List<string> _copyFolderPaths = new List<string>();
/// <summary>
///粘贴文件夹
/// </summary>
private List<string> _pasteFolderPaths = new List<string>();
/// <summary>
/// 拷贝文件夹数量
/// </summary>
private int _copyFolderCount;
private bool _initData;
/// <summary>
/// 服务器地址
/// </summary>
private static string _ftpServerPath;
/// <summary>
/// Ftp用户名
/// </summary>
private static string _ftpUser;
/// <summary>
/// Ftp用户名
/// </summary>
private static string _ftpPwd;
/// <summary>
/// Ftp根目录
/// </summary>
private static string _ftpRoot;
Vecto