void OnTriggerEnter2D(Collider2D collider) { BeamBehaviour beam = collider.gameObject.GetComponent <BeamBehaviour>(); if (beam) { EnemyHealth -= beam.GetDamage(); if (EnemyHealth <= 0f) { Debug.Log("Enemy destroyed"); GameObject boom = Instantiate(Explosion, transform.position, Quaternion.identity) as GameObject; Destroy(gameObject); beam.Hit(); Game.OnEnemyDestroyed(); } } }
void OnTriggerEnter2D(Collider2D collider) { BeamBehaviour beam = collider.gameObject.GetComponent <BeamBehaviour>(); if (beam) { PlayerHealth.CurrentVal -= beam.GetDamage(); if (PlayerHealth.CurrentVal <= 0) { GameObject boom = Instantiate(Explosion, transform.position, Quaternion.identity) as GameObject; var allRenderers = gameObject.GetComponentsInChildren <Renderer>(); foreach (var renderer in allRenderers) { renderer.enabled = false; } AudioSource.PlayClipAtPoint(PlayerDestroyed, transform.position); var coroutine = FadeToEnd(); StartCoroutine(coroutine); } } }
private void CreateNextBounceBeam() { if (Mathf.Abs(endPoint.position.y) > RAYCAST_BOUNCE_LIMIT_VERTICAL_ABS) { return; } if (bounces <= 0) { return; } switch (lastCollisionTag) { case "Border": { BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool(); bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, 180 - aimDegree, lastHitCollider); break; } case "Entity": { BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool(); bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, Random.Range(0, 361), lastHitCollider); break; } default: { //BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool(); //bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, 180 - aimDegree); //Nada demomento. break; } } }