public void Initialize(LogicGraphEditorWindow editorWindow, LogicGraphEditorView logicGraphEditorView, LogicGraphView graphView) { _editorWindow = editorWindow; _logicGraphEditorView = logicGraphEditorView; _graphView = graphView; // Transparent icon to trick search window into indenting items m_Icon = new Texture2D(1, 1); m_Icon.SetPixel(0, 0, new Color(0, 0, 0, 0)); m_Icon.Apply(); }
public LogicGraphEditorView(LogicGraphEditorWindow editorWindow, LogicGraphEditorObject logicGraphEditorObject) { Debug.Log(logicGraphEditorObject.GetInstanceID()); _editorWindow = editorWindow; _logicGraphEditorObject = logicGraphEditorObject; _logicGraphEditorObject.Deserialized += LogicGraphEditorDataOnDeserialized; this.LoadAndAddStyleSheet("Styles/LogicGraphEditorView"); var toolbar = new IMGUIContainer(() => { GUILayout.BeginHorizontal(EditorStyles.toolbar); if (GUILayout.Button("Save Asset", EditorStyles.toolbarButton)) { saveRequested?.Invoke(); } GUILayout.Space(6); if (GUILayout.Button("Show In Project", EditorStyles.toolbarButton)) { showInProjectRequested?.Invoke(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); }); Add(toolbar); var content = new VisualElement { name = "content" }; { _graphView = new LogicGraphView(_logicGraphEditorObject) { name = "GraphView", // persistenceKey = "LogicGraphView", }; _graphView.SetupZoom(0.05f, ContentZoomer.DefaultMaxScale); _graphView.AddManipulator(new ContentDragger()); _graphView.AddManipulator(new SelectionDragger()); _graphView.AddManipulator(new RectangleSelector()); _graphView.AddManipulator(new ClickSelector()); _graphView.RegisterCallback <KeyDownEvent>(KeyDown); content.Add(_graphView); _graphView.graphViewChanged = GraphViewChanged; } _searchWindowProvider = ScriptableObject.CreateInstance <SearchWindowProvider>(); _searchWindowProvider.Initialize(editorWindow, this, _graphView); _edgeConnectorListener = new EdgeConnectorListener(this, _searchWindowProvider); _graphView.nodeCreationRequest = (c) => { _searchWindowProvider.ConnectedLogicPort = null; SearchWindow.Open(new SearchWindowContext(c.screenMousePosition), _searchWindowProvider); }; LoadElements(); Add(content); }