private void Load(string[] files) { foreach (var file in files) { importFiles.Add(file); importFilesHash.Add(Path.GetFileName(file).ToUpper()); } Progress.Reset(); //use a for loop because list size can change for (var i = 0; i < importFiles.Count; i++) { LoadFile(importFiles[i]); Progress.Report(i + 1, importFiles.Count); } importFiles.Clear(); importFilesHash.Clear(); assetsfileListHash.Clear(); }
private void ReadAssets() { Logger.Info("Read assets..."); var progressCount = assetsFileList.Sum(x => x.m_Objects.Count); int i = 0; Progress.Reset(); foreach (var assetsFile in assetsFileList) { foreach (var objectInfo in assetsFile.m_Objects) { var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo); try { Object obj; switch (objectReader.type) { case ClassIDType.Animation: obj = new Animation(objectReader); break; case ClassIDType.AnimationClip: obj = new AnimationClip(objectReader); break; case ClassIDType.Animator: obj = new Animator(objectReader); break; case ClassIDType.AnimatorController: obj = new AnimatorController(objectReader); break; case ClassIDType.AnimatorOverrideController: obj = new AnimatorOverrideController(objectReader); break; case ClassIDType.AssetBundle: obj = new AssetBundle(objectReader); break; case ClassIDType.AudioClip: obj = new AudioClip(objectReader); break; case ClassIDType.Avatar: obj = new Avatar(objectReader); break; case ClassIDType.Font: obj = new Font(objectReader); break; case ClassIDType.GameObject: obj = new GameObject(objectReader); break; case ClassIDType.Material: obj = new Material(objectReader); break; case ClassIDType.Mesh: obj = new Mesh(objectReader); break; case ClassIDType.MeshFilter: obj = new MeshFilter(objectReader); break; case ClassIDType.MeshRenderer: obj = new MeshRenderer(objectReader); break; case ClassIDType.MonoBehaviour: obj = new MonoBehaviour(objectReader); break; case ClassIDType.MonoScript: obj = new MonoScript(objectReader); break; case ClassIDType.MovieTexture: obj = new MovieTexture(objectReader); break; case ClassIDType.PlayerSettings: obj = new PlayerSettings(objectReader); break; case ClassIDType.RectTransform: obj = new RectTransform(objectReader); break; case ClassIDType.Shader: obj = new Shader(objectReader); break; case ClassIDType.SkinnedMeshRenderer: obj = new SkinnedMeshRenderer(objectReader); break; case ClassIDType.Sprite: obj = new Sprite(objectReader); break; case ClassIDType.SpriteAtlas: obj = new SpriteAtlas(objectReader); break; case ClassIDType.TextAsset: obj = new TextAsset(objectReader); break; case ClassIDType.Texture2D: obj = new Texture2D(objectReader); break; case ClassIDType.Transform: obj = new Transform(objectReader); break; case ClassIDType.VideoClip: obj = new VideoClip(objectReader); break; default: obj = new Object(objectReader); break; } assetsFile.AddObject(obj); } catch (Exception e) { /*var sb = new StringBuilder(); * sb.AppendLine("Unable to load object") * .AppendLine($"Assets {assetsFile.fileName}") * .AppendLine($"Type {objectReader.type}") * .AppendLine($"PathID {objectInfo.m_PathID}") * .Append(e); * Logger.Error(sb.ToString());*/ } Progress.Report(++i, progressCount); } } }
private void ReadAssets() { Logger.Info("Read assets..."); var progressCount = assetsFileList.Sum(x => x.m_Objects.Count); int i = 0; Progress.Reset(); foreach (var assetsFile in assetsFileList) { assetsFile.Objects = new Dictionary <long, Object>(assetsFile.m_Objects.Count); foreach (var objectInfo in assetsFile.m_Objects) { var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo); switch (objectReader.type) { case ClassIDType.Animation: assetsFile.Objects.Add(objectInfo.m_PathID, new Animation(objectReader)); break; case ClassIDType.AnimationClip: assetsFile.Objects.Add(objectInfo.m_PathID, new AnimationClip(objectReader)); break; case ClassIDType.Animator: assetsFile.Objects.Add(objectInfo.m_PathID, new Animator(objectReader)); break; case ClassIDType.AnimatorController: assetsFile.Objects.Add(objectInfo.m_PathID, new AnimatorController(objectReader)); break; case ClassIDType.AnimatorOverrideController: assetsFile.Objects.Add(objectInfo.m_PathID, new AnimatorOverrideController(objectReader)); break; case ClassIDType.AssetBundle: assetsFile.Objects.Add(objectInfo.m_PathID, new AssetBundle(objectReader)); break; case ClassIDType.AudioClip: assetsFile.Objects.Add(objectInfo.m_PathID, new AudioClip(objectReader)); break; case ClassIDType.Avatar: assetsFile.Objects.Add(objectInfo.m_PathID, new Avatar(objectReader)); break; case ClassIDType.Font: assetsFile.Objects.Add(objectInfo.m_PathID, new Font(objectReader)); break; case ClassIDType.GameObject: assetsFile.Objects.Add(objectInfo.m_PathID, new GameObject(objectReader)); break; case ClassIDType.Material: assetsFile.Objects.Add(objectInfo.m_PathID, new Material(objectReader)); break; case ClassIDType.Mesh: assetsFile.Objects.Add(objectInfo.m_PathID, new Mesh(objectReader)); break; case ClassIDType.MeshFilter: assetsFile.Objects.Add(objectInfo.m_PathID, new MeshFilter(objectReader)); break; case ClassIDType.MeshRenderer: assetsFile.Objects.Add(objectInfo.m_PathID, new MeshRenderer(objectReader)); break; case ClassIDType.MonoBehaviour: assetsFile.Objects.Add(objectInfo.m_PathID, new MonoBehaviour(objectReader)); break; case ClassIDType.MonoScript: assetsFile.Objects.Add(objectInfo.m_PathID, new MonoScript(objectReader)); break; case ClassIDType.MovieTexture: assetsFile.Objects.Add(objectInfo.m_PathID, new MovieTexture(objectReader)); break; case ClassIDType.PlayerSettings: assetsFile.Objects.Add(objectInfo.m_PathID, new PlayerSettings(objectReader)); break; case ClassIDType.RectTransform: assetsFile.Objects.Add(objectInfo.m_PathID, new RectTransform(objectReader)); break; case ClassIDType.Shader: assetsFile.Objects.Add(objectInfo.m_PathID, new Shader(objectReader)); break; case ClassIDType.SkinnedMeshRenderer: assetsFile.Objects.Add(objectInfo.m_PathID, new SkinnedMeshRenderer(objectReader)); break; case ClassIDType.Sprite: assetsFile.Objects.Add(objectInfo.m_PathID, new Sprite(objectReader)); break; case ClassIDType.SpriteAtlas: assetsFile.Objects.Add(objectInfo.m_PathID, new SpriteAtlas(objectReader)); break; case ClassIDType.TextAsset: assetsFile.Objects.Add(objectInfo.m_PathID, new TextAsset(objectReader)); break; case ClassIDType.Texture2D: assetsFile.Objects.Add(objectInfo.m_PathID, new Texture2D(objectReader)); break; case ClassIDType.Transform: assetsFile.Objects.Add(objectInfo.m_PathID, new Transform(objectReader)); break; case ClassIDType.VideoClip: assetsFile.Objects.Add(objectInfo.m_PathID, new VideoClip(objectReader)); break; default: assetsFile.Objects.Add(objectInfo.m_PathID, new Object(objectReader)); break; } Progress.Report(++i, progressCount); } } }