public void Save(string fileName, ScreenshotHelper ssh) { if (string.IsNullOrEmpty(fileName)) { return; } if (ssh.shotInfo.Count <= 0) { var tempDelegate = ssh.DefaultsSet; ssh.DefaultsSet = null; ssh.SetDefaults(); ssh.DefaultsSet = tempDelegate; } sizes = ssh.shotInfo; orientation = ssh.orientation; lastSavePath = ssh.savePath; keyToPress = ssh.keyToPress; keyToHold = ssh.keyToHold; buildPathRoot = ssh.buildSavePathRoot; buildPathExtra = ssh.buildSavePathExtra; textureFormat = ssh.SSHTextureFormat; var serializer = new XmlSerializer(typeof(SSHPreset)); using (var stream = new FileStream(fileName, FileMode.Create)) serializer.Serialize(stream, this); }
void OnEnable() { ScreenshotHelper myTarget = (ScreenshotHelper)target; bool loadConfig = false; if (myTarget.shotInfo.Count == 0 || !string.IsNullOrEmpty(myTarget.configFile)) { if (!string.IsNullOrEmpty(myTarget.configFile)) { if (File.Exists(myTarget.configFile)) { loadConfig = true; } } if (loadConfig) { LoadPresetFile(myTarget.configFile, myTarget); } else { myTarget.SetDefaults(); } } if (!loadConfig) { LoadPresetFile(SSHPreset.DefaultSavePath(), myTarget); if (File.Exists(SSHPreset.DefaultSavePath())) { File.Delete(SSHPreset.DefaultSavePath()); } } myTarget.PathChange = PathChange; //myTarget.DefaultsSet = SaveSettings; }
public override void OnInspectorGUI() { ScreenshotHelper myTarget = (ScreenshotHelper)target; RenderTextureToggleAndWarning(myTarget); myTarget.SSHTextureFormat = (ScreenshotHelper.tSSHTextureFormat)EditorGUILayout.EnumPopup("Texture Format", myTarget.SSHTextureFormat); CameraSolidColorTransparencyWarning(myTarget); MakeSpace(1); EditorGUI.BeginChangeCheck(); myTarget.keyToHold = (KeyCode)EditorGUILayout.EnumPopup("Key to hold:", myTarget.keyToHold); myTarget.keyToPress = (KeyCode)EditorGUILayout.EnumPopup("Key to press:", myTarget.keyToPress); if (myTarget.keyToPress == KeyCode.None) { EditorGUILayout.HelpBox("If you don't assign a key to press then you will not be able to take screenshots with a key press.", MessageType.Warning, true); } MakeSpace(1); myTarget.orientation = (SSHOrientation)EditorGUILayout.EnumPopup("Orientation", myTarget.orientation); if (EditorGUI.EndChangeCheck()) { myTarget.UpdateDimensions(); } //sizes header MakeSpace(1); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Screen Shot Sizes", EditorStyles.boldLabel); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("Expand each to edit", MessageType.None, true); EditorGUILayout.EndHorizontal(); MakeSpace(1); SetSizesSubs(myTarget); //add a size EditorGUILayout.Space(); if (GUILayout.Button("Add a size")) { myTarget.shotInfo.Add(new ShotSize(0, 0)); } MakeSpace(3); EditorGUILayout.HelpBox("In-editor Save location: " + myTarget.savePath, MessageType.None); if (GUILayout.Button("Set in-editor save location")) { myTarget.savePath = GameViewUtils.SelectFileFolder(Directory.GetCurrentDirectory(), ""); PathChange(myTarget.savePath); } MakeSpace(1); EditorGUILayout.HelpBox("Build Save location example: " + myTarget.BuildSaveLocation(), MessageType.None); if (GUILayout.Button("Set build save location")) { ScreenshotHelperBuildSaveLocationWindow.ShowWindow(myTarget); } MakeSpace(2); if (GUILayout.Button("Save Presets")) { string newConfig = SavePreset(myTarget); if (!string.IsNullOrEmpty(newConfig)) { myTarget.configFile = newConfig; } } LoadPresetsButton(myTarget); MakeSpace(2); if (GUILayout.Button("Load Defaults")) { myTarget.SetDefaults(); myTarget.configFile = ""; } MakeSpace(1); }