コード例 #1
0
        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();
        }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
 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);
 }