示例#1
0
        public static Sequence GetSequence()
        {
            Sequence sequence;

            if (TweenManager.totPooledSequences > 0)
            {
                sequence = (Sequence)TweenManager._PooledSequences.Pop();
                TweenManager.AddActiveTween(sequence);
                TweenManager.totPooledSequences--;
                return(sequence);
            }
            if (TweenManager.totSequences >= TweenManager.maxSequences - 1)
            {
                int num  = TweenManager.maxTweeners;
                int num2 = TweenManager.maxSequences;
                TweenManager.IncreaseCapacities(TweenManager.CapacityIncreaseMode.SequencesOnly);
                if (Debugger.logPriority >= 1)
                {
                    Debugger.LogWarning("Max Tweens reached: capacity has automatically been increased from #0 to #1. Use DOTween.SetTweensCapacity to set it manually at startup".Replace("#0", num + "/" + num2).Replace("#1", TweenManager.maxTweeners + "/" + TweenManager.maxSequences));
                }
            }
            sequence = new Sequence();
            TweenManager.totSequences++;
            TweenManager.AddActiveTween(sequence);
            return(sequence);
        }
示例#2
0
        public static TweenerCore <T1, T2, TPlugOptions> GetTweener <T1, T2, TPlugOptions>() where TPlugOptions : struct
        {
            TweenerCore <T1, T2, TPlugOptions> tweenerCore;

            if (TweenManager.totPooledTweeners > 0)
            {
                Type typeFromHandle  = typeof(T1);
                Type typeFromHandle2 = typeof(T2);
                Type typeFromHandle3 = typeof(TPlugOptions);
                for (int i = TweenManager._maxPooledTweenerId; i > TweenManager._minPooledTweenerId - 1; i--)
                {
                    Tween tween = TweenManager._pooledTweeners[i];
                    if (tween != null && tween.typeofT1 == typeFromHandle && tween.typeofT2 == typeFromHandle2 && tween.typeofTPlugOptions == typeFromHandle3)
                    {
                        tweenerCore = (TweenerCore <T1, T2, TPlugOptions>)tween;
                        TweenManager.AddActiveTween(tweenerCore);
                        TweenManager._pooledTweeners[i] = null;
                        if (TweenManager._maxPooledTweenerId != TweenManager._minPooledTweenerId)
                        {
                            if (i == TweenManager._maxPooledTweenerId)
                            {
                                TweenManager._maxPooledTweenerId--;
                            }
                            else if (i == TweenManager._minPooledTweenerId)
                            {
                                TweenManager._minPooledTweenerId++;
                            }
                        }
                        TweenManager.totPooledTweeners--;
                        return(tweenerCore);
                    }
                }
                if (TweenManager.totTweeners >= TweenManager.maxTweeners)
                {
                    TweenManager._pooledTweeners[TweenManager._maxPooledTweenerId] = null;
                    TweenManager._maxPooledTweenerId--;
                    TweenManager.totPooledTweeners--;
                    TweenManager.totTweeners--;
                }
            }
            else if (TweenManager.totTweeners >= TweenManager.maxTweeners - 1)
            {
                int num  = TweenManager.maxTweeners;
                int num2 = TweenManager.maxSequences;
                TweenManager.IncreaseCapacities(TweenManager.CapacityIncreaseMode.TweenersOnly);
                if (Debugger.logPriority >= 1)
                {
                    Debugger.LogWarning("Max Tweens reached: capacity has automatically been increased from #0 to #1. Use DOTween.SetTweensCapacity to set it manually at startup".Replace("#0", num + "/" + num2).Replace("#1", TweenManager.maxTweeners + "/" + TweenManager.maxSequences));
                }
            }
            tweenerCore = new TweenerCore <T1, T2, TPlugOptions>();
            TweenManager.totTweeners++;
            TweenManager.AddActiveTween(tweenerCore);
            return(tweenerCore);
        }