コード例 #1
0
    void Shoot()
    {
        timer = 0f;

        gunAudio.Play();

        gunLight.enabled = true;

        gunParticles.Stop();
        gunParticles.Play();

        gunLine.enabled = true;
        gunLine.SetPosition(0, transform.position);

        shootRay.origin    = transform.position;
        shootRay.direction = transform.forward;

        if (Physics.Raycast(shootRay, out shootHit, range, shootableMask))
        {
            SlimeHealth enemyHealth = shootHit.collider.GetComponent <SlimeHealth> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damagePerShot, shootHit.point);
            }
            gunLine.SetPosition(1, shootHit.point);
        }
        else
        {
            gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range);
        }
    }
コード例 #2
0
    private void HitTarget()
    {
        GameObject effectIns = (GameObject)Instantiate(impactEffect, _transform.position, _transform.rotation);

        Destroy(effectIns, 0.5f);

        objectPooler.BackToPool(btag, this.gameObject);

        if (PhotonNetwork.isMasterClient)
        {
            /* Slow Effect */
            if (slowEffect)
            {
                SlowDownEffect();
            }
            else
            {
                tarHealth.TakeDamage(attackDamage);
            }
        }
    }
コード例 #3
0
 private void MeleeAttack(float attackDamage)
 {
     tarHealth.TakeDamage(attackDamage);
 }