Advertisement
Muk99

ShowOnlyDrawer

Jan 8th, 2015
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.51 KB | None | 0 0
  1. using UnityEditor;
  2. using UnityEngine;
  3.  
  4. [CustomPropertyDrawer(typeof(ShowOnlyAttribute))]
  5.  
  6. public class ShowOnlyDrawer : PropertyDrawer {
  7.     public override void OnGUI(Rect position, SerializedProperty prop, GUIContent label) {
  8.         string valueStr;
  9.        
  10.         switch (prop.propertyType)
  11.         {
  12.         case SerializedPropertyType.Vector2:
  13.             valueStr = prop.vector2Value.ToString();
  14.             break;
  15.         case SerializedPropertyType.Vector3:
  16.             valueStr = prop.vector3Value.ToString();
  17.             break;
  18.         case SerializedPropertyType.Vector4:
  19.             valueStr = prop.vector4Value.ToString();
  20.             break;
  21.         case SerializedPropertyType.Integer:
  22.             valueStr = prop.intValue.ToString();
  23.             break;
  24.         case SerializedPropertyType.Boolean:
  25.             valueStr = prop.boolValue.ToString();
  26.             break;
  27.         case SerializedPropertyType.Float:
  28.             valueStr = prop.floatValue.ToString("0.00000");
  29.             break;
  30.         case SerializedPropertyType.String:
  31.             valueStr = prop.stringValue;
  32.             break;
  33.         case SerializedPropertyType.Enum:
  34.             valueStr = prop.enumDisplayNames[prop.enumValueIndex];
  35.             break;
  36.         case SerializedPropertyType.Rect:
  37.             valueStr = prop.rectValue.ToString ();
  38.             break;
  39.         case SerializedPropertyType.ObjectReference:
  40.             if (prop.objectReferenceValue != null)
  41.                 valueStr = prop.objectReferenceValue.name;
  42.             else
  43.                 valueStr = "Null";
  44.             break;
  45.         case SerializedPropertyType.ArraySize:
  46.             valueStr = prop.arraySize.ToString();
  47.             break;
  48.         default:
  49.             valueStr = "Not supported";
  50.             break;
  51.         }
  52.        
  53.         EditorGUI.LabelField(position, label.text, valueStr);
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement