示例#1
0
        /// <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);
                        });
                    }
                });
            }
        }