Beispiel #1
0
    private void Fire()
    {
        aimPosition = target.transform.position;
        GameObject projectile = Instantiate(projectilePrefab);

        projectile.transform.position = projectileSpawnPoint.position;
        Vector3 velocity = (aimPosition - playerModel.position).normalized * bulletSpeed;

        projectile.transform.LookAt(aimPosition);

        BooletScript booletScript = projectile.GetComponent <BooletScript>();

        if (booletScript != null)
        {
            projectile.GetComponent <BooletScript>().destroyDelay = bulletLifetime;
            projectile.GetComponent <BooletScript>().shooter      = gameObject;
        }

        Rigidbody projRb = projectile.GetComponent <Rigidbody>();

        projRb.velocity = velocity;

        shotTimer = timeBetweenShots;

        Animator anim = GetComponentInChildren <Animator>();

        anim.Play("shoot");
    }
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Bullet")
        {
            BooletScript hitBooletScript = collision.collider.GetComponent <BooletScript>();

            if (!hitBooletScript.hasCollided && hitBooletScript.shooter != gameObject)
            {
                hitBooletScript.hasCollided = true;
                if (currentHealth > 0)
                {
                    TakeDamage(incomingBulletDamage);
                }
            }
        }
    }
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "Bullet")
     {
         BooletScript hitBooletScript = collision.collider.GetComponent <BooletScript>();
         BulletScript bulletScript    = collision.collider.GetComponent <BulletScript>();
         if (hitBooletScript != null)
         {
             if (!hitBooletScript.hasCollided && hitBooletScript.shooter != gameObject.transform.parent.gameObject)
             {
                 hitBooletScript.hasCollided = true;
                 if (currentHealth > 0)
                 {
                     healthComponent.TakeDamage(incomingBulletDamage);
                 }
             }
         }
         else if (bulletScript != null)
         {
             healthComponent.TakeDamage(bulletScript.damage);
         }
     }
 }