@@ -13,7 +13,6 @@ public enum CollectObjects2d
13
13
All = 0 ,
14
14
Volume = 1 ,
15
15
Children = 2 ,
16
- Grid = 3 ,
17
16
}
18
17
19
18
[ ExecuteAlways ]
@@ -331,12 +330,9 @@ List<NavMeshBuildSource> CollectSources()
331
330
UnityEditor . AI . NavMeshBuilder . CollectSourcesInStage (
332
331
worldBounds , m_LayerMask , m_UseGeometry , m_DefaultArea , markups , gameObject . scene , sources ) ;
333
332
}
334
- if ( m_CollectObjects == CollectObjects2d . Grid )
335
- {
336
- UnityEditor . AI . NavMeshBuilder . CollectSourcesInStage (
337
- transform , m_LayerMask , m_UseGeometry , m_DefaultArea , markups , gameObject . scene , sources ) ;
338
- NavMeshBuilder2d . CollectGridSources ( sources , m_DefaultArea , m_LayerMask , m_OverrideByGrid , m_UseMeshPrefab ) ;
339
- }
333
+
334
+ NavMeshBuilder2d . CollectGridSources ( sources , m_DefaultArea , m_LayerMask , m_OverrideByGrid , m_UseMeshPrefab ) ;
335
+
340
336
}
341
337
else
342
338
#endif
@@ -355,11 +351,8 @@ List<NavMeshBuildSource> CollectSources()
355
351
var worldBounds = GetWorldBounds ( localToWorld , new Bounds ( m_Center , m_Size ) ) ;
356
352
NavMeshBuilder . CollectSources ( worldBounds , m_LayerMask , m_UseGeometry , m_DefaultArea , markups , sources ) ;
357
353
}
358
- if ( m_CollectObjects == CollectObjects2d . Grid )
359
- {
360
- NavMeshBuilder . CollectSources ( transform , m_LayerMask , m_UseGeometry , m_DefaultArea , markups , sources ) ;
361
- NavMeshBuilder2d . CollectGridSources ( sources , m_DefaultArea , m_LayerMask , m_OverrideByGrid , m_UseMeshPrefab ) ;
362
- }
354
+
355
+ NavMeshBuilder2d . CollectGridSources ( sources , m_DefaultArea , m_LayerMask , m_OverrideByGrid , m_UseMeshPrefab ) ;
363
356
}
364
357
if ( m_IgnoreNavMeshAgent )
365
358
sources . RemoveAll ( ( x ) => ( x . component != null && x . component . gameObject . GetComponent < NavMeshAgent > ( ) != null ) ) ;
@@ -393,44 +386,25 @@ Bounds CalculateWorldBounds(List<NavMeshBuildSource> sources)
393
386
Matrix4x4 worldToLocal = Matrix4x4 . TRS ( transform . position , transform . rotation , Vector3 . one ) ;
394
387
worldToLocal = worldToLocal . inverse ;
395
388
396
- if ( m_CollectObjects == CollectObjects2d . Grid )
397
- {
398
- var grid = FindObjectOfType < Grid > ( ) ;
399
- var tilemaps = grid . GetComponentsInChildren < Tilemap > ( ) ;
400
- if ( tilemaps == null || tilemaps . Length < 1 )
401
- {
402
- throw new NullReferenceException ( "Add at least one tilemap" ) ;
403
- }
404
- var bounds = new Bounds ( ) ;
405
- foreach ( var tilemap in tilemaps )
406
- {
407
- //Debug.Log($"From Local Bounds [{tilemap.name}]: {tilemap.localBounds}");
408
- var lbounds = GetWorldBounds ( worldToLocal * tilemap . transform . localToWorldMatrix , tilemap . localBounds ) ;
409
- bounds . Encapsulate ( lbounds ) ;
410
- //Debug.Log($"To World Bounds: {bounds}");
411
- }
412
- bounds . Expand ( 0.1f ) ;
413
- return bounds ;
414
- }
389
+ var result = CalculateGridWorldBounds ( worldToLocal ) ;
415
390
416
- var result = new Bounds ( ) ;
417
391
foreach ( var src in sources )
418
392
{
419
393
switch ( src . shape )
420
394
{
421
395
case NavMeshBuildSourceShape . Mesh :
422
- {
423
- var m = src . sourceObject as Mesh ;
424
- result . Encapsulate ( GetWorldBounds ( worldToLocal * src . transform , m . bounds ) ) ;
425
- break ;
426
- }
396
+ {
397
+ var m = src . sourceObject as Mesh ;
398
+ result . Encapsulate ( GetWorldBounds ( worldToLocal * src . transform , m . bounds ) ) ;
399
+ break ;
400
+ }
427
401
case NavMeshBuildSourceShape . Terrain :
428
- {
429
- // Terrain pivot is lower/left corner - shift bounds accordingly
430
- var t = src . sourceObject as TerrainData ;
431
- result . Encapsulate ( GetWorldBounds ( worldToLocal * src . transform , new Bounds ( 0.5f * t . size , t . size ) ) ) ;
432
- break ;
433
- }
402
+ {
403
+ // Terrain pivot is lower/left corner - shift bounds accordingly
404
+ var t = src . sourceObject as TerrainData ;
405
+ result . Encapsulate ( GetWorldBounds ( worldToLocal * src . transform , new Bounds ( 0.5f * t . size , t . size ) ) ) ;
406
+ break ;
407
+ }
434
408
case NavMeshBuildSourceShape . Box :
435
409
case NavMeshBuildSourceShape . Sphere :
436
410
case NavMeshBuildSourceShape . Capsule :
@@ -444,6 +418,26 @@ Bounds CalculateWorldBounds(List<NavMeshBuildSource> sources)
444
418
return result ;
445
419
}
446
420
421
+ private static Bounds CalculateGridWorldBounds ( Matrix4x4 worldToLocal )
422
+ {
423
+ var grid = FindObjectOfType < Grid > ( ) ;
424
+ var tilemaps = grid . GetComponentsInChildren < Tilemap > ( ) ;
425
+ if ( tilemaps == null || tilemaps . Length < 1 )
426
+ {
427
+ throw new NullReferenceException ( "Add at least one tilemap" ) ;
428
+ }
429
+ var bounds = new Bounds ( ) ;
430
+ foreach ( var tilemap in tilemaps )
431
+ {
432
+ //Debug.Log($"From Local Bounds [{tilemap.name}]: {tilemap.localBounds}");
433
+ var lbounds = GetWorldBounds ( worldToLocal * tilemap . transform . localToWorldMatrix , tilemap . localBounds ) ;
434
+ bounds . Encapsulate ( lbounds ) ;
435
+ //Debug.Log($"To World Bounds: {bounds}");
436
+ }
437
+ bounds . Expand ( 0.1f ) ;
438
+ return bounds ;
439
+ }
440
+
447
441
bool HasTransformChanged ( )
448
442
{
449
443
if ( m_LastPosition != transform . position ) return true ;
0 commit comments