扩展Unity设置Inspector面板属性只读
Inspector面板属性只读
叮~!本篇分享一段代码,用于设置Unity的Inspector面板下某一属性只是展示但不可操作的功能。Bingo!
一、上效果
二、功能说明
可以看到属性下的显示,但是不可修改奥~
三、在代码中的使用方法
使用生效的 代码片
.
//点直径(方法一【推荐】)
[DisplayOnly]
[SerializeField]
private float diam = 15;
//线宽(方法二)
[DisplayOnly]
public float wide = 5;
//线颜色
[DisplayOnly]
[SerializeField]
private Color lineColor = Color.cyan;
//点颜色
[DisplayOnly]
[SerializeField]
private Color pointColor = Color.green;
//记录是否选中
[DisplayOnly]
[SerializeField]
private bool is_Clicked;
四、实现码片
下面展示实现扩展的 代码片
.
using UnityEditor;
namespace UnityEngine
{
/// <summary>
/// 设置属性只读
/// </summary>
public class DisplayOnly : PropertyAttribute
{
}
[CustomPropertyDrawer(typeof(DisplayOnly))]
public class ReadOnlyDrawer : 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)
{
GUI.enabled = false;
EditorGUI.PropertyField(position, property, label, true);
GUI.enabled = true;
}
}
}
五、完毕
Bingo,就这么简单~
原创不易,若转载请注明出处,感谢大家~
喜欢我的可以点赞、关注、收藏,如果有什么技术上的疑问,欢迎留言或私信~