当前位置: 首页 > ds >正文

[Unity]设置自动打包脚本

背景 我们经常会使用自动打包功能

文件名称:

AutoBuild.cs
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;public class AutoBuilder
{[MenuItem("Build/GetCurrentBuildTarget")]public static void GetCurrentBuildTarget(){Debug.Log($"当前平台为:{EditorUserBuildSettings.activeBuildTarget}");Debug.Log($"当前平台组为:{BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)}");}[MenuItem("Build/Build")]public static void Build(){BuildTarget currentTarget = EditorUserBuildSettings.activeBuildTarget;BuildTargetGroup currentGroup = BuildPipeline.GetBuildTargetGroup(currentTarget);BuildTarget buildTarget = BuildTarget.StandaloneWindows64;BuildTargetGroup buildTargetGroup = BuildTargetGroup.Standalone;Debug.Log($"当前平台:  {currentTarget}");if (currentTarget != buildTarget){Debug.Log($"检测到非 {buildTarget} 平台,正在切换...");bool success = EditorUserBuildSettings.SwitchActiveBuildTarget(buildTargetGroup,buildTarget);if (success){Debug.Log($"切换至 {buildTarget} 平台成功");// 可选:保存工程设置(非必须)AssetDatabase.SaveAssets();}else{Debug.LogError($"切换失败!请检查 {buildTarget} 模块是否已安装");}}else{Debug.Log($"当前已是 {buildTarget} 平台,无需切换");}// 获取场景设置中的所有场景string[] scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled) // 过滤出被启用的场景.Select(scene => scene.path) // 获取场景路径.ToArray();string projectPath = Directory.GetParent(Application.dataPath).FullName;Debug.Log("Project Path: " + projectPath);string outputpath =buildTargetGroup == BuildTargetGroup.Standalone? Path.Combine(projectPath,buildTargetGroup.ToString(),EditorUserBuildSettings.activeBuildTarget.ToString()): Path.Combine(projectPath, EditorUserBuildSettings.activeBuildTarget.ToString());Debug.Log("Output Path: " + outputpath);// 执行构建BuildPipeline.BuildPlayer(scenes, outputpath, buildTarget, BuildOptions.None);}
}
http://www.xdnf.cn/news/3312.html

相关文章:

  • Copilot 祝你走在AI前沿:2025 年 4 月动态
  • 小程序中的页面跳转
  • TimeDistill:通过跨架构蒸馏的MLP高效长期时间序列预测
  • 有状态服务与无状态服务:差异、特点及应用场景全解
  • leetcode76
  • Vue+tdesign t-input-number 设置长度和显示X号
  • 智能驾驶新时代:NVIDIA高级辅助驾驶引领未来出行安全
  • iOS 性能调优实战:三款工具横向对比实测(含 Instruments、KeyMob、Xlog)
  • C语言与Unix的传奇起源
  • (32)VTK C++开发示例 ---背景纹理
  • pytorch中的变量内存分配
  • WPF之RadioButton控件详解
  • C/C++核心机制深度解析:指针、结构体与动态内存管理(面试精要)
  • 生成项目.gitignore文件的多种高效方式
  • 分布式-redisson
  • 优先级队列
  • 【DBeaver】如何连接MongoDB
  • VSCode Auto Rename Tag插件不生效
  • OLED技术解析与驱动实战指南
  • Python 使用一等函数实现设计模式(“命令”模式)
  • C++智能指针
  • Gradio全解20——Streaming:流式传输的多媒体应用(1)——流式传输音频:魔力8号球
  • AE模板 动感节奏快闪图文展示介绍片头 Typographic Intro
  • Hadoop 集群基础指令指南
  • usb端点笔记
  • 【UE5】“对不起,您的客户端未能传递登录所需的参数”解决办法
  • QCefView应用和网页的交互
  • Github 热点项目 Qwen3 通义千问全面发布 新一代智能语言模型系统
  • WPF使用高性能图表
  • 【游戏ai】从强化学习开始自学游戏ai-2 使用IPPO自博弈对抗pongv3环境