public void Update() { //Bullets.Add(FindGameObjectsWithTag("bullets")); if (isDead == true) { //On arrête le shake de caméra après une seconde playerExplosion.gameObject.SetActive(true); if (delayBeforeRespawn - countTimeBeforeRespawn > 1) { camShaker.SetShake(false); } if (countTimeBeforeRespawn > 0) { countTimeBeforeRespawn -= Time.deltaTime; } else { countTimeBeforeRespawn = delayBeforeRespawn; playerSprite.gameObject.SetActive(true); shooters.gameObject.SetActive(true); isDead = false; isInvicible = true; } for (int i = 0; i < Bullets.Length; i++) { Destroy(Bullets[i].gameObject); } } if (isDead == false) { playerExplosion.gameObject.SetActive(false); } if (isInvicible == true) { invicibilityAanimation.Play(); countTimeOfInvicibility -= Time.deltaTime; if (countTimeOfInvicibility < 0) { isInvicible = false; invicibilityAanimation.Stop(); countTimeOfInvicibility = invicibiltyDuration; } } }
protected override IEnumerator doFire(float fireOffsetAngle = 0) { // fire depending on current level if (!LaserInstance) { switch (level) { case 1: LaserInstance = (GameObject)Instantiate(bullet, transform.position, transform.rotation); LaserInstance.transform.SetParent(transform); break; case 2: LaserInstance = (GameObject)Instantiate(BulletLv2, transform.position, transform.rotation); LaserInstance.transform.SetParent(transform); break; case 3: LaserInstance = (GameObject)Instantiate(BulletLv3, transform.position, transform.rotation); LaserInstance.transform.SetParent(transform); break; case 4: LaserInstance = (GameObject)Instantiate(BulletLv4, transform.position, transform.rotation); LaserInstance.transform.SetParent(transform); break; case 5: LaserInstance = (GameObject)Instantiate(BulletLv5, transform.position, transform.rotation); LaserInstance.transform.SetParent(transform); break; default: Debug.LogWarning("Invalid weapon level: " + level.ToString()); break; } } // Shaking! Laser laser = LaserInstance.GetComponent <Laser>(); if (EnabledShaking) { CameraShaker camera = GameObject.FindWithTag("GameManager").GetComponent <GameManager>().Camera; yield return(new WaitForSeconds(laser.StartDelay)); camera.SetShake(0.1f, FireDuration - laser.StartDelay, 0.5f); } // End the laser if (FireDuration > 0) { if (EnabledShaking) { yield return(new WaitForSeconds(FireDuration - laser.StartDelay)); } else { yield return(new WaitForSeconds(FireDuration)); } endFire(); } }