public string Draw(GUIContent labelContent, string curName, InputRig rig) { EditorGUILayout.BeginHorizontal(); if (labelContent.text.Length > 0) { EditorGUILayout.LabelField(labelContent); //, GUILayout.Width(40)); } string s = EditorGUILayout.TextField(curName, GUILayout.MinWidth(20), GUILayout.ExpandWidth(true)); bool buttonPressed = false; InputRig.AxisConfig axisConfig = (rig == null) ? null : rig.GetAxisConfig(s, ref this.cachedAxisId); float buttonWidth = 16; //float buttonHeight = 16; GUIContent buttonContent; if (rig == null) { buttonContent = new GUIContent(string.Empty, CFEditorStyles.Inst.texError, "No rig attached!"); } else if (axisConfig == null) { buttonContent = new GUIContent(string.Empty, CFEditorStyles.Inst.texError, "Axis not found!"); //, CFEditorStyles.Inst.iconError); } else if (!axisConfig.DoesSupportInputSource(this.inputSource)) { buttonContent = new GUIContent(string.Empty, CFEditorStyles.Inst.texWarning, "Target axis is incompatible!"); //, CFEditorStyles.Inst.iconOkWarning); } else { buttonContent = new GUIContent(string.Empty, CFEditorStyles.Inst.texOk, "Axis name is ok!"); //, CFEditorStyles.Inst.iconOk); } buttonPressed = GUILayout.Button(buttonContent, CFEditorStyles.Inst.iconButtonStyle, GUILayout.Width(buttonWidth)); //, GUILayout.Height(buttonHeight)); EditorGUILayout.EndHorizontal(); // Show context menu... if (buttonPressed) { this.ShowContextMenu(s, rig); } // Apply the name selected via context menu.. if (this.menuSelectedName != null) { s = this.menuSelectedName; this.menuSelectedName = null; EditorGUI.FocusTextInControl(""); } return(s); }
// ----------------- public void ApplyToRig(InputRig rig, bool skipIfTargetIsMuted) { InputRig.AxisConfig a = rig.GetAxisConfig(this.axisName, ref this.cachedAxisId); if (a == null) { return; } if (!skipIfTargetIsMuted || !a.IsMuted()) { a.SetSignedDigital(this.axisPositiveSide); } //rig.SetAxisDigital(this.axisName, ref this.cachedAxisId, !this.axisPositiveSide); }
void XXX() { InputRig rig = CF2Input.activeRig; if (rig != null) { InputRig.AxisConfig config = rig.GetAxisConfig("YourAxisName"); if (config != null) { config.keyboardPositive = KeyCode.A; config.keyboardPositiveAlt0 = KeyCode.B; config.keyboardPositiveAlt1 = KeyCode.C; config.keyboardPositiveAlt2 = KeyCode.D; config.keyboardPositive = KeyCode.E; config.keyboardPositiveAlt0 = KeyCode.F; config.keyboardPositiveAlt1 = KeyCode.G; config.keyboardPositiveAlt2 = KeyCode.H; } } }
// ------------------ private void ShowContextMenu(string curName, InputRig rig) { if (rig == null) { return; } GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Select rig"), false, this.OnMenuSelectRig, rig); //menu.AddDisabledItem(new GUIContent("Available axes:")); InputRig.AxisConfig axisConfig = rig.GetAxisConfig(curName, ref this.cachedAxisId); if ((curName.Length > 0) && (axisConfig == null)) { menu.AddSeparator(""); menu.AddItem(new GUIContent("Create \"" + curName + "\" Digital Axis"), false, this.OnMenuCreateAxis, new AxisCreationParams(rig, curName, InputRig.AxisType.Digital)); menu.AddItem(new GUIContent("Create \"" + curName + "\" Unsigned Analog Axis"), false, this.OnMenuCreateAxis, new AxisCreationParams(rig, curName, InputRig.AxisType.UnsignedAnalog)); menu.AddItem(new GUIContent("Create \"" + curName + "\" Signed Analog Axis"), false, this.OnMenuCreateAxis, new AxisCreationParams(rig, curName, InputRig.AxisType.SignedAnalog)); menu.AddItem(new GUIContent("Create \"" + curName + "\" Delta"), false, this.OnMenuCreateAxis, new AxisCreationParams(rig, curName, InputRig.AxisType.Delta)); menu.AddItem(new GUIContent("Create \"" + curName + "\" Scroll"), false, this.OnMenuCreateAxis, new AxisCreationParams(rig, curName, InputRig.AxisType.ScrollWheel)); } menu.AddSeparator(""); for (int i = 0; i < rig.axes.list.Count; ++i) { InputRig.AxisConfig axis = rig.axes.list[i]; if (axis.DoesSupportInputSource(this.inputSource)) { menu.AddItem(new GUIContent("Use \"" + axis.name + "\""), (axis.name == curName), this.OnMenuNameSelected, axis.name); } } menu.ShowAsContext(); }
// ------------------------ 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(); }