public void LoadGraph(string path) { if (string.IsNullOrEmpty(path)) { return; } int assetIndex = path.IndexOf("/Assets/"); path = path.Substring(assetIndex + 1); var graph = AssetDatabase.LoadAssetAtPath <OSM_Graph>(path); _window.SetGraph(graph); }
private static bool OpenGraphAsset(int instanceID, int line) { Debug.Log(instanceID); var graphSelected = EditorUtility.InstanceIDToObject(instanceID) as OSM_Graph; if (graphSelected != null) { OSM_EditorWindow windowToUse = null; // Try to find an editor window without a graph... var windows = Resources.FindObjectsOfTypeAll <OSM_EditorWindow>(); foreach (var w in windows) { // The canvas is already opened if (w.Graph == graphSelected) { return(false); } // Found a window with no active canvas. if (w.Graph == null) { windowToUse = w; break; } } // No windows available...just make a new one. if (!windowToUse) { windowToUse = EditorWindow.CreateInstance <OSM_EditorWindow>(); windowToUse.titleContent = new GUIContent("Node Editor"); windowToUse.Show(); } windowToUse.SetGraph(graphSelected); // windowToUse._saveManager.InitState(); windowToUse.Repaint(); return(true); } return(false); }