// ---------------------- static public void AddMenuItem(GenericMenu menu, string axisName, string menuPath, InputRig.AxisType axisType, InputRig rig, System.Action callback) { AxisCreationMenuItem o = new AxisCreationMenuItem(); string itemName = ""; o.axisName = axisName; o.axisType = axisType; o.callback = callback; o.rig = rig; itemName = "Create \"" + axisName + "\" " + axisType.ToString() + " axis!"; menu.AddItem(new GUIContent(menuPath + itemName), false, o.Execute); }
// ------------------------ static public void CreateContextMenuForAxisBinding(Object panelOrRig, string axisName, /*InputRig.InputSource sourceType, */ System.Action onRefreshCallback = null) { InputRig rig = (panelOrRig as InputRig); TouchControlPanel panel = (panelOrRig as TouchControlPanel); //bool displayPanelName = false; if (panel != null) { rig = panel.rig; } else if (rig != null) { // Auto Select panel... panel = TouchControlWizardUtils.GetRigPanel(rig); //displayPanelName = true; } else { return; } List <TouchControl> controlList = rig.GetTouchControls(); GenericMenu menu = new GenericMenu(); string commandName = ("\"" + axisName + "\" axis "); menu.AddDisabledItem(new GUIContent("Actions for : " + commandName)); menu.AddSeparator(""); InputRig.AxisConfig axisConfig = rig.GetAxisConfig(axisName); if (axisConfig == null) { AxisCreationMenuItem.AddAllMenuItems(menu, axisName, "", rig, onRefreshCallback); } else { int axisSourceTypeMask = axisConfig.GetSupportedInputSourceMask(); BindingDescription.BindingType bindingTypeMask = BindingDescription.BindingType.Axis | BindingDescription.BindingType.Digital; UniversalBindingAssignment.AddBindingContainerToMenu(menu, rig, onRefreshCallback, bindingTypeMask, commandName, "Bind to Input Rig/", rig, KeyCode.None, axisName, axisSourceTypeMask); //, true); //, null); menu.AddSeparator(""); if (panel == null) { menu.AddDisabledItem(new GUIContent("Add a Touch Control Panel to this rig to create and bind commands to Touch Controls!")); } else { UniversalBindingAssignment.AddControlListBindingsToMenu(menu, controlList, onRefreshCallback, bindingTypeMask, commandName, "Bind to Touch Controls/", KeyCode.None, axisName); //, true); //, null); menu.AddSeparator(""); AddTouchControlCreationItemsToMenuForAxisOrKey(menu, panel, axisName, KeyCode.None, onRefreshCallback); } } menu.ShowAsContext(); }