static void ExportTexture(Texture2D _saveTexture, string _name, enum_TextureExportType _exportType) { string extend = ""; switch (_exportType) { default: throw new Exception("Invalid Export Type:" + _exportType); case enum_TextureExportType.JPG: extend = "jpg"; break; case enum_TextureExportType.PNG: extend = "png"; break; case enum_TextureExportType.TGA: extend = "tga"; break; case enum_TextureExportType.EXR: extend = "exr"; break; } if (!UEAsset.SaveFilePath(out string filePath, extend, _name + "_M")) { return; } byte[] bytes = null; switch (_exportType) { case enum_TextureExportType.TGA: bytes = _saveTexture.EncodeToTGA(); break; case enum_TextureExportType.EXR: bytes = _saveTexture.EncodeToEXR(); break; case enum_TextureExportType.JPG: bytes = _saveTexture.EncodeToJPG(); break; case enum_TextureExportType.PNG: bytes = _saveTexture.EncodeToPNG(); break; } UEAsset.CreateOrReplaceFile(filePath, bytes); }
private void OnGUI() { HorizontalScope.Begin(5, 5, 18); EditorGUI.LabelField(HorizontalScope.NextRect(0, 80), "Editor Mode:", UEGUIStyle_Window.m_TitleLabel); m_EditorMode = (enum_TextureEditorMode)EditorGUI.EnumPopup(HorizontalScope.NextRect(5, 100), m_EditorMode); HorizontalScope.NextLine(2, 20); var textureEditor = m_Editors[m_EditorMode]; if (!textureEditor.OnGUIExportValid(ref m_TargetTexture, UpdateTexture)) { return; } EditorGUI.BeginChangeCheck(); HorizontalScope.NextLine(2, 18); EditorGUI.LabelField(HorizontalScope.NextRect(0, 60), "Display:", UEGUIStyle_Window.m_TitleLabel); HorizontalScope.NextLine(2, 18); EditorGUI.LabelField(HorizontalScope.NextRect(0, 60), "Visualize:"); m_ColorVisualize = (enum_ColorVisualize)EditorGUI.EnumPopup(HorizontalScope.NextRect(5, 40), m_ColorVisualize); if (EditorGUI.EndChangeCheck()) { UpdateDisplayTexture(); } HorizontalScope.NextLine(2, 256); Rect textureRect = HorizontalScope.NextRect(0, 256); GUI.DrawTexture(textureRect, EditorGUIUtility.whiteTexture); GUI.DrawTexture(textureRect.Collapse(Vector2.one * 10f), m_DisplayTexture); HorizontalScope.NextLine(2, 20); HorizontalScope.NextLine(2, 18); EditorGUI.LabelField(HorizontalScope.NextRect(5, 50), "Export:", UEGUIStyle_Window.m_TitleLabel); m_TextureExportType = (enum_TextureExportType)EditorGUI.EnumPopup(HorizontalScope.NextRect(0, 50), m_TextureExportType); if (GUI.Button(HorizontalScope.NextRect(20, 80), "Export")) { ExportTexture(m_TargetTexture, m_TargetTexture.name, m_TextureExportType); } }