public override void PushEditObjectToNGUIObject() { MouseSensitivityFPSMax = Globals.MouseSensitivityFPSMax; MouseSensitivityFPSMin = Globals.MouseSensitivityFPSMin; foreach (ActionSetting action in UserActionManager.Get.CurrentActionSettings) { if (action.AxisSetting) { GUIHud.HudPrompt p = new GUIHud.HudPrompt(action.Axis, ActionSetting.InputAxis.None, action.ActionDescription); p = GUIHud.GetBindings(p); UserPrompts.Add(p); } else { GUIHud.HudPrompt p = new GUIHud.HudPrompt((UserActionType)action.Action, action.ActionDescription); p = GUIHud.GetBindings(p); UserPrompts.Add(p); } GameObject miniActionGameObject = NGUITools.AddChild(MovementAndActionsGrid.gameObject, MiniActionPrefab); GUIHudMiniAction miniAction = miniActionGameObject.GetComponent <GUIHudMiniAction> (); //add a box collider so GUI will pick it up miniAction.gameObject.GetOrAdd <BoxCollider> (); UserMiniActions.Add(miniAction); } foreach (ActionSetting action in InterfaceActionManager.Get.CurrentActionSettings) { if (action.AxisSetting) { GUIHud.HudPrompt p = new GUIHud.HudPrompt(ActionSetting.InputAxis.None, action.Axis, action.ActionDescription); p = GUIHud.GetBindings(p); InterfacePrompts.Add(p); } else { GUIHud.HudPrompt p = new GUIHud.HudPrompt((InterfaceActionType)action.Action, action.ActionDescription); p = GUIHud.GetBindings(p); InterfacePrompts.Add(p); } GameObject miniActionGameObject = NGUITools.AddChild(InterfaceGrid.gameObject, MiniActionPrefab); GUIHudMiniAction miniAction = miniActionGameObject.GetComponent <GUIHudMiniAction> (); miniAction.gameObject.GetOrAdd <BoxCollider> (); InterfaceMiniActions.Add(miniAction); } mInitialized = true; Refresh(); ControlsRefresh(); }
public override void PushEditObjectToNGUIObject() { UserActions.Behavior = PassThroughBehavior.PassThrough; Behavior = PassThroughBehavior.PassThrough; //subscribe to the actions if (mEditObject.Prompt1.IsUserAction) { //UserActions.Behavior = PassThroughBehavior.InterceptByFilter; //UserActions.Filter |= mEditObject.Prompt1.UserAction; UserActions.Subscribe(mEditObject.Prompt1.UserAction, new ActionListener(Action1)); } else if (mEditObject.Prompt1.IsInterfaceAction) { //Behavior = PassThroughBehavior.InterceptByFilter; //Filter |= mEditObject.Prompt2.InterfaceAction; Subscribe(mEditObject.Prompt1.InterfaceAction, Action1); } if (mEditObject.Prompt2.IsUserAction) { //UserActions.Behavior = PassThroughBehavior.InterceptByFilter; //UserActions.Filter |= mEditObject.Prompt1.UserAction; UserActions.Subscribe(mEditObject.Prompt2.UserAction, new ActionListener(Action2)); } else if (mEditObject.Prompt2.IsInterfaceAction) { //Behavior = PassThroughBehavior.InterceptByFilter; //Filter |= mEditObject.Prompt2.InterfaceAction; Subscribe(mEditObject.Prompt2.InterfaceAction, Action2); } MessageLabel.text = EditObject.Message; GUIHud.GUIHudMode mode = GUIHud.GUIHudMode.MouseAndKeyboard; if (Profile.Get.CurrentPreferences.Controls.ShowControllerPrompts) { mode = GUIHud.GUIHudMode.Controller; } //get the bindings for the prompts if (EditObject.Prompt1.Visible) { EditObject.Prompt1 = GUIHud.GetBindings(EditObject.Prompt1); GameObject miniAction1GameObject = NGUITools.AddChild(MiniActionParent1, MiniActionPrefab); MiniAction1 = miniAction1GameObject.GetComponent <GUIHudMiniAction>(); EditObject.Prompt1 = GUIHud.RefreshHudAction(EditObject.Prompt1, MiniAction1, mode, false); } if (EditObject.Prompt2.Visible) { EditObject.Prompt2 = GUIHud.GetBindings(EditObject.Prompt2); GameObject miniAction2GameObject = NGUITools.AddChild(MiniActionParent2, MiniActionPrefab); MiniAction2 = miniAction2GameObject.GetComponent <GUIHudMiniAction>(); EditObject.Prompt2 = GUIHud.RefreshHudAction(EditObject.Prompt2, MiniAction2, mode, false); } if (!EditObject.Prompt2.Visible && EditObject.Prompt1.Visible) { //if it's only one && not the other //center the one action if (EditObject.Prompt1.Visible) { Vector3 miniActionPosition = MiniActionParent1.transform.localPosition; miniActionPosition.x = 0f; MiniActionParent1.transform.localPosition = miniActionPosition; } else { Vector3 miniActionPosition = MiniActionParent2.transform.localPosition; miniActionPosition.x = 0f; MiniActionParent2.transform.localPosition = miniActionPosition; } } }
public static HudPrompt RefreshHudAction(HudPrompt prompt, GUIHudMiniAction hudAction, GUIHudMode mode, bool clearPromptOnEmpty) { if (prompt.Visible) { if (mode == GUIHudMode.MouseAndKeyboard) { //key takes priority over mouse if (prompt.Key != KeyCode.None) { if (!hudAction.SetKey(prompt.Key, prompt.Description)) { if (clearPromptOnEmpty) { prompt.Clear(); } hudAction.Reset(); prompt.IsEmpty = true; } else { prompt.IsEmpty = false; } } else { //mouse if (!hudAction.SetMouse(prompt.Mouse, prompt.Description)) { if (clearPromptOnEmpty) { prompt.Clear(); } hudAction.Reset(); prompt.IsEmpty = true; } else { prompt.IsEmpty = false; } } } else { if (!hudAction.SetControl(prompt.Control, prompt.Description, InterfaceActionManager.ActionSpriteSuffix)) { if (clearPromptOnEmpty) { prompt.Clear(); } hudAction.Reset(); prompt.IsEmpty = true; } else { prompt.IsEmpty = false; } } } else { hudAction.Reset(); if (clearPromptOnEmpty) { prompt.Clear(); } prompt.IsEmpty = true; } return(prompt); }