private IEnumerator ProjectileUpdate() { yield return(new WaitForSeconds(delay)); Collider2D[] colliders = Physics2D.OverlapPointAll(transform.position); foreach (Collider2D collider in colliders) { if (collider.gameObject.layer == LayerMask.NameToLayer("Characters")) { if (collider.gameObject == this.gameObject) { continue; } NetworkCharacter nc = collider.gameObject.GetComponent <NetworkCharacter>(); if (nc.TakeDamage(owner, damage) <= 0) { if (owner != null && nc != null) { owner.OnKill(nc); } } } } // Destroy. NetworkManager.Destroy(this.gameObject); yield break; }
void OnCollisionEnter2D(Collision2D col) { if (isServer) { if (col.collider.gameObject.layer == LayerMask.NameToLayer("Characters")) { NetworkCharacter nc = col.collider.gameObject.GetComponent <NetworkCharacter>(); if (nc.TakeDamage(owner, damage) <= 0) { if (owner != null && nc != null) { owner.OnKill(nc); } } } NetworkServer.Destroy(this.gameObject); } }