private void LateUpdate()
 {
     if (targeting)
     {
         float targetAngle = CalcAim();
         float clamp       = maxAimSpeed * Mathf.Deg2Rad * Time.deltaTime;
         float changeAngle = Mathf.Clamp(targetAngle - currentAim, -clamp, clamp);
         currentAim += changeAngle;
     }
     if (targeting || holding)
     {
         Vector3 p    = AimPoint.position;
         float   xPos = Mathf.Cos(currentAim) * aimDist;
         float   yPos = Mathf.Sin(currentAim) * aimDist;
         Vector3 test = new Vector3(p.x + xPos, p.y + yPos, 0);
         animationTargeter.position = test;
     }
     if (attatchedEffects.Count > 0)
     {
         for (int i = attatchedEffects.Count - 1; i >= 0; i--)
         {
             VisualEffects.IVisualEffect e = attatchedEffects[i];
             if (!e.Equals(null))
             {
                 e.EffectUpdate();
             }
         }
     }
 }
 public void SpawnAndAttatchEffect(GameObject prefab)
 {
     if (prefab.GetComponentInChildren <VisualEffects.IVisualEffect>() != null)
     {
         GameObject obj = Instantiate(prefab);
         VisualEffects.IVisualEffect attatch = (VisualEffects.IVisualEffect)obj.GetComponent <VisualEffects.IVisualEffect>();
         AttatchVisualEffect(attatch);
     }
 }
 public void SpawnAndAttatchEffectAE(AnimationEvent animationEvent)
 {
     if (animationEvent.objectReferenceParameter != null && animationEvent.objectReferenceParameter is GameObject &&
         ((GameObject)animationEvent.objectReferenceParameter).GetComponentInChildren <VisualEffects.IVisualEffect>() != null)
     {
         GameObject obj = Instantiate(((GameObject)animationEvent.objectReferenceParameter), aimingPoints[animationEvent.intParameter]);
         VisualEffects.IVisualEffect attatch = (VisualEffects.IVisualEffect)obj.GetComponent <VisualEffects.IVisualEffect>();
         AttatchVisualEffect(attatch);
     }
 }
 public void DetatchVisualEffect(VisualEffects.IVisualEffect visualEffect)
 {
     attatchedEffects.Remove(visualEffect);
 }
 public void AttatchVisualEffect(VisualEffects.IVisualEffect visualEffect)
 {
     VisualEffects.IVisualEffect ve = (VisualEffects.IVisualEffect)visualEffect;
     attatchedEffects.Add(ve);
 }