public MenuItem AddMenuItem(string name, Action <BaseEventData> method) { GameObject menuItemGO = GameObject.Instantiate(Resources.Load <GameObject>("MenuItem")); MenuItem menuItem = menuItemGO.GetComponent <MenuItem>(); menuItem.Configure(this, name); menuItem.AddEvent(EventTriggerType.PointerClick, method); menuItems.Add(name, menuItem); menuItemGO.transform.SetParent(this.transform); RectTransform rect2D = this.GetComponent <RectTransform>(); int menuOffset = menuItem.menuItemWidth; if (parentMenuItem == null) { menuOffset = 0; } rect2D.SetInsetAndSizeFromParentEdge( RectTransform.Edge.Left, menuOffset, menuWidth); rect2D.SetInsetAndSizeFromParentEdge( RectTransform.Edge.Top, 0, rect2D.sizeDelta.y + menuItem.menuItemHeight + 1); return(menuItem); }