private void LoadAssetsFile(string fullName, AssetReader reader) { var fileName = Path.GetFileName(fullName); if (!assetsFileListHash.Contains(fileName)) { Logger.Info($"Loading {fileName}"); try { var assetsFile = new SerializedFile(this, fullName, reader); assetsFileList.Add(assetsFile); assetsFileListHash.Add(assetsFile.fileName); foreach (var sharedFile in assetsFile.m_Externals) { var sharedFilePath = Path.GetDirectoryName(fullName) + "\\" + sharedFile.fileName; var sharedFileName = sharedFile.fileName; if (!importFilesHash.Contains(sharedFileName)) { if (!File.Exists(sharedFilePath)) { var findFiles = Directory.GetFiles(Path.GetDirectoryName(fullName), sharedFileName, SearchOption.AllDirectories); if (findFiles.Length > 0) { sharedFilePath = findFiles[0]; } } if (File.Exists(sharedFilePath)) { importFiles.Add(sharedFilePath); importFilesHash.Add(sharedFileName); } } } } catch { reader.Dispose(); //Logger.Warning($"Unable to load assets file {fileName}"); } } else { reader.Dispose(); } }
private void LoadWebFile(string fullName, AssetReader reader) { var fileName = Path.GetFileName(fullName); Logger.Info("Loading " + fileName); try { var webFile = new WebFile(reader); foreach (var file in webFile.fileList) { var dummyPath = Path.GetDirectoryName(fullName) + "\\" + file.fileName; switch (CheckFileType(file.stream, out var fileReader)) { case FileType.AssetsFile: LoadAssetsFromMemory(dummyPath, fileReader, fullName); break; case FileType.BundleFile: LoadBundleFile(dummyPath, fileReader, fullName); break; case FileType.WebFile: LoadWebFile(dummyPath, fileReader); break; case FileType.ResourceFile: resourceFileReaders.Add(file.fileName, fileReader); break; } } } catch { //Logger.Error($"Unable to load web file {fileName}"); } finally { reader.Dispose(); } }
private void LoadBundleFile(string fullName, AssetReader reader, string parentPath = null) { var fileName = Path.GetFileName(fullName); Logger.Info("Loading " + fileName); try { var bundleFile = new BundleFile(reader, fullName); foreach (var file in bundleFile.fileList) { var subReader = new AssetReader(file.stream); if (SerializedFile.IsSerializedFile(subReader)) { var dummyPath = Path.GetDirectoryName(fullName) + Path.DirectorySeparatorChar + file.fileName; LoadAssetsFromMemory(dummyPath, subReader, parentPath ?? fullName, bundleFile.m_Header.unityRevision); } else { resourceFileReaders.Add(file.fileName, subReader); } } } catch { /*var str = $"Unable to load bundle file {fileName}"; * if (parentPath != null) * { * str += $" from {Path.GetFileName(parentPath)}"; * } * Logger.Error(str);*/ } finally { reader.Dispose(); } }