void SpawnEnemyBlock() { Vector3 randPos = new Vector3(Random.Range(leftBorder, rightBorder), Random.Range(downBorder, upBorder)); GameObject instance = Instantiate(enemyBlock, randPos, Quaternion.identity); EnemyBlockScript enemyScript = instance.GetComponent <EnemyBlockScript>(); enemyScript.block_hp = Random.Range(enemyBlock_MIN_HP, enemyBlock_MAX_HP); enemyScript.speed = Random.Range(enemyBlock_MIN_SPEED, enemyBlock_MAX_SPEED); enemies.Add(instance); }
void Shoot() { int playerLayer = 8; int playerMask = 1 << playerLayer; Vector3 shootPos; RaycastHit2D[] hits; if (!isPC) { shootPos = new Vector2(rightJoystick.Horizontal(), rightJoystick.Vertical()); hits = Physics2D.RaycastAll((Vector2)shootPos + (Vector2)transform.position, transform.position, GameControllerScript.upBorder * 20); Debug.DrawRay((Vector2)shootPos + (Vector2)transform.position, transform.position); line.SetPositions(new Vector3[] { (Vector2)shootPos + (Vector2)transform.position, (Vector2)shootPos }); } else { shootPos = Camera.main.ScreenToWorldPoint((Vector2)Input.mousePosition); hits = Physics2D.RaycastAll(transform.position, (Vector2)shootPos - (Vector2)transform.position, Vector2.Distance(shootPos, transform.position)); line.SetPositions(new Vector3[] { (Vector2)transform.position, (Vector2)shootPos }); } foreach (RaycastHit2D hit in hits) { if (hit.collider != null && hit.transform.gameObject.tag == "Enemy") { EnemyBlockScript enemy = hit.transform.GetComponent <EnemyBlockScript>(); if (enemy != null) { enemy.block_hp--; } else { hit.transform.GetComponent <BombScript>().block_hp--; } } } //HitObj = hit.transform.gameObject; // Again optional unless you want to access the hit with more detail //print(hit.transform.gameObject.tag); //Distance = Mathf.Abs(hit.point.y - transform.position.y); // grabbing the distance in a 2d plane AS A FLOAT }