public virtual bool SearchNextAsset() { if (index >= assetPaths.Count) { return(false); } string assetPath = assetPaths[index]; index++; bool hasMoreItems = index != assetPaths.Count; SearchAssetData assetData = job.searchAssetsData[assetPath]; if (assetData.hasBeenSearched) { //looks like the item has already been searched! return(hasMoreItems); } assetData.hasBeenSearched = true; job.assetData = assetData; if (job.searchItemCaresAboutAsset()) { // Debug.Log("[SearchSubJob] processing:"+assetPath); processAsset(assetPath); } else { // Debug.Log("[SearchSubJob] ignoring:"+assetPath); } return(hasMoreItems); }