Unity 自定义打包并更新到FTP服务器(WebGl),其他平台待测试

本文介绍如何在Unity中自定义打包WebGL应用,并通过FTP上传至服务器。虽然未测试其他平台,但提供了Editor编辑界面的操作指南。请注意,代码中未包含安全检查,确保配置文件夹路径和FTP服务器信息的准确性。
摘要由CSDN通过智能技术生成

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值