void Start() { actions = new CursorActions(); actions.Activate.AddDefaultBinding(keyActivate); actions.Left.AddDefaultBinding(keyLeft); actions.Right.AddDefaultBinding(keyRight); actions.Up.AddDefaultBinding(keyUp); actions.Down.AddDefaultBinding(keyDown); actions.Slow.AddDefaultBinding(keySlow); if (InputManager.Devices.Count > state.PlayerNumber) { actions.Device = InputManager.Devices[state.PlayerNumber - 1]; actions.Activate.AddDefaultBinding(InputControlType.Action1); actions.Left.AddDefaultBinding(InputControlType.LeftStickLeft); actions.Left.AddDefaultBinding(InputControlType.DPadLeft); actions.Right.AddDefaultBinding(InputControlType.LeftStickRight); actions.Right.AddDefaultBinding(InputControlType.DPadRight); actions.Up.AddDefaultBinding(InputControlType.LeftStickUp); actions.Up.AddDefaultBinding(InputControlType.DPadUp); actions.Down.AddDefaultBinding(InputControlType.LeftStickDown); actions.Down.AddDefaultBinding(InputControlType.DPadDown); actions.Slow.AddDefaultBinding(InputControlType.Action2); } else { actions.Device = InputManager.ActiveDevice; } }
/// <summary> /// Main method 1; sets the cursor action /// </summary> /// <param name="action">Action.</param> public void PresentCursor(CursorActions action, GameObject target = null) { GridCursorControl.GridCursorIsActive = true; Vector3 clickPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); if (clickPosition.x > 0) { clickPosition.x += .5f; } if (clickPosition.y > 0) { clickPosition.y += .5f; } if (clickPosition.x < 0) { clickPosition.x -= .5f; } if (clickPosition.y < 0) { clickPosition.y -= .5f; } if (cursorActionSet == false | action != currentCursorAction | (int)(clickPosition.x) != currentCursorXPosition | (int)(clickPosition.y) != currentCursorYPosition) { currentCursorXPosition = (int)clickPosition.x; currentCursorYPosition = (int)clickPosition.y; if (Mathf.Abs(currentCursorXPosition) > 4 || Mathf.Abs(currentCursorYPosition) > 4) { return; // Beyond the grid boundaries } currentCursorTarget = target; S.ClickControlInst.lastCursorSetTime = Time.time; cursorActionSet = true; currentCursorAction = action; S.GridCursorControlGUIInst.PresentCursor(action, currentCursorXPosition, currentCursorYPosition); } }
/// <summary> /// Main method 1; sets the cursor action /// </summary> /// <param name="action">Action.</param> public void PresentCursor(CursorActions action, GameObject target = null) { GridCursorControl.GridCursorIsActive = true; Vector3 clickPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); if(clickPosition.x > 0) clickPosition.x += .5f; if(clickPosition.y > 0) clickPosition.y += .5f; if(clickPosition.x < 0) clickPosition.x -= .5f; if(clickPosition.y < 0) clickPosition.y -= .5f; if (cursorActionSet == false | action != currentCursorAction | (int)(clickPosition.x) != currentCursorXPosition | (int)(clickPosition.y) != currentCursorYPosition) { currentCursorXPosition = (int)clickPosition.x; currentCursorYPosition = (int)clickPosition.y; if (Mathf.Abs(currentCursorXPosition) > 4 || Mathf.Abs(currentCursorYPosition) > 4) { return; // Beyond the grid boundaries } currentCursorTarget = target; S.ClickControlInst.lastCursorSetTime = Time.time; cursorActionSet = true; currentCursorAction = action; S.GridCursorControlGUIInst.PresentCursor (action, currentCursorXPosition, currentCursorYPosition); } }