public void Initialize(RangedAttackFeature user, float speed, float range, float damage, Vector3 direction = new Vector3()) { this.user = user; this.speed = speed; this.range = range; this.damage = damage; Vector3 originPosition = user.ShootOrigin.position; Quaternion originRotation; if (direction == new Vector3()) { originRotation = user.ShootOrigin.rotation; } else { originRotation = Quaternion.LookRotation(direction); } InitializeEffect(originPosition, originRotation); if (!user.IsPlayer) { GameObject player = GameObject.FindGameObjectWithTag("Player"); playerHealth = player.GetComponent <PlayerHealth>(); playerDashing = player.GetComponent <DashingFeature>(); playerBlocking = player.GetComponentInChildren <BlockingFeature>(); } else { outerBehaviour = GetComponentInChildren <OuterProjectileBehaviour>(); } }