Beispiel #1
0
    void Shoot()
    {
        Vector3 o = new Vector3(transform.position.x, transform.position.y + 4.0f, transform.position.z);

        gunLight.enabled = true;
        gunLine.enabled  = true;

        shootRay.origin    = o;
        shootRay.direction = -transform.forward;


        gunLine.SetPosition(0, o);
        gunLine.SetPosition(1, o + shootRay.direction * 50);

        //Si rayon touche objet

        if (Physics.Raycast(shootRay, out shootHit))
        {
            PlayerRobot playerHit = shootHit.collider.GetComponent <PlayerRobot> ();

            if (playerHit != null)
            {
                playerHit.ReceiveDamages(damage);
            }

            gunLine.SetPosition(1, shootHit.point);
        }
    }
Beispiel #2
0
    void Shoot()
    {
        if (robot.isAlive == false)
        {
            return;
        }

        weapon  = robot.weapon;
        cadence = weapon.rate;
        damage  = weapon.damage;

        weapon.PlaySound();

        timer = 0;

        gunLight.enabled = true;

        gunParticle.Stop();
        gunParticle.Play();

        gunLine.enabled = true;

        shootRay.origin    = transform.position;
        shootRay.direction = transform.forward;


        gunLine.SetPosition(0, transform.position + shootRay.direction * 100);
        gunLine.SetPosition(1, transform.position);

        if (weapon.isRoulette)
        {
            int r = Random.Range(1, 3);
            if (r != 2)
            {
                // Shoot on player
                robot.ReceiveDamages((damage / 4.0f));
                return;
            }
        }

        //Si rayon touche objet

        if (Physics.Raycast(shootRay, out shootHit))
        {
            PlayerRobot playerHit = shootHit.collider.GetComponent <PlayerRobot> ();

            if (playerHit != null)
            {
                playerHit.ReceiveDamages((damage / 4.0f));
            }

            gunLine.SetPosition(0, shootHit.point);
        }
    }