1111namespace ScriptTester {
1212 class MethodPropertyDrawer : IReflectorDrawer {
1313 public readonly string name ;
14+ readonly GUIContent nameContent ;
1415 MemberInfo memberInfo ;
1516 public Type requiredType ;
1617 readonly List < PropertyType > castableTypes ;
@@ -198,6 +199,7 @@ public Exception GetException {
198199 public MethodPropertyDrawer ( Type type , string name , object defaultValue , bool allowPrivate , bool allowObsolete ) {
199200 this . requiredType = type ;
200201 this . name = name ;
202+ this . nameContent = new GUIContent ( name , name ) ;
201203 this . rawValue = defaultValue ;
202204 this . castableTypes = new List < PropertyType > ( ) ;
203205 this . fields = new List < ComponentFields > ( ) ;
@@ -424,62 +426,62 @@ void DrawDirectField(bool readOnly, Rect? rect) {
424426 switch ( currentType ) {
425427 case PropertyType . Bool :
426428 if ( rect . HasValue )
427- value = EditorGUI . Toggle ( rect . Value , name , ( bool ) ( value ?? false ) ) ;
429+ value = EditorGUI . Toggle ( rect . Value , nameContent , ( bool ) ( value ?? false ) ) ;
428430 else
429- value = EditorGUILayout . Toggle ( name , ( bool ) ( value ?? false ) ) ;
431+ value = EditorGUILayout . Toggle ( nameContent , ( bool ) ( value ?? false ) ) ;
430432 break ;
431433 case PropertyType . Enum :
432434 if ( masked || readOnly ) {
433435 if ( rect . HasValue )
434- value = Helper . MaskedEnumField ( rect . Value , name , requiredType , ( int ) ( value ?? 0 ) ) ;
436+ value = Helper . MaskedEnumField ( rect . Value , nameContent , requiredType , ( int ) ( value ?? 0 ) ) ;
435437 else
436- value = Helper . MaskedEnumField ( name , requiredType , ( int ) ( value ?? 0 ) ) ;
438+ value = Helper . MaskedEnumField ( nameContent , requiredType , ( int ) ( value ?? 0 ) ) ;
437439 break ;
438440 }
439441 if ( rect . HasValue )
440- value = Helper . EnumField ( rect . Value , name , requiredType , ( int ) ( value ?? 0 ) ) ;
442+ value = Helper . EnumField ( rect . Value , nameContent , requiredType , ( int ) ( value ?? 0 ) ) ;
441443 else
442- value = Helper . EnumField ( name , requiredType , ( int ) ( value ?? 0 ) ) ;
444+ value = Helper . EnumField ( nameContent , requiredType , ( int ) ( value ?? 0 ) ) ;
443445 break ;
444446 case PropertyType . Long :
445447 #if UNITY_5
446448 if ( rect . HasValue )
447- value = EditorGUI . LongField ( rect . Value , name , ( long ) ( value ?? 0L ) ) ;
449+ value = EditorGUI . LongField ( rect . Value , nameContent , ( long ) ( value ?? 0L ) ) ;
448450 else
449- value = EditorGUILayout . LongField ( name , ( long ) ( value ?? 0L ) ) ;
451+ value = EditorGUILayout . LongField ( nameContent , ( long ) ( value ?? 0L ) ) ;
450452 break ;
451453 #endif
452454 case PropertyType . Integer :
453455 if ( rect . HasValue )
454- value = EditorGUI . IntField ( rect . Value , name , ( int ) ( value ?? 0 ) ) ;
456+ value = EditorGUI . IntField ( rect . Value , nameContent , ( int ) ( value ?? 0 ) ) ;
455457 else
456- value = EditorGUILayout . IntField ( name , ( int ) ( value ?? 0 ) ) ;
458+ value = EditorGUILayout . IntField ( nameContent , ( int ) ( value ?? 0 ) ) ;
457459 break ;
458460 case PropertyType . Double :
459461 #if UNITY_5
460462 if ( rect . HasValue )
461- value = EditorGUI . DoubleField ( rect . Value , name , ( double ) ( value ?? 0 ) ) ;
463+ value = EditorGUI . DoubleField ( rect . Value , nameContent , ( double ) ( value ?? 0 ) ) ;
462464 else
463- value = EditorGUILayout . DoubleField ( name , ( double ) ( value ?? 0 ) ) ;
465+ value = EditorGUILayout . DoubleField ( nameContent , ( double ) ( value ?? 0 ) ) ;
464466 break ;
465467 #endif
466468 case PropertyType . Single :
467469 if ( rect . HasValue )
468- value = EditorGUI . FloatField ( rect . Value , name , ( float ) ( value ?? 0F ) ) ;
470+ value = EditorGUI . FloatField ( rect . Value , nameContent , ( float ) ( value ?? 0F ) ) ;
469471 else
470- value = EditorGUILayout . FloatField ( name , ( float ) ( value ?? 0F ) ) ;
472+ value = EditorGUILayout . FloatField ( nameContent , ( float ) ( value ?? 0F ) ) ;
471473 break ;
472474 case PropertyType . Vector2 :
473475 if ( rect . HasValue )
474- value = EditorGUI . Vector2Field ( rect . Value , name , ( Vector2 ) ( value ?? Vector2 . zero ) ) ;
476+ value = EditorGUI . Vector2Field ( rect . Value , nameContent , ( Vector2 ) ( value ?? Vector2 . zero ) ) ;
475477 else
476- value = EditorGUILayout . Vector2Field ( name , ( Vector2 ) ( value ?? Vector2 . zero ) ) ;
478+ value = EditorGUILayout . Vector2Field ( nameContent , ( Vector2 ) ( value ?? Vector2 . zero ) ) ;
477479 break ;
478480 case PropertyType . Vector3 :
479481 if ( rect . HasValue )
480- value = EditorGUI . Vector3Field ( rect . Value , name , ( Vector3 ) ( value ?? Vector3 . zero ) ) ;
482+ value = EditorGUI . Vector3Field ( rect . Value , nameContent , ( Vector3 ) ( value ?? Vector3 . zero ) ) ;
481483 else
482- value = EditorGUILayout . Vector3Field ( name , ( Vector3 ) ( value ?? Vector3 . zero ) ) ;
484+ value = EditorGUILayout . Vector3Field ( nameContent , ( Vector3 ) ( value ?? Vector3 . zero ) ) ;
483485 break ;
484486 case PropertyType . Vector4 :
485487 if ( rect . HasValue )
@@ -495,58 +497,58 @@ void DrawDirectField(bool readOnly, Rect? rect) {
495497 break ;
496498 case PropertyType . Color :
497499 if ( rect . HasValue )
498- value = EditorGUI . ColorField ( rect . Value , name , ( Color ) ( value ?? Color . white ) ) ;
500+ value = EditorGUI . ColorField ( rect . Value , nameContent , ( Color ) ( value ?? Color . white ) ) ;
499501 else
500- value = EditorGUILayout . ColorField ( name , ( Color ) ( value ?? Color . white ) ) ;
502+ value = EditorGUILayout . ColorField ( nameContent , ( Color ) ( value ?? Color . white ) ) ;
501503 break ;
502504 case PropertyType . Rect :
503505 if ( rect . HasValue )
504- value = EditorGUI . RectField ( rect . Value , name , ( Rect ) ( value ?? default ( Rect ) ) ) ;
506+ value = EditorGUI . RectField ( rect . Value , nameContent , ( Rect ) ( value ?? default ( Rect ) ) ) ;
505507 else
506- value = EditorGUILayout . RectField ( name , ( Rect ) ( value ?? default ( Rect ) ) ) ;
508+ value = EditorGUILayout . RectField ( nameContent , ( Rect ) ( value ?? default ( Rect ) ) ) ;
507509 break ;
508510 case PropertyType . Bounds :
509511 if ( rect . HasValue )
510- value = EditorGUI . BoundsField ( rect . Value , new GUIContent ( name ) , ( Bounds ) ( value ?? default ( Bounds ) ) ) ;
512+ value = EditorGUI . BoundsField ( rect . Value , nameContent , ( Bounds ) ( value ?? default ( Bounds ) ) ) ;
511513 else
512- value = EditorGUILayout . BoundsField ( name , ( Bounds ) ( value ?? default ( Bounds ) ) ) ;
514+ value = EditorGUILayout . BoundsField ( nameContent , ( Bounds ) ( value ?? default ( Bounds ) ) ) ;
513515 break ;
514516 case PropertyType . Curve :
515517 if ( rect . HasValue )
516- value = EditorGUI . CurveField ( rect . Value , name , ( AnimationCurve ) ( value ?? new AnimationCurve ( ) ) ) ;
518+ value = EditorGUI . CurveField ( rect . Value , nameContent , ( AnimationCurve ) ( value ?? new AnimationCurve ( ) ) ) ;
517519 else
518- value = EditorGUILayout . CurveField ( name , ( AnimationCurve ) ( value ?? new AnimationCurve ( ) ) ) ;
520+ value = EditorGUILayout . CurveField ( nameContent , ( AnimationCurve ) ( value ?? new AnimationCurve ( ) ) ) ;
519521 break ;
520522 case PropertyType . Object :
521523 if ( rect . HasValue )
522- value = Helper . ObjectField ( rect . Value , name , ( UnityObject ) value , requiredType , true , readOnly ) ;
524+ value = Helper . ObjectField ( rect . Value , nameContent , ( UnityObject ) value , requiredType , true , readOnly ) ;
523525 else
524- value = Helper . ObjectField ( name , ( UnityObject ) value , requiredType , true , readOnly ) ;
526+ value = Helper . ObjectField ( nameContent , ( UnityObject ) value , requiredType , true , readOnly ) ;
525527 break ;
526528 case PropertyType . Array :
527529 if ( rect . HasValue ) {
528530 arrayHandler . DoList ( rect . Value ) ;
529531 break ;
530532 }
531533 EditorGUILayout . BeginVertical ( ) ;
532- if ( arrayShown = EditorGUILayout . Foldout ( arrayShown , name ) )
534+ if ( arrayShown = EditorGUILayout . Foldout ( arrayShown , nameContent ) )
533535 arrayHandler . DoLayoutList ( ) ;
534536 EditorGUILayout . EndVertical ( ) ;
535537 break ;
536538 case PropertyType . String :
537539 if ( rect . HasValue )
538- value = Helper . StringField ( rect . Value , name , ( string ) value , readOnly ) ;
540+ value = Helper . StringField ( rect . Value , nameContent , ( string ) value , readOnly ) ;
539541 else
540- value = Helper . StringField ( name , ( string ) value , readOnly ) ;
542+ value = Helper . StringField ( nameContent , ( string ) value , readOnly ) ;
541543 break ;
542544 default :
543545 var stringValue = value != null ? value . ToString ( ) : "Null" ;
544546 if ( rect . HasValue ) {
545- Helper . StringField ( rect . Value , name , stringValue , true ) ;
547+ Helper . StringField ( rect . Value , nameContent , stringValue , true ) ;
546548 DrawUnknownField ( readOnly , value ) ;
547549 } else {
548550 EditorGUILayout . BeginVertical ( ) ;
549- Helper . StringField ( name , stringValue , true ) ;
551+ Helper . StringField ( nameContent , stringValue , true ) ;
550552 DrawUnknownField ( readOnly , value ) ;
551553 EditorGUILayout . EndVertical ( ) ;
552554 }
0 commit comments