Beispiel #1
0
    public void applyDamageTo(float damage)
    {
        if (invunerable)
        {
            return;
        }

        GameObject hitParticle = Instantiate(this.hitParticle, transform.position, transform.rotation);
        var        main        = hitParticle.GetComponent <ParticleSystem>().main;

        main.startColor = new Color(1.0f, 0.0f, 0.0f, 1.0f);
        Destroy(hitParticle, hitParticle.GetComponent <ParticleSystem>().main.duration);

        Health -= damage;
        UnityUtils.RecursiveFind(transform, "HealthBar").GetComponent <ProgressBarBehaviour>().UpdateFill(Health / MaxHealth);
        if (Health <= 0)
        {
            KillSelf();
        }
        else
        {
            transform.Find("Sprite").GetComponent <SpriteRenderer>().color = Color.red;
            StartCoroutine(UnityUtils.ChangeToDefaultColorAfterTime(colorModifier, 0.5f));
        }
    }