示例#1
0
 private void ProcessEntries()
 {
     foreach (WebFileEntry entry in Metadata.Entries.Values)
     {
         FileScheme scheme = FileCollection.ReadScheme(m_stream, entry.Offset, entry.Size, FilePath, entry.NameOrigin);
         AddScheme(scheme);
     }
 }
示例#2
0
 private void ProcessEntries()
 {
     foreach (BundleFileEntry entry in Metadata.Entries.Values)
     {
         FileEntryOffset offset = m_entryStreams[entry];
         FileScheme      scheme = FileCollection.ReadScheme(offset.Stream, offset.Offset, entry.Size, FilePath, entry.NameOrigin);
         AddScheme(scheme);
     }
 }
示例#3
0
        private static object LoadScheme(FileScheme scheme)
        {
            object file = null;

            if (scheme is SerializedFileScheme serializedFileScheme)
            {
                var platform = serializedFileScheme.Metadata != null &&
                               serializedFileScheme.Metadata.TargetPlatform != 0 ?
                               serializedFileScheme.Metadata.TargetPlatform
                                        : Platform.StandaloneWin64Player;
                var version = serializedFileScheme.Metadata != null ?
                              serializedFileScheme.Metadata.UnityVersion
                                        : new Version();
                var layoutInfo = new LayoutInfo(version, platform, serializedFileScheme.Flags);
                var layout     = new AssetLayout(layoutInfo);
                var parameters = new GameCollection.Parameters(layout);
                var collection = new GameCollection(parameters);
                file = Util.CreateInstance <SerializedFile>(collection, scheme);
                typeof(SerializedFile).GetMethod("ReadData", AllBindingFlags)
                .Invoke(file, new object[] { serializedFileScheme.Stream });
            }
            if (scheme is BundleFileScheme bundleFileScheme)
            {
                file = Util.CreateInstance <BundleFile>(scheme);
                AddScheme((BundleFile)file, bundleFileScheme);
            }
            if (scheme is ArchiveFileScheme archiveFileScheme)
            {
                file = Util.CreateInstance <ArchiveFile>(scheme);
                AddScheme((ArchiveFile)file, archiveFileScheme);
            }
            if (scheme is WebFileScheme webFileScheme)
            {
                file = Util.CreateInstance <WebFile>(scheme);
                AddScheme((WebFile)file, webFileScheme);
            }
            if (scheme is ResourceFileScheme resourceFileScheme)
            {
                file = Util.CreateInstance <ResourceFile>(scheme);
            }
            return(file);
        }
示例#4
0
        private static void AddScheme(FileList fileList, FileScheme scheme)
        {
            var file = LoadScheme(scheme);

            switch (scheme.SchemeType)
            {
            case FileEntryType.Serialized:
                fileList.AddSerializedFile((SerializedFile)file);
                break;

            case FileEntryType.Bundle:
            case FileEntryType.Archive:
            case FileEntryType.Web:
                fileList.AddSerializedFile((SerializedFile)file);
                break;

            case FileEntryType.Resource:
                fileList.AddResourceFile((ResourceFile)file);
                break;
            }
        }
示例#5
0
文件: FileScheme.cs 项目: nomit007/f4
 public static void make_(FileScheme self)
 {
 }
示例#6
0
 public static void make_(FileScheme self)
 {
 }