首先,写一个ReadOnlyAttribute类,继承PropertyAttribute,此类不实现功能
public class ReadOnlyAttribute : PropertyAttribute { }
然后对 Inspector进行绘制,ReadOnlyDrawer类继承PropertyDrawer,添加标签[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
要重写GetPropertyHeight方法,以保证Inspector面板显示高度问题
完整代码如下:
/*******************************************************************************
* 版本声明:v1.0.0
* 类 名 称:ReadOnlyAttribute
* 创建日期:2020-04-23 21:56:16
* 作者名称:末零
* 功能描述:只读特性
* 修改记录:
*
******************************************************************************/
using UnityEditor;
using UnityEngine;
namespace LastZero.Attribute
{
/// <summary>
/// 只读特性功能类
/// </summary>
public class ReadOnlyAttribute : PropertyAttribute { }
/// <summary>
/// 面板绘制
/// </summary>
[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
public class ReadOnlyDrawer : PropertyDrawer
{

本文介绍如何在Unity中实现只读属性,通过自定义属性和Inspector绘制器,使某些字段在编辑器中显示为只读状态,适用于保护关键数据不被误改。
最低0.47元/天 解锁文章
504





