示例#1
0
        public string Export(ScriptExportType exportType)
        {
            if (exportType.DeclaringType != null)
            {
                throw new NotSupportedException("You can export only topmost types");
            }

            if (IsBuiltInType(exportType))
            {
                return(null);
            }

            string subPath        = GetExportSubPath(exportType);
            string filePath       = Path.Combine(m_exportPath, subPath);
            string uniqueFilePath = ToUniqueFileName(filePath);
            string directory      = Path.GetDirectoryName(uniqueFilePath);

            if (!DirectoryUtils.Exists(directory))
            {
                DirectoryUtils.CreateVirtualDirectory(directory);
            }

            using (Stream fileStream = FileUtils.CreateVirtualFile(uniqueFilePath))
            {
                using (StreamWriter writer = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
                {
                    exportType.Export(writer);
                }
            }
            AddExportedType(exportType);
            return(uniqueFilePath);
        }
示例#2
0
        private static TextWriter CreateWriter(string path, bool append)
        {
            FileMode mode = append ? FileMode.Append : FileMode.Create;

            RollingFileStream fs = new RollingFileStream(path, 0x100000, 10, mode, FileShare.Read);

            InvariantStreamWriter writer = new InvariantStreamWriter(fs, Encoding.Default);

            return(writer);
        }
示例#3
0
 public void Export(IExportContainer container, Object asset, string path, Action <IExportContainer, Object, string> callback)
 {
     using (FileStream fileStream = FileUtils.Open(path, FileMode.Create, FileAccess.Write))
     {
         using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, Encoding.UTF8))
         {
             YAMLWriter   writer = new YAMLWriter();
             YAMLDocument doc    = asset.ExportYAMLDocument(container);
             writer.AddDocument(doc);
             writer.Write(streamWriter);
         }
     }
     callback?.Invoke(container, asset, path);
 }
示例#4
0
 public bool Export(IExportContainer container, Object asset, string path)
 {
     using (Stream fileStream = FileUtils.CreateVirtualFile(path))
     {
         using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
         {
             YAMLWriter   writer = new YAMLWriter();
             YAMLDocument doc    = asset.ExportYAMLDocument(container);
             writer.AddDocument(doc);
             writer.Write(streamWriter);
         }
     }
     return(true);
 }
 public void Export(IExportContainer container, Object asset, string path, Action <IExportContainer, Object, string> callback)
 {
     using (Stream fileStream = FileUtils.CreateVirtualFile(path))
     {
         using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
         {
             YAMLWriter   writer = new YAMLWriter();
             YAMLDocument doc    = asset.ExportYAMLDocument(container);
             writer.AddDocument(doc);
             writer.Write(streamWriter);
         }
     }
     callback?.Invoke(container, asset, path);
 }
		public void Export(IExportContainer container, IEnumerable<Object> assets, string path)
		{
			using (FileStream fileStream = FileUtils.Open(path, FileMode.Create, FileAccess.Write))
			{
				using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
				{
					YAMLWriter writer = new YAMLWriter();
					writer.WriteHead(streamWriter);
					foreach (Object asset in assets)
					{
						YAMLDocument doc = asset.ExportYAMLDocument(container);
						writer.WriteDocument(doc);
					}
					writer.WriteTail(streamWriter);
				}
			}
		}
示例#7
0
        protected void ExportMeta(IExportContainer container, Meta meta, string filePath)
        {
            string metaPath = $"{filePath}.meta";

            using (Stream fileStream = FileUtils.CreateVirtualFile(metaPath))
            {
                using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
                {
                    YAMLWriter   writer = new YAMLWriter();
                    YAMLDocument doc    = meta.ExportYAMLDocument(container);
                    writer.IsWriteDefaultTag = false;
                    writer.IsWriteVersion    = false;
                    writer.AddDocument(doc);
                    writer.Write(streamWriter);
                }
            }
        }
示例#8
0
        protected static void ExportMeta(IExportContainer container, Meta meta, string filePath)
        {
            string metaPath = $"{filePath}{MetaExtension}";

            using (var fileStream = FileUtils.CreateVirtualFile(metaPath))
                using (var stream = new BufferedStream(fileStream))
                    using (var streamWriter = new InvariantStreamWriter(stream, new UTF8Encoding(false)))
                    {
                        YAMLWriter writer = new YAMLWriter();
                        writer.IsWriteDefaultTag = false;
                        writer.IsWriteVersion    = false;
                        writer.IsFormatKeys      = true;
                        YAMLDocument doc = meta.ExportYAMLDocument(container);
                        writer.AddDocument(doc);
                        writer.Write(streamWriter);
                    }
        }
