private void Update() { if (isPause) { return; } if (Time.time - lastSpawn > deltaSpawn) { EnemyHistory e = GetEnemy(); float randomX = Random.Range(-1.65f, 1.65f); e.LaunchEnemy(Random.Range(1.85f, 2.75f), randomX, -randomX); lastSpawn = Time.time; } if (Time.time - lastSpawnB > deltaSpawnB) { BombHistory c = GetBomb(); float randomX = Random.Range(-1.65f, 1.65f); c.LaunchBomb(Random.Range(1.85f, 2.75f), randomX, -randomX); lastSpawnB = Time.time; } if (Input.GetMouseButton(0)) { Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); pos.z = -1; trail.position = pos; Collider2D[] thisFramesEnemy = Physics2D.OverlapPointAll(new Vector2(pos.x, pos.y), LayerMask.GetMask("EnemyHistory")); Collider2D[] thisFramesBomb = Physics2D.OverlapPointAll(new Vector2(pos.x, pos.y), LayerMask.GetMask("BombHistory")); if ((Input.mousePosition - lastMousePosition).sqrMagnitude > SLICEFORCE) { foreach (Collider2D c in thisFramesEnemy) { for (int i = 0; i < enemiesS.Length; i++) { if (c == enemiesS[i]) { c.GetComponent <EnemyHistory>().Slice(); } } } foreach (Collider2D c in thisFramesBomb) { for (int i = 0; i < bombsS.Length; i++) { if (c == bombsS[i]) { c.GetComponent <BombHistory>().Slice(); } } } } lastMousePosition = Input.mousePosition; enemiesS = thisFramesEnemy; bombsS = thisFramesBomb; } }
private BombHistory GetBomb() { BombHistory b = bombs.Find(x => !x.IsActive); if (b == null) { b = Instantiate(bombPrefab).GetComponent <BombHistory>(); bombs.Add(b); } return(b); }