Пример #1
0
        protected virtual void MoveProjectile()
        {
            Ray ray = new Ray(myRigidbody.position, myVelocity);

            //Try to damage something
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit, (myVelocity.magnitude * Time.fixedDeltaTime), hitMask))
            {
                iDamagable target = hit.collider.GetComponentInParent <iDamagable>();
                if (target != null)
                {
                    //Deal damage and spawn an effect if one is assigned
                    target.Damage(damage, hit);
                }

                if (hitEffect)
                {
                    Instantiate(hitEffect, hit.point, Quaternion.LookRotation(hit.normal));
                }

                Destroy(this.gameObject);
            }

            //Move if we don't collide with anything
            else
            {
                myRigidbody.MovePosition(myRigidbody.position + (myVelocity * Time.fixedDeltaTime));
            }
        }
Пример #2
0
    void OnHitObject(Collider c, Vector3 hitPoint)
    {
        iDamagable damagableObject = c.GetComponent <iDamagable> ();

        if (damagableObject != null)
        {
            damagableObject.TakeHit(damage, hitPoint, transform.forward);
            Debug.Log("dealt" + damage);
        }
        GameObject.Destroy(gameObject);
    }
Пример #3
0
 protected virtual void attack(iDamagable _target, int _dmg)
 {
     _target.TakeDamage(_dmg);
 }