@@ -1467,31 +1467,34 @@ class HMDOut extends BaseLibrary {
14671467 }
14681468 }
14691469
1470- var meshCount = 0 ;
14711470 var rootIndex = - 1 ;
1472- for ( m in d .models ) {
1473- if ( m .geometry >= 0 && ! m .isLOD () && ! m .isCollider () ) {
1474- if ( m .parent == - 1 )
1475- break ;
1476- meshCount ++ ;
1477- var root = d .models [m .parent ];
1478- if ( root .parent != - 1 || root .geometry != - 1 || root .name != null || ! root .position .isIdentity () )
1479- break ;
1480- rootIndex = m .parent ;
1471+ for ( i => m in d .models ) {
1472+ if ( m .parent == - 1 && m .geometry == - 1 && m .name == null && m .position .isIdentity () ) {
1473+ rootIndex = i ;
1474+ break ;
14811475 }
14821476 }
1483- if ( meshCount == 1 && rootIndex != - 1 ) {
1484- d . models . remove ( d . models [ rootIndex ]) ;
1477+ if ( rootIndex != - 1 ) {
1478+ var meshCount = 0 ;
14851479 for ( m in d .models ) {
1486- if ( m .parent == rootIndex )
1487- m .parent = - 1 ;
1488- else if ( m .parent > rootIndex )
1489- m .parent -- ;
1490- if ( m .lods != null ) {
1491- for ( i in 0 ... m .lods .length ) {
1492- var lodIndex = m .lods [i ];
1493- if ( lodIndex > rootIndex )
1494- m .lods [i ] = lodIndex - 1 ;
1480+ if ( m .geometry >= 0 && ! m .isLOD () && ! m .isCollider () && m .parent == rootIndex )
1481+ meshCount ++ ;
1482+ if ( meshCount > 1 )
1483+ break ;
1484+ }
1485+ if ( meshCount == 1 ) {
1486+ d .models .remove (d .models [rootIndex ]);
1487+ for ( m in d .models ) {
1488+ if ( m .parent == rootIndex )
1489+ m .parent = - 1 ;
1490+ else if ( m .parent > rootIndex )
1491+ m .parent -- ;
1492+ if ( m .lods != null ) {
1493+ for ( i in 0 ... m .lods .length ) {
1494+ var lodIndex = m .lods [i ];
1495+ if ( lodIndex > rootIndex )
1496+ m .lods [i ] = lodIndex - 1 ;
1497+ }
14951498 }
14961499 }
14971500 }
0 commit comments