欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > [Unity]设置自动打包脚本

[Unity]设置自动打包脚本

2025/5/3 6:32:44 来源:https://blog.csdn.net/JianShengShuaiest/article/details/147641469  浏览:    关键词:[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);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词