示例#9
0
 public bool Export(IExportContainer container, IEnumerable <Object> assets, string path)
 {
     using (Stream fileStream = FileUtils.CreateVirtualFile(path))
     {
         using (StreamWriter streamWriter = new InvariantStreamWriter(fileStream, new UTF8Encoding(false)))
         {
             YAMLWriter writer = new YAMLWriter();
             writer.WriteHead(streamWriter);
             foreach (Object asset in assets)
             {
                 YAMLDocument doc = asset.ExportYAMLDocument(container);
                 writer.WriteDocument(doc);
             }
             writer.WriteTail(streamWriter);
         }
     }
     return(true);
 }
示例#10
0
 public void ExportBinary(IExportContainer container, Stream stream, Func <ShaderGpuProgramType, ShaderTextExporter> exporterInstantiator)
 {
     if (IsSerialized(container.Version))
     {
         using (StreamWriter writer = new InvariantStreamWriter(stream, Encoding.UTF8))
         {
             ParsedForm.Export(writer, this, exporterInstantiator);
         }
     }
     else if (IsEncoded(container.Version))
     {
         using (StreamWriter writer = new InvariantStreamWriter(stream, Encoding.UTF8))
         {
             string header = Encoding.UTF8.GetString(Script);
             SubProgramBlob.Export(writer, header, exporterInstantiator);
         }
     }
     else
     {
         base.ExportBinary(container, stream);
     }
 }
示例#11
0
        public override bool Export(ProjectAssetContainer container, string dirPath)
        {
            string subPath  = Path.Combine(dirPath, ProjectSettingsName);
            string fileName = $"{EditorBuildSettings.ClassID.ToString()}.asset";
            string filePath = Path.Combine(subPath, fileName);

            if (!DirectoryUtils.Exists(subPath))
            {
                DirectoryUtils.CreateDirectory(subPath);
            }

            BuildSettings       asset  = (BuildSettings)Asset;
            IEnumerable <Scene> scenes = asset.Scenes.Select(t => new Scene(t, container.SceneNameToGUID(t)));

            EditorBuildSettings.Initialize(scenes);
            AssetExporter.Export(container, EditorBuildSettings, filePath);

            fileName = $"{EditorSettings.ClassID.ToString()}.asset";
            filePath = Path.Combine(subPath, fileName);

            AssetExporter.Export(container, EditorSettings, filePath);

            if (NavMeshProjectSettings != null)
            {
                fileName = $"{NavMeshProjectSettings.ExportName}.asset";
                filePath = Path.Combine(subPath, fileName);

                AssetExporter.Export(container, NavMeshProjectSettings, filePath);
            }
            if (NetworkManager != null)
            {
                fileName = $"{NetworkManager.ExportName}.asset";
                filePath = Path.Combine(subPath, fileName);

                AssetExporter.Export(container, NetworkManager, filePath);
            }
            if (Physics2DSettings != null)
            {
                fileName = $"{Physics2DSettings.ExportName}.asset";
                filePath = Path.Combine(subPath, fileName);

                AssetExporter.Export(container, Physics2DSettings, filePath);
            }
            if (UnityConnectSettings != null)
            {
                fileName = $"{UnityConnectSettings.ExportName}.asset";
                filePath = Path.Combine(subPath, fileName);

                AssetExporter.Export(container, UnityConnectSettings, filePath);
            }
            if (QualitySettings != null)
            {
                fileName = $"{QualitySettings.ExportName}.asset";
                filePath = Path.Combine(subPath, fileName);

                AssetExporter.Export(container, QualitySettings, filePath);
            }

            fileName = $"ProjectVersion.txt";
            filePath = Path.Combine(subPath, fileName);

            using (FileStream file = FileUtils.Create(filePath))
            {
                using (StreamWriter writer = new InvariantStreamWriter(file, Encoding.UTF8))
                {
                    writer.Write("m_EditorVersion: 2017.3.0f3");
                }
            }
            return(true);
        }