Esempio n. 1
0
        protected override void OnExit(Action onAnimationFinish)
        {
            AnimationEntry current      = GetBaseAnimationEntry();
            bool           hasAnimation = false;

            if (fade)
            {
                current      = current.Then(GetOpacityAnimationProperty(1, 0), duration);
                hasAnimation = true;
            }

            if (movementDirection != UIViewMovementDirection.None || scalingDirection != UIViewScalingDirection.None)
            {
                var delta = size0.InverseScale(RealScreen.uiSize) * (UICameraHelper.Active.orthographicSize * 2);
                delta.Scale(Dir2Vector[(int)movementDirection] * movementPercentage);
                var size = size0 * (1 + Dir2Scale[(int)scalingDirection] * scalingPercentage);
                var prop = new RectTransformAnimationProperty(rt, pos0, pos0 - delta, size0.CloneScale(scale0),
                                                              size.CloneScale(scale0));
                current = hasAnimation ? current.And(prop, duration) : current.Then(prop, duration);
                current.With(exitFunction);
                hasAnimation = true;
            }

            if (rotationDirection != UIViewRotationDirection.None)
            {
                float angle = 360 * rotationPercentage * (int)rotationDirection;
                var   prop  = new RotationAnimationProperty(rt, new Vector3(0, 0, angle));
                rt.rotation = Quaternion.identity;
                current     = hasAnimation ? current.And(prop, duration) : current.Then(prop, duration);
                current.With(exitFunction);
            }

            current.Then(new ActionAnimationProperty(() =>
            {
                onAnimationFinish?.Invoke();
                SetToTransitionTarget();
            }));
        }
Esempio n. 2
0
 static int With(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         Nova.AnimationEntry obj = (Nova.AnimationEntry)ToLua.CheckObject <Nova.AnimationEntry>(L, 1);
         Nova.AnimationEntry.EasingFunction arg0 = (Nova.AnimationEntry.EasingFunction)ToLua.CheckDelegate <Nova.AnimationEntry.EasingFunction>(L, 2);
         Nova.AnimationEntry o = obj.With(arg0);
         ToLua.Push(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }