using System;
using Unity.VisualScripting;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
///
/// 这个类方到Editor下
///
[CustomPropertyDrawer(typeof(AutoBindAttribute))]
public class AutoBindSameNameDrawer : PropertyDrawer
{
// 在Inspector面板中绘制带有AutoBindSameName属性的字段
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
// 显示属性名称
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
自动绑定同名UI组件
//Component[] components = property.serializedObject.targetObject.GetComponentsInChildren<Component>();
//foreach (Component component in components)
//{
// if (component is Button && component.name == property.name)
// {
// property.objectReferenceValue = c

这篇博客介绍了如何在Unity中创建一个自定义属性抽屉`AutoBindSameNameDrawer`,用于在Inspector中自动绑定UI元素,该抽屉适用于带有`AutoBindAttribute`属性的字段。文章包含一个`AutoBindAttribute`类,用于标记需要自动绑定的字段,以及一个`TestScript`类,展示如何在实际场景中应用这个功能。
最低0.47元/天 解锁文章
2231

被折叠的 条评论
为什么被折叠?



