public async Task SendMouseClick(string button, ClickDirection direction = ClickDirection.PressAndRelease, Duration duration = null) { if (string.IsNullOrEmpty(button)) { return; } if (duration == null) { duration = AverageClickDuration; } button = button.ToLowerInvariant(); if (!Buttons.ContainsKey(button)) { return; } var buttonValue = Buttons[button]; switch (direction) { case ClickDirection.Press: SendButtonPress(buttonValue); break; case ClickDirection.Release: SendButtonRelease(buttonValue); break; case ClickDirection.PressAndRelease: default: SendButtonPress(buttonValue); await Util.Hesitate(duration); SendButtonRelease(buttonValue); break; } }
// Update is called once per frame void Update() { ClickDirection dir = ClickDirection.Down; float horiz = Input.GetAxisRaw("Horizontal"); float vert = Input.GetAxisRaw("Vertical"); bool left, right, up, down; bool walking; left = horiz < 0 ? true : false; right = horiz > 0 ? true : false; up = vert > 0 ? true : false; down = vert < 0 ? true : false; walking = left || right || up || down; transform.parent.position += ((new Vector3(horiz, vert))) * Time.deltaTime * speed; //Clamping player position Vector3 pos = Camera.main.WorldToViewportPoint(transform.position); pos.x = Mathf.Clamp01(pos.x); pos.y = Mathf.Clamp01(pos.y); transform.position = Camera.main.ViewportToWorldPoint(pos); Vector3 mousepos = Input.mousePosition; Vector3 objpos = Camera.main.WorldToScreenPoint(transform.position); mousepos.x -= objpos.x; mousepos.y -= objpos.y; rotationlock = swordAnimator.GetCurrentAnimatorStateInfo(0).IsName("StaffSwing") ? true : false; if (rotationlock) { myCanvas.transform.GetChild(1).GetComponent <Text>().text = "Fireball!"; myCanvas.SetActive(true); mySword.SetActive(true); } else { mySword.SetActive(false); myCanvas.SetActive(false); } float angle = Mathf.Atan2(mousepos.y, mousepos.x) * Mathf.Rad2Deg; //Debug.Log(angle); if (angle < 45 && angle > -45) { dir = ClickDirection.Right; } else if (angle > 45 && angle < 135) { dir = ClickDirection.Up; } else if (angle > 135 || angle < -135) { dir = ClickDirection.Left; } else if (angle > -135 && angle < -45) { dir = ClickDirection.Down; } //transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle - 90)); if (!rotationlock) { gameObject.transform.GetChild(0).transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle)); } myAnimator.SetBool("FacingLeft", false); myAnimator.SetBool("FacingRight", false); myAnimator.SetBool("FacingUp", false); myAnimator.SetBool("FacingDown", false); myAnimator.SetBool("Right", right); myAnimator.SetBool("Left", left); myAnimator.SetBool("Up", up); myAnimator.SetBool("Down", down); myAnimator.SetBool("Walking", walking); switch (dir) { case ClickDirection.Right: myAnimator.SetBool("FacingRight", true); break; case ClickDirection.Left: myAnimator.SetBool("FacingLeft", true); break; case ClickDirection.Up: myAnimator.SetBool("FacingUp", true); break; case ClickDirection.Down: myAnimator.SetBool("FacingDown", true); break; default: break; } if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Mouse0)) { Shoot(); } if (Input.GetKeyDown(KeyCode.Alpha1)) { Teleport(); } }
private void SetAnimator(bool left, bool right, bool up, bool down, bool walking, ClickDirection dir) { myAnimator.SetBool("FacingLeft", false); myAnimator.SetBool("FacingRight", false); myAnimator.SetBool("FacingUp", false); myAnimator.SetBool("FacingDown", false); myAnimator.SetBool("Right", right); myAnimator.SetBool("Left", left); myAnimator.SetBool("Up", up); myAnimator.SetBool("Down", down); myAnimator.SetBool("Walking", walking); switch (dir) { case ClickDirection.Right: myAnimator.SetBool("FacingRight", true); break; case ClickDirection.Left: myAnimator.SetBool("FacingLeft", true); break; case ClickDirection.Up: myAnimator.SetBool("FacingUp", true); break; case ClickDirection.Down: myAnimator.SetBool("FacingDown", true); break; default: break; } }
// Update is called once per frame void Update() { ClickDirection dir = ClickDirection.Down; if (Input.GetKeyDown(KeyCode.X)) { SceneManager.LoadScene(SceneManager.GetActiveScene().name); } float horiz = Input.GetAxisRaw("Horizontal"); float vert = Input.GetAxisRaw("Vertical"); bool left, right, up, down; bool walking; left = horiz < 0; right = horiz > 0; up = vert > 0; down = vert < 0; walking = left || right || up || down; transform.position += ((new Vector3(horiz, vert))) * Time.deltaTime * speed; //Clamping player position Vector3 pos = Camera.main.WorldToViewportPoint(transform.position); //pos.x = Mathf.Clamp01(pos.x); //pos.y = Mathf.Clamp01(pos.y); transform.position = Camera.main.ViewportToWorldPoint(pos); Vector3 mousepos = Input.mousePosition; Vector3 objpos = Camera.main.WorldToScreenPoint(transform.position); mousepos.x -= objpos.x; mousepos.y -= objpos.y; rotationlock = swordAnimator.GetCurrentAnimatorStateInfo(0).IsName("StaffSwing") ? true : false; if (rotationlock) { myCanvas.SetActive(true); mySword.SetActive(true); } else { mySword.SetActive(false); myCanvas.SetActive(false); } float angle = Mathf.Atan2(mousepos.y, mousepos.x) * Mathf.Rad2Deg; if (angle < 45 && angle > -45) { dir = ClickDirection.Right; } else if (angle > 45 && angle < 135) { dir = ClickDirection.Up; } else if (angle > 135 || angle < -135) { dir = ClickDirection.Left; } else if (angle > -135 && angle < -45) { dir = ClickDirection.Down; } //transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle - 90)); if (!rotationlock) { gameObject.transform.GetChild(0).transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle + 10)); } SetAnimator(left, right, up, down, walking, dir); if (Input.GetKeyDown(KeyCode.Mouse0) && !rotationlock) { Shoot(); } if (Input.GetKeyDown(KeyCode.Space) && dash_charge > 0) { Dash(left, right, up, down, mousepos.x, mousepos.y); } if (Input.GetKeyDown(KeyCode.Alpha1)) { Teleport(); } }
/*! \brief Create the arguments for a Click event from the raw event data. */ public ClickEventArgs(IntPtr unmanagedEventBlock) : base(unmanagedEventBlock) { Direction = (ClickDirection)Marshal.ReadInt32(RawEventData, EventOffset.Direction); }