public virtual void freeze(float dur)
    {
        FreezeTime = Time.time + dur;
        if (Frozen)
        {
            return;
        }
        Frozen = true;
        foreach (Animator anim in this.GetComponentsInChildren <Animator>())
        {
            anim.enabled = false; //May not apply to all animators
        }
        Am.am.sound(Am.am.M.chooseSound(Am.am.M.FreezeSound1, Am.am.M.FreezeSound2, Am.am.M.FreezeSound3, Am.am.M.FreezeSound4));
        //FreezeSprite.enabled = true;
        rbodtype = MyRigidbody.bodyType;
        usedgrav = this.MyRigidbody.gravityScale;
        if (rbodtype == RigidbodyType2D.Dynamic)
        {
            MyRigidbody.bodyType = RigidbodyType2D.Dynamic;
        }


        this.MyRigidbody.velocity     = new Vector2(0f, 0f);
        this.MyRigidbody.gravityScale = 1f;
        MyFreezeFlare.Play(true);
        MyFreezeDust.Play(true);
        MyFreezeSparkles.Play(true);
    }
 public void unfreeze()
 {
     if (!Frozen)
     {
         return;
     }
     foreach (Animator anim in this.GetComponentsInChildren <Animator>())
     {
         anim.enabled = true; //May not apply to all animators
     }
     usedgrav = this.MyRigidbody.gravityScale = usedgrav;
     Frozen   = false;
     MyFreezeDust.Stop(true);
     if (FreezeSprite != null)
     {
         FreezeSprite.enabled = false;
     }
     MyRigidbody.bodyType = rbodtype;
 }