/// <summary> /// Creates and displays popup menu for specified menu item. /// </summary> /// <param name="node"><see cref="Common.TreeNode`1"/> instance.</param> public void OnShowMenuSubItems(TreeNode <CustomMenuItem> node) { DebugEx.VerboseFormat("MainMenuScript.OnShowMenuSubItems(node = {0})", node); if (node.data is MenuItem) { MenuItem item = node.data as MenuItem; DebugEx.UserInteractionFormat("MainMenuScript.OnShowMenuSubItems({0})", item.name); if (mPopupMenu != null) { mPopupMenu.Destroy(); } mPopupMenu = new PopupMenu(node); mPopupMenu.onDestroy.AddListener(OnPopupMenuDestroyed); int index = node.parent.children.IndexOf(node); RectTransform menuItemTransform = transform.GetChild(0).GetChild(0).GetChild(index).transform as RectTransform; // ScrollArea/Content/NODE Vector3[] menuItemCorners = Utils.GetWindowCorners(menuItemTransform); mPopupMenu.Show(menuItemCorners[2].x, menuItemCorners[2].y); } else { DebugEx.Error("Unknown menu item type"); } }