/// <summary> /// attend avant de tirer pour soit atteindre la cible (best) ou attendre x seconde pour rajouter du random /// </summary> /// <param name="isBest">Si le tir sera réussis</param> /// <returns></returns> private IEnumerator WaitShot(bool isBest) { bool shoot = false; float offset = 0.0f; powerBar = GameObject.Find("powerBar").GetComponent <powerBarScript>(); if (isBest) { // attend pour que le tir soit parfait en fonction de la power bar while (!shoot) { offset = powerBar.GetAmount(); //valeur de la powerbar if (offset > 0.4 && offset < 0.6) { shoot = true; } else { yield return(null); } } } else { // attend un nombre de seconde avant de tirer pour randomizer plus float rdm = Random.Range(1, 3); yield return(new WaitForSeconds(rdm)); } this.GetComponents <AudioSource>()[0].Play(); GetComponent <Launcher>().isShooting = true; }
//lancer le projectile void Launch() { //checkAABB = true; // on enclanche la détection pour regarder si la balle dépasse la boite AABB projectile.useGravity = true; float offset = powerBar.GetAmount(); //valeur de la powerbar physicScript.BallisticLaunch(projectile, target, offset); //lancer le projectile avec la physique Invoke("DestroyProjectile", 5.0f); }