Unity编辑器扩展之是否勾选Text组件BestFit选项工具(此篇教程也可以操作其他组件的属性)

news/2025/2/12 4:02:06/

想要批量化是否勾选项目预制体资源中Text组件BestFit属性(此篇教程也可以操作其他组件的属性,只不过需要修改其中对应的代码),可以采用以下步骤。
在这里插入图片描述

1、在项目的Editor文件中,新建一个名为TextBestFitBatchProcessor的C#脚本文件,然后把以下代码复制粘贴到新建的TextBestFitBatchProcessor的C#脚本文件中。

using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.IO;public class TextBestFitBatchProcessor : EditorWindow // 创建一个继承自 EditorWindow 的类
{[MenuItem("Tools/Batch Process Text Best Fit")] // 在 Unity 编辑器菜单中创建一个名为 "Batch Process Text Best Fit" 的选项public static void ProcessTextBestFit() // 定义一个公共静态方法,用于处理文本最适合批处理{string[] prefabGuids = AssetDatabase.FindAssets("t:prefab", new[] { "Assets" }); // 获取 Assets 目录下的所有预制体的 GUIDforeach (string prefabGuid in prefabGuids) // 遍历每个预制体的 GUID{string prefabPath = AssetDatabase.GUIDToAssetPath(prefabGuid); // 获取预制体的路径GameObject prefabObject = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath); // 加载预制体对象Text[] textComponents = prefabObject.GetComponentsInChildren<Text>(true); // 获取预制体中所有的 Text 组件,包括子对象foreach (Text textComponent in textComponents) // 遍历每个 Text 组件{textComponent.resizeTextForBestFit = true; // 将 Text 组件的 Best Fit 属性设置为 true}EditorUtility.SetDirty(prefabObject); // 标记预制体对象为脏,以便保存更改}AssetDatabase.SaveAssets(); // 保存所有更改的资产Debug.Log("Batch Process Text Best Fit Completed!"); // 在控制台打印批处理完成的消息}
}

2、保存TextBestFitBatchProcessor脚本文件中代码,回到Unity中,点击Unity主界面左上角中Tools然后再点击Batch Process Text Best Fit选项,然后就会自动开始处理,等待一段时间后,就OK了。

在这里插入图片描述


http://www.ppmy.cn/news/1361047.html

相关文章

整型数组按个位值排序/最低位排序(C语言)

题目描述 给定一个非空数组&#xff08;列表&#xff09;&#xff0c;其元素数据类型为整型&#xff0c;请按照数组元素十进制最低位从小到大进行排序&#xff0c;十进制最低位相同的元素&#xff0c;相对位置保持不变。 当数组元素为负值时&#xff0c;十进制最低位等同于去除…

创新性3D数据合成模型,微软推出EgoGen

随着AR、VR等设备的广泛应用,第一人称的应用开始增多。但在研发方面面临不同的挑战,例如&#xff0c;图像模糊、视觉混乱、遮挡更严重等&#xff0c;给视觉模型的训练带来重大挑战。 一方面,人工标注真实第一视角数据集&#xff0c;来培训深度学习模型的成本和难度都很高。另一…

Go slice的底层实现原理?

切片是基于数组实现的&#xff0c;它的底层是数组&#xff0c;可以理解为对 底层数组的抽象。 源码包中src/runtime/slice.go 定义了slice的数据结构&#xff1a; type slice struct {array unsafe.Pointerlen intcap int }slice占用24个字节 array: 指向底层数组的指针…

LabVIEW串口通信的激光器模块智能控制

LabVIEW串口通信的激光器模块智能控制 介绍了通过于LabVIEW的VISA串口通信技术在激光器模块控制中的应用。通过研究VISA串口通信的方法和流程&#xff0c;实现了对激光器模块的有效控制&#xff0c;解决了数据发送格式的匹配问题&#xff0c;为激光器模块的智能控制提供了一种…

使用Python制作进度条有多少种方法?看这一篇文章就够了!

前言 偶然间刷到一个视频&#xff0c;说到&#xff1a;当程序正在运算时&#xff0c;会有一个较长时间的空白期&#xff0c;谁也不知道程序运行的进度如何&#xff0c;不如给他加个进度条。 于是我今个就搜寻一下&#xff0c;Python版的进度条都可以怎么写&#xff01; 送书…

gdb调试core文件和调试正在运行中的程序

在使用GDB进行调试时&#xff0c;可以调试core文件或者正在运行中的程序。下面我将详细介绍如何使用GDB进行这两种方式的调试。 调试core文件 获取core文件 当程序由于严重错误&#xff08;如段错误&#xff09;而终止时&#xff0c;操作系统会生成一个core文件&#xff0c;其…

多人协作记账账本小程序开源版开发

多人协作记账账本小程序开源版开发 支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计 便捷记账 便捷的记账方式&#xff0c;支持多种记账类型&#xff0c;快捷切换账本等 多账本 支…

qt-动画圆圈等待-LED数字

qt-动画圆圈等待-LED数字 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "LedNumber.h" #include <QLabel>LEDNumber::LEDNumber(QWidget *parent) : QWidget(parent) {//设置默认宽高比setScale((float)0.6);//设置默认背景色se…