using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// Handles what happens when the user clicks on a collider /// public class ClickBehavior : MonoBehaviour { private void Update() { Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); if (Input.GetMouseButton(0)) { List listColliders = new(Physics2D.OverlapCircleAll(clickPoint, 0.05f)); List resourceColliders = listColliders.FindAll(obj => obj.CompareTag("Resource")); List unitCollider = listColliders.FindAll(obj => obj.CompareTag("Ally")); if (resourceColliders.Count > 0) { foreach (Collider2D collider in resourceColliders) { collider.GetComponent().ClickOnResource(); } } if (unitCollider.Count > 0) { foreach (Collider2D collider in unitCollider) { Ally ally = collider.GetComponent(); GameObject[] groupedUI = GameObject.FindGameObjectsWithTag("Upgrade"); Debug.Log(ally.GetPosition() + "avec : " + ally.GetUpgrades().Count); foreach (GameObject go in groupedUI) { Debug.Log(go.transform.position); //go.SetActive(true); //go.transform.position = ally.GetPosition(); } } } } #if UNITY_EDITOR if (Input.GetMouseButtonUp(0)) { const float clickRangeForSpawn = 0.7f; var spawners = LevelManager.Instance.GetAll(); var closest = spawners.Minimum(spawn => Vector2.Distance(spawn.Position, transform.position)); var distance = Vector2.Distance(clickPoint, closest.Position); if (distance < clickRangeForSpawn) { closest.TriggerSpawnDebug(); } } #endif } /// /// Remet la vitesse de jeux a son etat normal lorsque le dernier ennemi est mort, si necessaire /// public static void ResetGameSpeed() { GameObject.Find("btn_speedup").GetComponent