@@ -112,6 +112,9 @@ static void InitReflectedData()
112112 static bool mouseDragged = false ;
113113 static Vector2 clickMousePosition = MathConstants . zeroVector2 ;
114114
115+
116+ static List < UnityEngine . Object > sFoundObjects = new List < UnityEngine . Object > ( ) ;
117+
115118 // Update rectangle selection using reflection
116119 // This is hacky & dangerous
117120 // LOOK AWAY NOW!
@@ -307,18 +310,32 @@ internal static void Update(SceneView sceneView)
307310 case EventType . MouseDown :
308311 {
309312 rectClickDown = ( Event . current . button == 0 && hotControl == s_RectSelectionID_instance ) ;
313+ var selectedObjects = Selection . objects ;
314+ sFoundObjects . Clear ( ) ;
315+ foreach ( var obj in selectedObjects )
316+ {
317+ var component = obj as Component ;
318+ var gameObject = obj as GameObject ;
319+ var transform = obj as Transform ;
320+ if ( ! ( component && component . GetComponent < GeneratedMeshes > ( ) ) &&
321+ ! ( gameObject && gameObject . GetComponent < GeneratedMeshes > ( ) ) &&
322+ ! ( transform && transform . GetComponent < Transform > ( ) ) )
323+ sFoundObjects . Add ( obj ) ;
324+ }
310325 clickMousePosition = Event . current . mousePosition ;
311326 mouseDragged = false ;
312327 break ;
313328 }
314329 case EventType . MouseUp :
315330 {
316331 rectClickDown = false ;
332+ sFoundObjects . Clear ( ) ;
317333 break ;
318334 }
319335 case EventType . MouseMove :
320336 {
321337 rectClickDown = false ;
338+ sFoundObjects . Clear ( ) ;
322339 break ;
323340 }
324341 case EventType . Used :
@@ -340,20 +357,9 @@ internal static void Update(SceneView sceneView)
340357 if ( Selection . gameObjects != null )
341358 {
342359 var selectedObjects = Selection . objects ;
343- var foundObjects = new List < UnityEngine . Object > ( ) ;
344- foreach ( var obj in selectedObjects )
345- {
346- var component = obj as Component ;
347- var gameObject = obj as GameObject ;
348- var transform = obj as Transform ;
349- if ( ! ( component && component . GetComponent < GeneratedMeshes > ( ) ) &&
350- ! ( gameObject && gameObject . GetComponent < GeneratedMeshes > ( ) ) &&
351- ! ( transform && transform . GetComponent < Transform > ( ) ) )
352- foundObjects . Add ( obj ) ;
353- }
354- if ( foundObjects . Count != selectedObjects . Length )
360+ if ( sFoundObjects . Count != selectedObjects . Length )
355361 {
356- Selection . objects = foundObjects . ToArray ( ) ;
362+ Selection . objects = sFoundObjects . ToArray ( ) ;
357363 }
358364 }
359365
@@ -363,6 +369,7 @@ internal static void Update(SceneView sceneView)
363369
364370 }
365371 rectClickDown = false ;
372+ sFoundObjects . Clear ( ) ;
366373 break ;
367374 }
368375
0 commit comments