Unity3D一键导出Windows程序

using UnityEngine;  
using System.Collections;  
using UnityEditor;  
using System.Collections.Generic;  
using System.IO;  
  
public class Tools : EditorWindow  
{  
    [MenuItem("Tools/Build for Windows")]  
    public static void ShowWindow()  
    {  
        EditorWindow.GetWindow(typeof(Tools), true, "导出Windows应用程序");  
    }  
    static string exePath = "";  
    static List<string> allSceneName = new List<string>();  
    void OnGUI()  
    {  
        GUILayout.Label("导出路径:", EditorStyles.boldLabel);  
        GUILayout.Label(exePath, EditorStyles.boldLabel);  
        if (GUILayout.Button("选择导出路径"))  
        {  
            exePath = EditorUtility.SaveFolderPanel("导出路径", "", "");  
        }  
        if (GUILayout.Button("扫描场景"))  
        {  
            string[] sl = Directory.GetFiles(Application.dataPath + "/Scene/");  
            foreach (string file in sl)  
            {  
                if (!file.Contains(".meta"))  
                {  
                    string temp = file;  
                    if (!allSceneName.Contains(temp))  
                    {  
                        allSceneName.Add(temp);  
                    }  
                }  
            }  
        }  
  
        if (GUILayout.Button("导出程序"))  
        {  
            string[] levels = new string[1];  
            Debug.Log("allSceneName.Count:" + allSceneName.Count);  
            if (allSceneName.Count > 0)  
            {  
                Debug.Log("allSceneName.Count:" + allSceneName.Count);  
                for (int i = 0; i < allSceneName.Count; i++)  
                {  
                    levels[0] = allSceneName[i];  
                    string temp = allSceneName[i].Replace(Application.dataPath + "/Scene/", "");  
                      
                    temp = temp.Replace(".unity", "");  
                    string exeName = exePath + "/" + temp + ".exe";  
                    if (File.Exists(exeName))  
                    {  
                        File.Delete(exeName);  
                        Directory.Delete(exePath + "/" + temp + "_Data",true);  
                    }  
                    BuildPipeline.BuildPlayer(levels, exeName, BuildTarget.StandaloneWindows, BuildOptions.None);  
                }  
            }  
        }  
    }  
}  

效果如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值