diff --git a/Assets/Scripts/Detection.cs b/Assets/Scripts/Detection.cs index 8b55fd6..5c1339f 100644 --- a/Assets/Scripts/Detection.cs +++ b/Assets/Scripts/Detection.cs @@ -103,12 +103,19 @@ public class Detection : MonoBehaviour if(_projectileDamage == 0) { if ((other.gameObject.tag == "Opponent" && _entityLinked is Ally) || (other.gameObject.tag == "Ally" && _entityLinked is Opponent)) { _entityLinked.IsEnemyDetected = false; + StartCoroutine(ToggleCollider()); } } } } + IEnumerator ToggleCollider() + { + _collider.enabled = false; + yield return null; + _collider.enabled = true; + } //Getter and Setter public Entity EntityLinked diff --git a/Assets/Scripts/PlayerAction/ClickBehavior.cs b/Assets/Scripts/PlayerAction/ClickBehavior.cs index b890cb5..5927c39 100644 --- a/Assets/Scripts/PlayerAction/ClickBehavior.cs +++ b/Assets/Scripts/PlayerAction/ClickBehavior.cs @@ -8,9 +8,10 @@ public class ClickBehavior : MonoBehaviour { private void Update() { + Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); + if (Input.GetMouseButton(0)) { - Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); List listColliders = new(Physics2D.OverlapCircleAll(clickPoint, 0.05f)); List resourceColliders = listColliders.FindAll(obj => obj.CompareTag("Resource")); if (resourceColliders.Count > 0) @@ -22,6 +23,20 @@ public class ClickBehavior : MonoBehaviour } } +#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 } /// diff --git a/Assets/Scripts/Tiles/SpawnerTile.cs b/Assets/Scripts/Tiles/SpawnerTile.cs index fdeac6c..ac47b5a 100644 --- a/Assets/Scripts/Tiles/SpawnerTile.cs +++ b/Assets/Scripts/Tiles/SpawnerTile.cs @@ -143,4 +143,14 @@ public class SpawnerTile : LevelTile { enemy.Create(Position, parent: LevelManager.Instance.LevelTransform); } + +#if UNITY_EDITOR + [Header("DEBUG")] + [SerializeField] + private GameObject _debugPrefab; + public void TriggerSpawnDebug() + { + _debugPrefab.Create(Position, parent: LevelManager.Instance.LevelTransform); + } +#endif } \ No newline at end of file diff --git a/Assets/Tiles/EnemySpawner.asset b/Assets/Tiles/EnemySpawner.asset index d63a169..3364c50 100644 --- a/Assets/Tiles/EnemySpawner.asset +++ b/Assets/Tiles/EnemySpawner.asset @@ -18,3 +18,4 @@ MonoBehaviour: _spawnOnStart: 0 _spawnSpeed: 0.02 _spawnCounter: 0 + _debugPrefab: {fileID: 80204295746100150, guid: 2419a879bd4e47d4fa8b30de0fcdde42, type: 3} diff --git a/Assets/Tiles/EnemySpawnerStart.asset b/Assets/Tiles/EnemySpawnerStart.asset index 6564483..9d9c1c2 100644 --- a/Assets/Tiles/EnemySpawnerStart.asset +++ b/Assets/Tiles/EnemySpawnerStart.asset @@ -18,3 +18,4 @@ MonoBehaviour: _spawnOnStart: 1 _spawnSpeed: 0 _spawnCounter: 0 + _debugPrefab: {fileID: 80204295746100150, guid: 2419a879bd4e47d4fa8b30de0fcdde42, type: 3}