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);
    }
示例#2
0
    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
    }