public void OnEnable() { NodeManager.Instance.nodesToRemove = NodeManager.Instance.nodes; if (Manager.Instance.asset != null) { Manager.Instance.Load(Manager.Instance.asset); } else { string lastAssetPath = EditorPrefs.GetString("LastNoiseAsset"); NoiseAsset lastAsset = (NoiseAsset)AssetDatabase.LoadAssetAtPath(lastAssetPath, typeof(NoiseAsset)); if (lastAsset != null) { Manager.Instance.Load(lastAsset); } else { Manager.Instance.Save(); } } Manager.Instance.CreateScene(); ConnectionManager.Instance.Initialize(); }
public void Save() { string path; if (asset == null) { asset = (NoiseAsset)ScriptableObject.CreateInstance(typeof(NoiseAsset)); path = EditorUtility.SaveFilePanelInProject("Save Asset", "New NoisePerspective Asset", "asset", "Select Location"); try { AssetDatabase.CreateAsset(asset, path); } catch { Debug.LogWarning("Asset Not Saved"); return; } } if (NodeManager.Instance.nodes != null && NodeManager.Instance.nodes.Count > 0) { Node[] nodeArray = NodeManager.Instance.nodes.ToArray(); Connection[] connectionArray; if (ConnectionManager.Instance.connections != null) { connectionArray = ConnectionManager.Instance.connections.ToArray(); } else { connectionArray = new Connection[0]; } asset.saveData = Data.DataProcessor.WriteToString(nodeArray, connectionArray); if (ConnectionManager.Instance.connections != null) { asset.connections = Data.DataProcessor.WriteConnections(ConnectionManager.Instance.connections.ToArray()); } } asset.useBezier = ConnectionManager.Instance.useBezierConnections; asset.globalHeightStrength = NodeManager.Instance.globalHeightStrength; EditorUtility.SetDirty(asset); AssetDatabase.SaveAssets(); EditorUtility.ClearDirty(asset); }
public void Load(NoiseAsset openedAsset) { //Allows loading while window already open if (NodeManager.Instance.nodes != null) { Save(); } NodeManager.Instance.Dispose(); ConnectionManager.Instance.Dispose(); //Load asset asset = openedAsset; CreateScene(); Data.DataProcessor.Read(asset.saveData); //Reads save data and loads data into proper manager lists ConnectionManager.Instance.useBezierConnections = asset.useBezier; NodeManager.Instance.globalHeightStrength = asset.globalHeightStrength; }