瀏覽代碼

Fix external tileset children not loading

Garrett Johnson 4 年之前
父節點
當前提交
23a0900095
共有 2 個文件被更改,包括 8 次插入1 次删除
  1. 1 0
      src/base/TilesRendererBase.js
  2. 7 1
      src/base/traverseFunctions.js

+ 1 - 0
src/base/TilesRendererBase.js

@@ -171,6 +171,7 @@ export class TilesRendererBase {
 		const uri = tile.content && tile.content.uri;
 		if ( uri ) {
 
+			// "content" should only indicate loadable meshes, not external tile sets
 			const isExternalTileSet = /\.json$/i.test( tile.content.uri );
 			tile.__externalTileSet = isExternalTileSet;
 			tile.__contentEmpty = isExternalTileSet;

+ 7 - 1
src/base/traverseFunctions.js

@@ -54,7 +54,13 @@ function recursivelyMarkUsed( tile, frameCount, lruCache ) {
 
 function recursivelyLoadTiles( tile, depthFromRenderedParent, renderer ) {
 
-	if ( tile.__contentEmpty && ! tile.__externalTileSet ) {
+	// Try to load any external tile set children if the external tile set has loaded.
+	const doTraverse =
+		tile.__contentEmpty && (
+			! tile.__externalTileSet ||
+			isDownloadFinished( tile.__loadingState )
+		);
+	if ( doTraverse ) {
 
 		const children = tile.children;
 		for ( let i = 0, l = children.length; i < l; i ++ ) {