1
0
mirror of https://github.com/Siccity/xNode.git synced 2026-03-26 22:49:02 +08:00

!B(Create Node) pos error

This commit is contained in:
Icarus 2019-12-09 15:51:47 +08:00
parent 7e4e4b6f8e
commit c0b80b59da
2 changed files with 12 additions and 3 deletions

View File

@ -227,7 +227,7 @@ namespace XNodeEditor {
// Open context menu for auto-connection
else if (NodeEditorPreferences.GetSettings().dragToCreate && autoConnectOutput != null) {
_menuPopupWindow.OnCloseA = _releaseDraggedConnection;
_menuPopupWindow.OpenBeforeMousePos = e.mousePosition;
PopupWindow.Show(new Rect(Event.current.mousePosition, Vector2.zero),_menuPopupWindow);
}
@ -286,6 +286,7 @@ namespace XNodeEditor {
e.Use(); // Fixes copy/paste context menu appearing in Unity 5.6.6f2 - doesn't occur in 2018.3.2f1 Probably needs to be used in other places.
} else if (!IsHoveringNode) {
autoConnectOutput = null;
_menuPopupWindow.OpenBeforeMousePos = e.mousePosition;
PopupWindow.Show(new Rect(Event.current.mousePosition, Vector2.zero),_menuPopupWindow);
}
}

View File

@ -8,6 +8,7 @@ using UnityEngine;
namespace XNodeEditor {
public class MenuPopupWindow : PopupWindowContent
{
public Vector2 OpenBeforeMousePos;
private SearchField _search;
private MenuTreeView _menuTree;
public Action OnCloseA;
@ -293,13 +294,18 @@ namespace XNodeEditor {
if (string.IsNullOrEmpty(path)) continue;
menu.AddItem(path, () => {
pos = NodeEditorWindow.current.WindowToGridPosition(menu.OpenBeforeMousePos);
XNode.Node node = CreateNode(type, pos);
NodeEditorWindow.current.AutoConnect(node);
});
}
// menu.AddSeparator("");
if (NodeEditorWindow.copyBuffer != null && NodeEditorWindow.copyBuffer.Length > 0)
menu.AddItem("Paste", () => NodeEditorWindow.current.PasteNodes(pos));
menu.AddItem("Paste", () =>
{
pos = NodeEditorWindow.current.WindowToGridPosition(menu.OpenBeforeMousePos);
NodeEditorWindow.current.PasteNodes(pos);
});
// else menu.AddDisabledItem(new GUIContent("Paste"));
menu.AddItem("Preferences", () => NodeEditorReflection.OpenPreferences());
menu.AddItem("创建所有的节点 ---> 测试用", () =>
@ -308,7 +314,9 @@ namespace XNodeEditor {
{
return;
}
pos = NodeEditorWindow.current.WindowToGridPosition(menu.OpenBeforeMousePos);
for (int i = 0; i < NodeEditorReflection.nodeTypes.Length; i++)
{
Type type = NodeEditorReflection.nodeTypes[i];