private void Initialize()
 {
     animationMap = new Dictionary <string, AnimationScales>();
     AnimationScales[] array = scales;
     for (int i = 0; i < array.Length; i++)
     {
         AnimationScales value = array[i];
         animationMap.Add(value.name, value);
     }
 }
 public void PlayAnimation(string animationName, float delay = 0f)
 {
     if (animationMap == null || animationMap.Count == 0)
     {
         Initialize();
     }
     if (animationMap.ContainsKey(animationName))
     {
         if (animationCoroutine != null)
         {
             StopCoroutine(animationCoroutine);
         }
         currentAnimation = animationMap[animationName];
         currentAnimation.currentScale = currentAnimation.startScale;
         base.transform.localScale     = Vector3.one * currentAnimation.currentScale;
         animationCoroutine            = StartCoroutine(ExecuteAnimation(delay));
     }
 }