public void PlayCutterAnimation(List <GameObject> keys, GameObject cutter, int direction, float speed, float height = 0, System.Action action = null, System.Action <int> indexchange = null)
    {
        animation = new AnimationMotor();
        animation.keyFrameGameobjects = keys;
        animation.playMode            = AnimationMotor.PlayMode.SingleOnce;
        if (templetGameobject == null)
        {
            templetGameobject = new GameObject("CutterAnimationTEMPLET");
        }
        Transform cchild = templetGameobject.transform.Find(cutterName);

        if (cchild != null)
        {
            cutter.transform.parent = templetGameobject.transform.parent;
        }
        templetGameobject.transform.parent = cutter.transform.parent;
        animation.templetGameobject        = templetGameobject;
        animation.InitializeTemplet();
        animation.speed                   = speed;
        cutter.transform.parent           = templetGameobject.transform;
        cutter.transform.localPosition    = new Vector3(0, height, 0);
        cutter.transform.localEulerAngles = new Vector3(0, 90 * (direction > 0 ? 1 : -1), 0);
        animation.playing                 = transform;
        animation.finishiAction           = action;
        animation.indexChange             = indexchange;
    }
 public void Stop()
 {
     animation = null;
 }