Unity GUID Regenerator 项目教程

Unity GUID Regenerator 项目教程

unity-guid-regenerator:id: GUID regenerator for Unity assets项目地址:https://gitcode.com/gh_mirrors/un/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 窗口输入目录路径和文件扩展名来进行配置。

配置方法

  1. 打开 Unity 编辑器。
  2. 通过菜单项 "Tools/Regenerate GUIDs" 打开 GuidRegenerator 窗口。
  3. 在 "Directory" 输入框中输入要扫描的目录路径。
  4. 在 "Extensions" 输入框中输入要处理的文件扩展名,多个扩展名用逗号分隔。
  5. 点击 "Regenerate GUIDs" 按钮,执行 GUID 重生成操作。

通过这种方式,用户可以根据自己的需求灵活配置目录和文件类型,实现 GUID 的重生成。

unity-guid-regenerator:id: GUID regenerator for Unity assets项目地址:https://gitcode.com/gh_mirrors/un/unity-guid-regenerator

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俞毓滢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值