@@ -16,6 +16,7 @@ public class ExtendedTransformEditor : Editor
1616
1717 private Editor _defaultEditor ;
1818 private Transform _transform ;
19+
1920 private static bool expandExtraProperties = false ;
2021 private static bool expandExtraTools = false ;
2122
@@ -27,6 +28,27 @@ public class ExtendedTransformEditor : Editor
2728 private static Vector3 ? copiedPosition ;
2829 private static Quaternion ? copiedRotation ;
2930 private static Vector3 ? copiedScale ;
31+
32+ private static readonly GUIContent reset = new GUIContent ( "Reset" ) ;
33+ private static readonly GUIContent apply = new GUIContent ( "Apply" ) ;
34+ private static readonly GUIContent position = new GUIContent ( "Position" ) ;
35+ private static readonly GUIContent rotation = new GUIContent ( "Rotation" ) ;
36+ private static readonly GUIContent scale = new GUIContent ( "Scale" ) ;
37+ private static readonly GUIContent fullTransform = new GUIContent ( "Full Transform" ) ;
38+ private static readonly GUIContent worldPosition = new GUIContent ( "Position (world)" ) ;
39+ private static readonly GUIContent worldRotation = new GUIContent ( "Rotation (world)" ) ;
40+ private static readonly GUIContent lossyScale = new GUIContent ( "Scale (lossy)" ) ;
41+ private static readonly GUIContent upDirection = new GUIContent ( "Up Direction" ) ;
42+ private static readonly GUIContent forwardDirection = new GUIContent ( "Forward Direction" ) ;
43+ private static readonly GUIContent recursiveChildCount = new GUIContent ( "Child Count (recursive)" ) ;
44+ private static readonly GUIContent parentDepth = new GUIContent ( "Parent Depth" ) ;
45+ private static readonly GUIContent copy = new GUIContent ( "Copy" ) ;
46+ private static readonly GUIContent align = new GUIContent ( "Align" ) ;
47+ private static readonly GUIContent paste = new GUIContent ( "Paste" ) ;
48+ private static readonly GUIContent hierarchyPath = new GUIContent ( "Hierarchy Path" ) ;
49+ private static GUIContent hierarchyPathString = new GUIContent ( "" ) ;
50+ private static GUIContent childCounter = new GUIContent ( "" ) ;
51+ private static GUIContent parentCounter = new GUIContent ( "" ) ;
3052
3153 private void OnEnable ( )
3254 {
@@ -89,33 +111,36 @@ private void DrawExtraProperties(bool foldout)
89111 if ( targets . Length == 1 )
90112 {
91113 EditorGUI . BeginChangeCheck ( ) ;
92- var worldPos = EditorGUILayout . Vector3Field ( "Position (world)" , _transform . position ) ;
114+ var worldPos = EditorGUILayout . Vector3Field ( worldPosition , _transform . position ) ;
93115 if ( EditorGUI . EndChangeCheck ( ) )
94116 {
95117 Undo . RecordObject ( _transform , "Move (world)" ) ;
96118 _transform . position = worldPos ;
97119 }
98120 EditorGUI . BeginChangeCheck ( ) ;
99- var worldEuler = EditorGUILayout . Vector3Field ( "Rotation (world)" , _transform . eulerAngles ) ;
121+ var worldEuler = EditorGUILayout . Vector3Field ( worldRotation , _transform . eulerAngles ) ;
100122 if ( EditorGUI . EndChangeCheck ( ) )
101123 {
102124 Undo . RecordObject ( _transform , "Rotate (world)" ) ;
103125 _transform . eulerAngles = worldEuler ;
104126 }
105127 GUI . backgroundColor = Color . white . WithAlpha ( 0.5f ) ;
106- EditorGUILayout . Vector3Field ( "Scale (lossy)" , _transform . lossyScale ) ;
128+ EditorGUILayout . Vector3Field ( lossyScale , _transform . lossyScale ) ;
107129 EditorGUILayout . Space ( ) ;
108130 EditorGUI . BeginChangeCheck ( ) ;
109- EditorGUILayout . Vector3Field ( "Up Direction" , _transform . up ) ;
110- EditorGUILayout . Vector3Field ( "Forward Direction" , _transform . forward ) ;
131+ EditorGUILayout . Vector3Field ( upDirection , _transform . up ) ;
132+ EditorGUILayout . Vector3Field ( forwardDirection , _transform . forward ) ;
111133 GUI . backgroundColor = Color . white ;
112134 EditorGUILayout . Space ( ) ;
113- EditorGUILayout . LabelField ( "Child Count (recursive)" , $ "{ _transform . childCount } ({ RecursiveChildCount ( _transform ) } )") ;
114- EditorGUILayout . LabelField ( "Parent Depth" , RecursiveParentCount ( _transform ) . ToString ( ) ) ;
135+ childCounter . text = $ "{ _transform . childCount } ({ RecursiveChildCount ( _transform ) } )";
136+ EditorGUILayout . LabelField ( recursiveChildCount , childCounter ) ;
137+ parentCounter . text = RecursiveParentCount ( _transform ) . ToString ( ) ;
138+ EditorGUILayout . LabelField ( parentDepth , parentCounter ) ;
115139 GUILayout . BeginHorizontal ( ) ;
116- GUILayout . Label ( "Hierarchy Path" , GUILayout . Width ( EditorGUIUtility . labelWidth - 3 ) ) ;
140+ GUILayout . Label ( hierarchyPath , GUILayout . Width ( EditorGUIUtility . labelWidth - 3 ) ) ;
117141
118- GUILayout . Label ( _transform . GetHierarchyPathString ( ) , pathLabelStyle , GUILayout . Width ( EditorGUIUtility . currentViewWidth - EditorGUIUtility . labelWidth - 30 ) ) ;
142+ hierarchyPathString . text = _transform . GetHierarchyPathString ( ) ;
143+ GUILayout . Label ( hierarchyPathString , pathLabelStyle , GUILayout . Width ( EditorGUIUtility . currentViewWidth - EditorGUIUtility . labelWidth - 30 ) ) ;
119144 GUILayout . EndHorizontal ( ) ;
120145 }
121146 else
@@ -138,7 +163,7 @@ private void DrawToolbars(bool foldout)
138163 private void DrawPrimaryToolbar ( )
139164 {
140165 EditorGUILayout . BeginHorizontal ( EditorStyles . toolbar ) ;
141- TriButtonRow ( new GUIContent ( "Reset" ) , TOOLBAR_BUTTON_WIDTH * 2 ,
166+ TriButtonRow ( reset , TOOLBAR_BUTTON_WIDTH * 2 ,
142167 t =>
143168 {
144169 Undo . RecordObject ( t , "Reset Transform" ) ;
@@ -165,13 +190,13 @@ private void DrawPrimaryToolbar()
165190
166191 GUI . enabled = _transform . childCount > 0 ;
167192 var rect = GUILayoutUtility . GetRect ( TOOLBAR_BUTTON_WIDTH * 2 , 0 , GUILayout . ExpandHeight ( true ) ) ;
168- if ( EditorGUI . DropdownButton ( rect , new GUIContent ( "Apply" ) , FocusType . Passive , EditorStyles . toolbarDropDown ) )
193+ if ( EditorGUI . DropdownButton ( rect , apply , FocusType . Passive , EditorStyles . toolbarDropDown ) )
169194 {
170195 var menu = new GenericMenu ( ) ;
171- menu . AddItem ( new GUIContent ( "Position" ) , false , ( ) => ExtraContextMenuItems . ApplyPosition ( new MenuCommand ( _transform ) ) ) ;
172- menu . AddItem ( new GUIContent ( "Rotation" ) , false , ( ) => ExtraContextMenuItems . ApplyRotation ( new MenuCommand ( _transform ) ) ) ;
173- menu . AddItem ( new GUIContent ( "Scale" ) , false , ( ) => ExtraContextMenuItems . ApplyScale ( new MenuCommand ( _transform ) ) ) ;
174- menu . AddItem ( new GUIContent ( "Full Transform" ) , false , ( ) => ExtraContextMenuItems . ApplyFullTransform ( new MenuCommand ( _transform ) ) ) ;
196+ menu . AddItem ( position , false , ( ) => ExtraContextMenuItems . ApplyPosition ( new MenuCommand ( _transform ) ) ) ;
197+ menu . AddItem ( rotation , false , ( ) => ExtraContextMenuItems . ApplyRotation ( new MenuCommand ( _transform ) ) ) ;
198+ menu . AddItem ( scale , false , ( ) => ExtraContextMenuItems . ApplyScale ( new MenuCommand ( _transform ) ) ) ;
199+ menu . AddItem ( fullTransform , false , ( ) => ExtraContextMenuItems . ApplyFullTransform ( new MenuCommand ( _transform ) ) ) ;
175200 menu . DropDown ( rect ) ;
176201 }
177202 GUI . enabled = true ;
@@ -180,34 +205,34 @@ private void DrawPrimaryToolbar()
180205
181206 //Copy transform data
182207 GUI . enabled = targets . Length == 1 ;
183- TriButtonRow ( new GUIContent ( "Copy" ) , TOOLBAR_BUTTON_WIDTH * 2 ,
208+ TriButtonRow ( copy , TOOLBAR_BUTTON_WIDTH * 2 ,
184209 t =>
185210 {
186211 //Copy all transform data
187- copiedPosition = _transform . position ;
188- copiedRotation = _transform . rotation ;
189- copiedScale = _transform . localScale ;
212+ copiedPosition = t . position ;
213+ copiedRotation = t . rotation ;
214+ copiedScale = t . localScale ;
190215 } ,
191216 t =>
192217 {
193218 //Copy position
194- copiedPosition = _transform . position ;
219+ copiedPosition = t . position ;
195220 copiedRotation = null ;
196221 copiedScale = null ;
197222 } ,
198223 t =>
199224 {
200225 //Copy rotation
201226 copiedPosition = null ;
202- copiedRotation = _transform . rotation ;
227+ copiedRotation = t . rotation ;
203228 copiedScale = null ;
204229 } ,
205230 t =>
206231 {
207232 //Copy scale
208233 copiedPosition = null ;
209234 copiedRotation = null ;
210- copiedScale = _transform . localScale ;
235+ copiedScale = t . localScale ;
211236 }
212237 ) ;
213238 GUI . enabled = true ;
@@ -219,7 +244,7 @@ private void DrawSecondaryToolbar()
219244 {
220245 GUILayout . BeginHorizontal ( EditorStyles . toolbar ) ;
221246
222- TriButtonRow ( new GUIContent ( "Align" ) , TOOLBAR_BUTTON_WIDTH * 2 ,
247+ TriButtonRow ( align , TOOLBAR_BUTTON_WIDTH * 2 ,
223248 t =>
224249 {
225250 Undo . RecordObject ( t , "Align Transform to View" ) ;
@@ -242,7 +267,7 @@ private void DrawSecondaryToolbar()
242267 GUILayout . FlexibleSpace ( ) ;
243268
244269 //Paste transform data
245- TriButtonRow ( new GUIContent ( "Paste" ) , TOOLBAR_BUTTON_WIDTH * 2 ,
270+ TriButtonRow ( paste , TOOLBAR_BUTTON_WIDTH * 2 ,
246271 t =>
247272 {
248273 Undo . RecordObject ( t , "Paste Transform Values" ) ;
0 commit comments