Unity GUID Regenerator 项目教程
1. 项目的目录结构及介绍
Unity GUID Regenerator 项目的目录结构如下:
unity-guid-regenerator/
├── .github/
│ └── workflows/
│ └── ci.yml
├── Editor/
│ └── GuidRegenerator.cs
├── .gitignore
├── LICENSE
├── README.md
└── unity-guid-regenerator.unitypackage
目录结构介绍
- .github/workflows/ci.yml: GitHub Actions 的持续集成配置文件。
- Editor/GuidRegenerator.cs: 项目的主要代码文件,包含 GUID 重生成功能的实现。
- .gitignore: Git 忽略文件,指定哪些文件和目录不需要被 Git 追踪。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的说明文档,包含项目的基本信息和使用方法。
- unity-guid-regenerator.unitypackage: Unity 包文件,方便用户导入项目。
2. 项目的启动文件介绍
项目的启动文件是 Editor/GuidRegenerator.cs
。这个文件包含了 GUID 重生成功能的核心逻辑。
GuidRegenerator.cs 文件介绍
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public class GuidRegenerator : EditorWindow
{
private string _directory = "Assets";
private List<string> _extensions = new List<string> { ".prefab", ".asset" };
[MenuItem("Tools/Regenerate GUIDs")]
public static void ShowWindow()
{
GetWindow<GuidRegenerator>("Regenerate GUIDs");
}
private void OnGUI()
{
EditorGUILayout.LabelField("Directory to scan:", EditorStyles.boldLabel);
_directory = EditorGUILayout.TextField("Directory", _directory);
EditorGUILayout.LabelField("File extensions to scan:", EditorStyles.boldLabel);
_extensions = new List<string>(EditorGUILayout.TextField("Extensions", string.Join(",", _extensions)).Split(','));
if (GUILayout.Button("Regenerate GUIDs"))
{
RegenerateGuids();
}
}
private void RegenerateGuids()
{
var files = new List<string>();
foreach (var extension in _extensions)
{
files.AddRange(Directory.GetFiles(_directory, "*" + extension, SearchOption.AllDirectories));
}
foreach (var file in files)
{
var text = File.ReadAllText(file);
text = System.Text.RegularExpressions.Regex.Replace(text, @"guid: [a-zA-Z0-9]{32}", match => "guid: " + System.Guid.NewGuid().ToString("N"));
File.WriteAllText(file, text);
}
AssetDatabase.Refresh();
Debug.Log("GUIDs regenerated!");
}
}
功能介绍
- ShowWindow 方法: 通过 Unity 菜单项 "Tools/Regenerate GUIDs" 打开窗口。
- OnGUI 方法: 定义了窗口的界面布局,包括目录路径和文件扩展名的输入框,以及一个按钮用于触发 GUID 重生成操作。
- RegenerateGuids 方法: 遍历指定目录下的所有指定扩展名的文件,读取文件内容,替换其中的 GUID,并保存修改后的文件内容。
3. 项目的配置文件介绍
项目中没有显式的配置文件,但用户可以通过 GuidRegenerator
窗口输入目录路径和文件扩展名来进行配置。
配置方法
- 打开 Unity 编辑器。
- 通过菜单项 "Tools/Regenerate GUIDs" 打开
GuidRegenerator
窗口。 - 在 "Directory" 输入框中输入要扫描的目录路径。
- 在 "Extensions" 输入框中输入要处理的文件扩展名,多个扩展名用逗号分隔。
- 点击 "Regenerate GUIDs" 按钮,执行 GUID 重生成操作。
通过这种方式,用户可以根据自己的需求灵活配置目录和文件类型,实现 GUID 的重生成。