コード例 #1
0
 public virtual void ApplyDamage(int damage)
 {
     if (MasterDamageReciever)
     {
         MasterDamageReciever.ApplyDamage(damage);
     }
     else
     {
         Health -= damage;
         if (Health <= 0)
         {
             Die();
         }
     }
 }
コード例 #2
0
ファイル: Projectile.cs プロジェクト: Fornan-II/AG231_Final
    protected virtual void FixedUpdate()
    {
        if (_initialized)
        {
            float distanceTravelledThisUpdate = Speed * Time.fixedDeltaTime;

            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, distanceTravelledThisUpdate, hittableLayers, QueryTriggerInteraction.Ignore))
            {
                DamageReciever dr = hit.transform.GetComponent <DamageReciever>();
                if (dr)
                {
                    dr.ApplyDamage(Damage);
                }
                transform.position = hit.point;
                Destroy(gameObject);
            }
            else
            {
                transform.position += transform.forward * distanceTravelledThisUpdate;
            }
        }
    }