首次提交

This commit is contained in:
Bob.Song
2026-03-05 18:07:55 +08:00
commit e125bb869e
4534 changed files with 563920 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
namespace NBF
{
public abstract class BaseBuildTask
{
public abstract void Run(BuildContext context);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2d1fa1e3836b449ea0f81c0fa1ca7246
timeCreated: 1735888255

View File

@@ -0,0 +1,42 @@
using System.IO;
using UnityEditor;
using UnityEngine;
namespace NBF
{
/// <summary>
/// 打包ab
/// </summary>
[BuildTaskInfo(BuildTaskId.AB, "打包AB")]
public class BuildABTask : BaseBuildTask
{
public override void Run(BuildContext context)
{
if (context.Ver != PlayerSettings.bundleVersion)
{
PlayerSettings.bundleVersion = context.Ver;
}
DeleteStreamingAssetsBundleCache();
NBC.Asset.Editor.Builder.Build();
// Builder.Build();
}
void DeleteStreamingAssetsBundleCache()
{
var mainFolder = Path.Combine(Application.streamingAssetsPath, "main").Replace("\\", "/");
if (Directory.Exists(mainFolder))
Directory.Delete(mainFolder, true);
string[] files = Directory.GetFiles(Application.streamingAssetsPath);
foreach (string file in files)
{
var filePath = file.Replace("\\", "/");
string fileName = Path.GetFileName(filePath);
if (fileName.Contains("packages_") || fileName.Contains("version"))
File.Delete(filePath);
}
AssetDatabase.Refresh();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2acde0d91b8b47ad8abdd6febd62232c
timeCreated: 1735888685

View File

@@ -0,0 +1,121 @@
using System;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
namespace NBF
{
/// <summary>
/// 打包app
/// </summary>
[BuildTaskInfo(BuildTaskId.App, "打包App")]
public class BuildAppTask : BaseBuildTask
{
public static readonly string AppInfoPath = Application.dataPath + "/Scripts/Def/AppInfo.cs";
public static readonly string ProjectDir = Directory.GetParent(Application.dataPath)?.ToString();
private BuildContext _context;
public override void Run(BuildContext context)
{
_context = context;
ChangeAppInfo();
BuildAppByPath();
}
/// <summary>
/// 修改打包脚本信息
/// </summary>
private void ChangeAppInfo()
{
if (!File.Exists(AppInfoPath))
{
Debug.LogError("app info 脚本路径错误");
return;
}
EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
if (_context.Ver != PlayerSettings.bundleVersion)
{
PlayerSettings.bundleVersion = _context.Ver;
}
var change = false;
var lines = File.ReadAllLines(AppInfoPath);
for (var i = 0; i < lines.Length; i++)
{
var str = lines[i];
if (str.Contains("string Code"))
{
if (!str.Contains(_context.Ver))
{
lines[i] = $"\t\tpublic const string Code = \"{_context.Ver}\";";
change = true;
}
}
}
if (change)
{
File.WriteAllLines(AppInfoPath, lines);
AssetDatabase.Refresh();
}
}
private void BuildAppByPath()
{
// 设置打包的输出路径
string outputPath = $"{ProjectDir}/Release";
string location =
$"{outputPath}/{_context.Ver}/Fishing.exe";
BuildTarget activeTarget = EditorUserBuildSettings.activeBuildTarget;
switch (activeTarget)
{
case BuildTarget.StandaloneWindows:
case BuildTarget.StandaloneWindows64:
case BuildTarget.Android:
case BuildTarget.iOS:
EditorSettings.spritePackerMode = SpritePackerMode.AlwaysOnAtlas;
PlayerSettings.gcIncremental = true;
break;
}
var targetGroup = Builder.GetTargetGroup();
if (targetGroup == BuildTargetGroup.Unknown)
{
Debug.LogError("不支持的平台");
return;
}
// 读取 Build Settings 中 “Scenes In Build” 勾选的场景
var scenes = EditorBuildSettings.scenes
.Where(s => s.enabled)
.Select(s => s.path)
.ToArray();
var buildOptions = BuildOptions.CompressWithLz4;
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions()
{
scenes = scenes, //new[] { "Assets/Scenes/StartUp.unity" }, //Assets/Scenes/StartUp.unity
locationPathName = location,
options = buildOptions,
target = activeTarget,
targetGroup = targetGroup,
};
var report = BuildPipeline.BuildPlayer(buildPlayerOptions);
if (report.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
{
Debug.LogError("打包失败");
return;
}
#if UNITY_EDITOR
Application.OpenURL($"file:///{outputPath}");
#endif
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2039f10c99ae4fa18259e438203cc78c
timeCreated: 1735889001

View File

@@ -0,0 +1,14 @@
namespace NBF
{
/// <summary>
/// 导表
/// </summary>
[BuildTaskInfo(BuildTaskId.Excel, "导出Excel表")]
public class BuildExcelTask : BaseBuildTask
{
public override void Run(BuildContext context)
{
// ExcelToJsonWindow.GenConfig(false);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 241caaeb76c54700bc0da1f73179fcf4
timeCreated: 1735888813