【Attribute】Inspector视图可视不可编辑字段特性

简介

        在Unity开发中,有时候我们存在这种需求,需要在Inspector视图中可以查看字段信息但是无法对字段进行赋值,那么我们也可以像Unity内置的[SerializeField]、[Tooltip]等特性那样自定义一个特性,用于满足这个需求。

代码示例(C#)

#if UNITY_EDITOR
using System;
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;// 禁用可序列化字段在Inspector面板的编辑
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
public class EditDisabledAttribute : PropertyAttribute { }// EditDisabledAttribute的自定义绘制器
[CustomPropertyDrawer(typeof(EditDisabledAttribute))]
class EditDisabledDrawer : PropertyDrawer
{public override float GetPropertyHeight(SerializedProperty property, GUIContent label){return EditorGUI.GetPropertyHeight(property, label, true);}public override void OnGUI(Rect position, SerializedProperty property, GUIContent label){if (IsArray() || IsList()){EditorGUI.BeginDisabledGroup(true);EditorGUI.PropertyField(position, property, label, true);EditorGUI.EndDisabledGroup();}else{GUI.enabled = false;EditorGUI.PropertyField(position, property, label, true);GUI.enabled = true;}}// 是否为数组private bool IsArray(){return fieldInfo.FieldType.IsArray;}// 是否为列表private bool IsList(){return fieldInfo.FieldType.IsGenericType && fieldInfo.FieldType.GetGenericTypeDefinition() == typeof(List<>);}
}
#endif

效果截图

如果这篇文章对你有帮助,请给作者点个赞吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenGL手册13】 光照贴图

目录 一、说明二、漫反射贴图三、镜面光贴图四、采样镜面光贴图练习 一、说明 在上一节中&#xff0c;我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观&#xff0c;但是这仍不能对一个…

【Sql】MVCC有关问题,以及锁,日志和主从复制原理

目录 MVCC 解决什么问题? 实现原理 隐式字段 undo log Read View(读视图) InnoDB 对 MVCC 的实现 锁 分类 锁升级&#xff1f; InnoDB 的行锁&#xff1f; 死锁避免&#xff1f; 乐观锁和悲观锁 日志 主从复制原理 主从复制的作用 MySQL主从复制解决的问题 涉…

2023年中国抗DDoS市场规模现状及竞争格局,公有云抗DDoS是主要增长点

分布式拒绝服务&#xff08;DDoS&#xff09;是在DoS基础之上产生的一种新的攻击方式&#xff0c;具有多对一的攻击模式。它通过制造伪造的流量&#xff0c;使得被攻击的服务器、网络链路或是网络设备&#xff08;如防火墙、路由器等&#xff09;负载过高&#xff0c;无法处理正…

[算法] 牛课题霸 - DP6 连续子数组最大和 - 动态规划

文章目录 题目链接解题过程思路一思路二 题目链接 DP6 连续子数组最大和 解题过程 思路一 两个for循环&#xff0c;遍历。 因为每个元素都要遍历两遍&#xff0c;所以时间复杂度O(n^2)。 简单的测试用例可以通过&#xff0c;但是提交时&#xff0c;一个巨大的数组用例&…

2022 Task 2 Max Sum of 2 integers sharing first and last digits

Task 2 There is an array A consisting of N integers. What’s the maximum sum of two integers from A that share their first and last digits? For example, 1007 and 167 share their first(1) and last(7) digits, whereas 2002 and 55 do not. Write a function: …

el-table 的选择框如何根据条件设置某项不可选中

效果如图&#xff1a;实现某条数据不可选&#xff0c;其他数据可选 核心代码&#xff1a; <el-table-column type"selection" width"55" :selectable"selectable"></el-table-column> 在选择框的列上加上 :selectable"select…

Github 2024-03-13 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目2Python项目2非开发语言项目2HTML项目1CSS项目1Dart项目1TypeScript项目1Go项目1JavaScript项目1《Hello 算法》:动画图解、一键运行的…

2023 收入最高的十大编程语言

本期共享的是 —— 地球上目前已知超过 200 种可用的编程语言&#xff0c;了解哪些语言在 2023 为开发者提供更高的薪水至关重要。 过去一年里&#xff0c;我分析了来自地球各地超过 1000 万个开发职位空缺&#xff0c;辅助我们了解市场&#xff0c;以及人气最高和收入最高的语…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextClock)

TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示&#xff0c;最高精度到秒级。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextClock(options?…

一周学会Django5 Python Web开发-Jinja3模版引擎-安装与配置

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计35条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

vscode 之 vue项目如何使用ctrl+鼠标左键跳转对应文件

话不多说&#xff0c;直接步入正题 使用项目工程的jsconfig.json 直接在项目中使用jsconfig.json/tsconfig.json文件配置&#xff08;项目中没有相应的文件的添加文件&#xff0c;有文件的添加"paths": {"/*": ["./src/*"]}配置即可&#xff0…

STM32第八节:位带操作——GPIO输出和输入

前言 我们讲了GPIO的输出&#xff0c;虽然我们使用的是固件库编程&#xff0c;但是最底层的操作是什么呢&#xff1f;对&#xff0c;我们学习过51单片机的同学肯定学习过 sbit 修改某一位的高低电平&#xff0c;从而实现对于硬件的控制。那么我们现在在STM32中有没有相似的操作…

【深度学习】四种归一化方式对比:| LayerNorm,BatchNorm,InstanceNorm,GroupNorm

文章目录 1 四种归一化方式对比2 代码实践2.1 BatchNorm&#xff08;批归一化&#xff09;2.2 LayerNorm&#xff08;层归一化&#xff09;2.3 InstanceNorm&#xff08;实例归一化&#xff09;2.4 GroupNorm&#xff08;组归一化&#xff09; 归一化技术可以很好地&#xff0c…

Web框架开发-Django简介

一、MVC和MTV模型 MVC 所谓MVC就是把web应用分为模型&#xff08;M&#xff09;&#xff0c;控制器&#xff08;C&#xff09;和视图&#xff08;V&#xff09;三层&#xff0c;他们之间以一种插件式的&#xff0c;松耦合的方式连接在一起&#xff0c;模型负责业务对象与数据库…

Matlab中inv()函数的使用

在Matlab中&#xff0c;inv()函数是用来求解矩阵的逆矩阵的函数。逆矩阵是一个与原矩阵相乘后得到单位矩阵的矩阵。在数学中&#xff0c;矩阵A的逆矩阵通常用A^-1表示。 什么是逆矩阵 在数学中&#xff0c;对于一个n阶方阵A&#xff0c;如果存在一个n阶方阵B&#xff0c;使得…

Linux基线安全检测-服务器安全配置检测

LINUX基线安全检测-服务器安全配置检测 前言各模块检测如下1、密码复杂度检测2、rsyslog服务是否启用检测3、禁止ROOT远程登录检测4、禁止空密码登录检测5、密码重用是否限制为5次检测6、是否设置密码失效时间检测7、密码修改最小间隔时间检测8、密码过期警告时间是否大于等于7…

洛谷P6866 [COCI2019-2020#5] Emacs

题目描述 给定一个 nm 的只含有 . 和 * 的矩阵。 矩阵中 * 形成一些不重叠的长方形。它们不在边缘或顶点接触。 求长方形有多少个&#xff1f; 输入格式 第一行&#xff1a;两个正整数 n 和 m。 以下 n 行&#xff1a;表示题目描述中的矩阵。矩阵只含有 . 和 *。 输出格…

22.3 分布式

22.3 分布式 1. 分布式2. 分布式作用3. 分布式与单体结构对比4. CAP定理4.1 CAP理论4.2 P:分区容错4.3 C:一致性4.4 A:可用性4.5 CAP如何选择5. 集群、分布式、微服务区别5.1 集群、分布式区别5.2 集群、微服务区别5.3 分布式、微服务区别************************************…

12、Linux-Shell01:变量、字符串和数组、注释

目录 一、基础知识 二、变量 1、定义变量 2、使用变量 3、只读变量 4、删除变量 三、字符串和数组 1、字符串 ①单引号和双引号的区别 ②# ③切片 2、数组 四、注释 1、单行注释 2、多行注释 一、基础知识 Linux的Shell有很多种&#xff0c;这里讨论的是Bash。 …

npm run build小技巧

在config/index.js中设置build.index与build.assetsRoot,这样之后在每次npm run build后会将编译后文件放在指定的路径下。 场景&#xff1a; 1、如果你本地有nginx服务&#xff0c;可将对应两个路径设置到nginx的html路径下&#xff0c;实现每次编译后即可生效的效果。 举例&…