/// <summary> /// Draws file handling fields for scriptable object instances. /// </summary> protected virtual void DrawScriptableObjectFileHandlingFields() { if (_isScriptableObject && _scriptableObjectTarget) { string objectClassName = _scriptableObjectTarget.GetType().Name; SOFlowEditorUtilities.DrawHorizontalColourLayer(SOFlowEditorSettings.TertiaryLayerColour, () => { if (SOFlowEditorUtilities .DrawColourButton($"Save {objectClassName} Data", SOFlowEditorSettings .AcceptContextColour)) { _scriptableObjectTarget .SaveJSON($"Save {objectClassName} Data", $"New {objectClassName} Data"); } if (SOFlowEditorUtilities .DrawColourButton($"Load {objectClassName} Data", SOFlowEditorSettings .AcceptContextColour)) { _scriptableObjectTarget .LoadJSON($"Load {objectClassName} Data", () => { AssetDatabase.SaveAssets(); // Reselect the target instance in order to refresh the inspector and display the loaded values. Selection .SetActiveObjectWithContext(target, _scriptableObjectTarget); }); } }); } }