コード例 #1
0
 // Metodo de atirar do player
 private void HandleFire()
 {
     // Pega a referencia da arma selecionada
     if (selectedWeapon != weaponChange.selectedWeapon)
     {
         activeWeapon.cancelReload();                           // cancela um reload se estiver acontecendo
         cancelMeleeAttack();                                   // cancela um ataque melee
         selectedWeapon = weaponChange.selectedWeapon;          // pega o numero referencia da arma selecionada
         activeWeapon   = weaponChange.selectedWeaponReference; // pega a referencia da arma selecionada
         UpdateAmmoUI();
     }
     // Se pode atirar
     if (Input.GetMouseButtonDown(0) && activeWeapon.canShoot && !activeWeapon.isAutomatic) //left button
     {
         if (Time.time > lastShootTime + activeWeapon.fireRate)
         {
             FindObjectOfType <AudioManager>().Play("PistolFire");
             lastShootTime = Time.time;
             activeWeapon.cancelReload();                                       // cancela um reload se estiver acontecendo
             cancelMeleeAttack();                                               // cancela um ataque melee
             activeWeapon.SpendAmmo();                                          // gasta municao
             Instantiate(Bullet, firePosition.position, firePosition.rotation); // instancia um objeto bullet
             playerAnimation.Play("Base Layer.Fire");                           // executa animacao de tiro do player
         }
     }
     if (Input.GetMouseButton(0) && activeWeapon.canShoot && activeWeapon.isAutomatic) //left button
     {
         if (Time.time > lastShootTime + activeWeapon.fireRate)
         {
             FindObjectOfType <AudioManager>().Play("RifleFire");
             lastShootTime = Time.time;
             activeWeapon.cancelReload();                                       // cancela um reload se estiver acontecendo
             cancelMeleeAttack();                                               // cancela um ataque melee
             activeWeapon.SpendAmmo();                                          // gasta municao
             Instantiate(Bullet, firePosition.position, firePosition.rotation); // instancia um objeto bullet
             playerAnimation.Play("Base Layer.Fire");                           // executa animacao de tiro do player
         }
     }
     else if (Input.GetMouseButtonDown(0) && activeWeapon.canReload && !activeWeapon.IsLoaded())
     { // Sem municao. Da o reload ao tentar atirar
         activeWeapon.Reload();
     }
 }