Unity自定义Inspector属性名特性以及特性自定义布局问题

server/2024/12/27 6:50:08/

前言:

在Unity中编辑属性的适合,一般都是显示属性的英文,如果想要改成中文的话又不能改变属性名,那么自定义特性是很好的选择。

一、自定以特性

这一块没有什么要多说的,就是自定义特性

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endifpublic class FieldNameAttribute : PropertyAttribute
{internal string Name { get; private set; }public FieldNameAttribute(string name){Name = name;}
}
#if UNITY_EDITOR
[CustomPropertyDrawer(typeof(FieldNameAttribute))]
public class FieldNameAttributeDrawer : PropertyDrawer
{public override void OnGUI(Rect position, SerializedProperty property, GUIContent label){EditorGUI.PropertyField(position, property, new GUIContent((attribute as FieldNameAttribute).Name), property.hasChildren);}
}
#endif

二、布局问题

这样写其实以及完成了效果,如图:

问题一目了然是吧,虽然定义了属性,但我们没有处理其可见子元素的布局

我们只要重写PropertyDrawer中的GetPropertyHeight函数即可

public class FieldNameAttributeDrawer : PropertyDrawer
{public override void OnGUI(Rect position, SerializedProperty property, GUIContent label){EditorGUI.PropertyField(position, property, new GUIContent((attribute as FieldNameAttribute).Name), property.hasChildren);}public override float GetPropertyHeight(SerializedProperty property, GUIContent label){float baseHeight = base.GetPropertyHeight(property, label);if (property.isExpanded){if (property.propertyType == SerializedPropertyType.Generic){return baseHeight + EditorGUIUtility.singleLineHeight * property.CountInProperty();}}return baseHeight;}}

如图:


http://www.ppmy.cn/server/153551.html

相关文章

KNN分类算法 HNUST【数据分析技术】(2025)

1.理论知识 KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想: 对于任意n维输入向量,分别对应于特征…

jsp | servlet | spring forEach读取不了对象List

导致这个问题的原因有很多的&#xff0c;这里讲到的只是原因之一 原因 taglib不认识forEach 解决办法 添加<% taglib uri"http://java.sun.com/jsp/jstl/core" prefix"c" %> &#xff08;我忘写这个东西了哈哈哈&#xff09;

音视频入门知识(七):时间戳及其音视频播放原理

七、时间戳 解码时间戳DTS和显示时间戳PTS 解码时间戳&#xff08;DTS&#xff09; 定义&#xff1a;读入内存中的比特流在什么时候开始送入解码器中进行解码 作用&#xff1a;DTS 主要应用在编码视频流中&#xff0c;其中 B 帧&#xff08;双向预测帧&#xff09;和 P 帧&…

datax ubuntu安装

一、datax 安装 #环境 JDK(1.8以上&#xff0c;推荐1.8) Python(2或3都可以) #下载datax https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz cd /root/datax tar -zxvf datax.tar.gz #自检&#xff0c;执行如下命令 python3 /root/datax/datax/bi…

微信小程序用户信息解密 AES/CBC/NoPadding 解密失败问题

解密文档如下 java springboot 微信小程序登录,获取获取手机号,获取unionId和解密用户信息 问题: 突然有一天解密失败,之前使用AES/CBC/NoPadding都可以,然后debug查看多出一些字符 原因: **AES/CBC/NoPadding**** 模式下解密后的数据可能包含额外的填充字符**&#xff08;例…

TDengine时序数据库

TDengine 现有版本 本地3.0,server收费 云数据库 TDengine cloud 云数据库收费&#xff0c;使用docker 如何在docker中使用TDengine 拉取镜像 docker pull tdengine/tdengine:latestdocker run -d -p 6030:6030 -p 6041:6041 -p 6043:6043 -p 6044-6049:6044-6049 -p 6044-…

ffmpeg源码分析(九)解协议

本文将聚焦于FFmpeg协议处理模块&#xff0c;以avformat_open_input函数为核心&#xff0c;详细剖析其在最新FFmpeg源码中的实现。 音视频处理流程简介 avformat_open_input概述 avformat_open_input是FFmpeg用于打开输入多媒体数据的关键函数。它通过统一的接口处理多种协议…

各种网站(学习资源及其他)

欢迎围观笔者的个人博客~ 也欢迎通过RSS网址https://kangaroogao.github.io/atom.xml进行订阅~ 大学指南 上海交通大学生存手册中国科学技术大学人工智能与数据科学学院本科进阶指南USTC不完全入学指南大学生活质量指北科研论 信息搜集 AI信息搜集USTC飞跃网站计算机保研 技…