void Update() { if (GLOBAL.A() || selected == 'A') { A(); } if (GLOBAL.Q() || selected == 'Q') { Q(); } if (GLOBAL.W() || selected == 'W') { W(); } if (GLOBAL.E() || selected == 'E') { E(); } if (GLOBAL.R() || selected == 'R') { R(); } if (GLOBAL.RightClick()) { ClearRange(); } CheckChase(); }
void BasicAttack() { #region ignore //Ray ray = new Ray(transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition)); //if (Physics.Raycast(ray, out RaycastHit hit, range, 9)) //{ // Transform t = hit.collider.gameObject.transform; // Character c = hit.collider.GetComponent<Character>(); // if (c != null && c.range >= Vector3.Distance(transform.position, t.position)) // { // } //} #endregion if (GLOBAL.RightClick()) { if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit)) { Character c = hit.collider.GetComponent <Character>(); // If a character is hit and is not yourself. if (GLOBAL.CheckCharacter(this, c)) { // Set the target to the clicked character. target = c.transform; // In range. if (GLOBAL.HasReached(transform.position, target.position, AutoRange)) { AutoAttack(); } // Chase this character. chasing = true; } else { // Do nothing and move there. target = null; chasing = false; } } } // Chase target. if (chasing) { // In range. if (GLOBAL.HasReached(transform.position, target.position, AutoRange)) { AutoAttack(); } else { // Out of range. Invoke(nameof(MaintainDistance), .5f); } } }