Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEditor;
- using UnityEngine;
- [CustomPropertyDrawer(typeof(ShowOnlyAttribute))]
- public class ShowOnlyDrawer : PropertyDrawer {
- public override void OnGUI(Rect position, SerializedProperty prop, GUIContent label) {
- string valueStr;
- switch (prop.propertyType)
- {
- case SerializedPropertyType.Vector2:
- valueStr = prop.vector2Value.ToString();
- break;
- case SerializedPropertyType.Vector3:
- valueStr = prop.vector3Value.ToString();
- break;
- case SerializedPropertyType.Vector4:
- valueStr = prop.vector4Value.ToString();
- break;
- case SerializedPropertyType.Integer:
- valueStr = prop.intValue.ToString();
- break;
- case SerializedPropertyType.Boolean:
- valueStr = prop.boolValue.ToString();
- break;
- case SerializedPropertyType.Float:
- valueStr = prop.floatValue.ToString("0.00000");
- break;
- case SerializedPropertyType.String:
- valueStr = prop.stringValue;
- break;
- case SerializedPropertyType.Enum:
- valueStr = prop.enumDisplayNames[prop.enumValueIndex];
- break;
- case SerializedPropertyType.Rect:
- valueStr = prop.rectValue.ToString ();
- break;
- case SerializedPropertyType.ObjectReference:
- if (prop.objectReferenceValue != null)
- valueStr = prop.objectReferenceValue.name;
- else
- valueStr = "Null";
- break;
- case SerializedPropertyType.ArraySize:
- valueStr = prop.arraySize.ToString();
- break;
- default:
- valueStr = "Not supported";
- break;
- }
- EditorGUI.LabelField(position, label.text, valueStr);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement