Пример #1
0
        // get default plugin
        internal static TweenPlugin <TweenVT, StoreVT> GetDefaultPlugin <TweenVT, StoreVT>()
        {
            Type tweenVT = typeof(TweenVT);
            Type storeVT = typeof(StoreVT);

            ITweenPlugin plugin = null;

            if (tweenVT == typeof(Vector3) && storeVT == typeof(Vector3))
            {
                plugin = new Vector3Plugin();
            }
            else if (tweenVT == typeof(Color) && storeVT == typeof(Color))
            {
                plugin = new ColorPlugin();
            }

            if (plugin != null)
            {
                return(plugin as TweenPlugin <TweenVT, StoreVT>);
            }
            else
            {
                return(null);
            }
        }
Пример #2
0
        public ATweener(T1 begin, T1 end, float duration, Func <T2> getter, Action <T2> setter, ITweenPlugin <T1, T2> plugin)
        {
            ATween.Initialize();

            this.begin           = begin;
            this.end             = end;
            this.duration        = duration;
            this.getter          = getter;
            this.setter          = setter;
            this.ease            = ATween.DefaultEase;
            this.plugin          = plugin;
            this.ignoreTimeScale = ATween.IgnoreTimeScale;
        }
Пример #3
0
        public static ABSTweenPlugin <T1, T2, TPlugOptions> GetCustomPlugin <TPlugin, T1, T2, TPlugOptions>() where TPlugin : ITweenPlugin, new()where TPlugOptions : struct
        {
            Type         typeFromHandle = typeof(TPlugin);
            ITweenPlugin tweenPlugin    = default(ITweenPlugin);

            if (PluginsManager._customPlugins == null)
            {
                PluginsManager._customPlugins = new Dictionary <Type, ITweenPlugin>(20);
            }
            else if (PluginsManager._customPlugins.TryGetValue(typeFromHandle, out tweenPlugin))
            {
                return(tweenPlugin as ABSTweenPlugin <T1, T2, TPlugOptions>);
            }
            tweenPlugin = (ITweenPlugin)(object)new TPlugin();
            PluginsManager._customPlugins.Add(typeFromHandle, tweenPlugin);
            return(tweenPlugin as ABSTweenPlugin <T1, T2, TPlugOptions>);
        }
Пример #4
0
        // Un-caches all plugins
        internal static void PurgeAll()
        {
            _floatPlugin      = null;
            _intPlugin        = null;
            _uintPlugin       = null;
            _vector2Plugin    = null;
            _vector3Plugin    = null;
            _vector4Plugin    = null;
            _quaternionPlugin = null;
            _colorPlugin      = null;
            _rectPlugin       = null;
            _rectOffsetPlugin = null;
            _stringPlugin     = null;

            if (_customPlugins != null)
            {
                _customPlugins.Clear();
            }
        }
Пример #5
0
 internal static void PurgeAll()
 {
     PluginsManager._floatPlugin        = null;
     PluginsManager._intPlugin          = null;
     PluginsManager._uintPlugin         = null;
     PluginsManager._longPlugin         = null;
     PluginsManager._ulongPlugin        = null;
     PluginsManager._vector2Plugin      = null;
     PluginsManager._vector3Plugin      = null;
     PluginsManager._vector4Plugin      = null;
     PluginsManager._quaternionPlugin   = null;
     PluginsManager._colorPlugin        = null;
     PluginsManager._rectPlugin         = null;
     PluginsManager._rectOffsetPlugin   = null;
     PluginsManager._stringPlugin       = null;
     PluginsManager._vector3ArrayPlugin = null;
     PluginsManager._color2Plugin       = null;
     if (PluginsManager._customPlugins != null)
     {
         PluginsManager._customPlugins.Clear();
     }
 }
Пример #6
0
        // ===================================================================================
        // INTERNAL METHODS ------------------------------------------------------------------

        internal static ABSTweenPlugin <T1, T2, TPlugOptions> GetDefaultPlugin <T1, T2, TPlugOptions>() where TPlugOptions : struct
        {
            Type         t1     = typeof(T1);
            Type         t2     = typeof(T2);
            ITweenPlugin plugin = null;

            if (t1 == typeof(Vector3))
            {
                if (t1 == t2)
                {
                    if (_vector3Plugin == null)
                    {
                        _vector3Plugin = new Vector3Plugin();
                    }
                    plugin = _vector3Plugin;
                }
                else if (t2 == typeof(Vector3[]))
                {
                    if (_vector3ArrayPlugin == null)
                    {
                        _vector3ArrayPlugin = new Vector3ArrayPlugin();
                    }
                    plugin = _vector3ArrayPlugin;
                }
            }
            else if (t1 == typeof(Quaternion))
            {
                if (t2 == typeof(Quaternion))
                {
                    Debugger.LogError("Quaternion tweens require a Vector3 endValue");
                }
                else
                {
                    if (_quaternionPlugin == null)
                    {
                        _quaternionPlugin = new QuaternionPlugin();
                    }
                    plugin = _quaternionPlugin;
                }
            }
            else if (t1 == typeof(Vector2))
            {
                if (_vector2Plugin == null)
                {
                    _vector2Plugin = new Vector2Plugin();
                }
                plugin = _vector2Plugin;
            }
            else if (t1 == typeof(float))
            {
                if (_floatPlugin == null)
                {
                    _floatPlugin = new FloatPlugin();
                }
                plugin = _floatPlugin;
            }
            else if (t1 == typeof(Color))
            {
                if (_colorPlugin == null)
                {
                    _colorPlugin = new ColorPlugin();
                }
                plugin = _colorPlugin;
            }
            else if (t1 == typeof(int))
            {
                if (_intPlugin == null)
                {
                    _intPlugin = new IntPlugin();
                }
                plugin = _intPlugin;
            }
            else if (t1 == typeof(Vector4))
            {
                if (_vector4Plugin == null)
                {
                    _vector4Plugin = new Vector4Plugin();
                }
                plugin = _vector4Plugin;
            }
            else if (t1 == typeof(Rect))
            {
                if (_rectPlugin == null)
                {
                    _rectPlugin = new RectPlugin();
                }
                plugin = _rectPlugin;
            }
            else if (t1 == typeof(RectOffset))
            {
                if (_rectOffsetPlugin == null)
                {
                    _rectOffsetPlugin = new RectOffsetPlugin();
                }
                plugin = _rectOffsetPlugin;
            }
            else if (t1 == typeof(uint))
            {
                if (_uintPlugin == null)
                {
                    _uintPlugin = new UintPlugin();
                }
                plugin = _uintPlugin;
            }
            else if (t1 == typeof(string))
            {
                if (_stringPlugin == null)
                {
                    _stringPlugin = new StringPlugin();
                }
                plugin = _stringPlugin;
            }

            if (plugin != null)
            {
                return(plugin as ABSTweenPlugin <T1, T2, TPlugOptions>);
            }

            return(null);
        }
Пример #7
0
        internal static ABSTweenPlugin <T1, T2, TPlugOptions> GetDefaultPlugin <T1, T2, TPlugOptions>() where TPlugOptions : struct
        {
            Type         typeFromHandle  = typeof(T1);
            Type         typeFromHandle2 = typeof(T2);
            ITweenPlugin tweenPlugin     = null;

            if (typeFromHandle == typeof(Vector3) && typeFromHandle == typeFromHandle2)
            {
                if (PluginsManager._vector3Plugin == null)
                {
                    PluginsManager._vector3Plugin = new Vector3Plugin();
                }
                tweenPlugin = PluginsManager._vector3Plugin;
            }
            else if (typeFromHandle == typeof(Vector3) && typeFromHandle2 == typeof(Vector3[]))
            {
                if (PluginsManager._vector3ArrayPlugin == null)
                {
                    PluginsManager._vector3ArrayPlugin = new Vector3ArrayPlugin();
                }
                tweenPlugin = PluginsManager._vector3ArrayPlugin;
            }
            else if (typeFromHandle == typeof(Quaternion))
            {
                if (typeFromHandle2 == typeof(Quaternion))
                {
                    Debugger.LogError("Quaternion tweens require a Vector3 endValue");
                }
                else
                {
                    if (PluginsManager._quaternionPlugin == null)
                    {
                        PluginsManager._quaternionPlugin = new QuaternionPlugin();
                    }
                    tweenPlugin = PluginsManager._quaternionPlugin;
                }
            }
            else if (typeFromHandle == typeof(Vector2))
            {
                if (PluginsManager._vector2Plugin == null)
                {
                    PluginsManager._vector2Plugin = new Vector2Plugin();
                }
                tweenPlugin = PluginsManager._vector2Plugin;
            }
            else if (typeFromHandle == typeof(float))
            {
                if (PluginsManager._floatPlugin == null)
                {
                    PluginsManager._floatPlugin = new FloatPlugin();
                }
                tweenPlugin = PluginsManager._floatPlugin;
            }
            else if (typeFromHandle == typeof(Color))
            {
                if (PluginsManager._colorPlugin == null)
                {
                    PluginsManager._colorPlugin = new ColorPlugin();
                }
                tweenPlugin = PluginsManager._colorPlugin;
            }
            else if (typeFromHandle == typeof(int))
            {
                if (PluginsManager._intPlugin == null)
                {
                    PluginsManager._intPlugin = new IntPlugin();
                }
                tweenPlugin = PluginsManager._intPlugin;
            }
            else if (typeFromHandle == typeof(Vector4))
            {
                if (PluginsManager._vector4Plugin == null)
                {
                    PluginsManager._vector4Plugin = new Vector4Plugin();
                }
                tweenPlugin = PluginsManager._vector4Plugin;
            }
            else if (typeFromHandle == typeof(Rect))
            {
                if (PluginsManager._rectPlugin == null)
                {
                    PluginsManager._rectPlugin = new RectPlugin();
                }
                tweenPlugin = PluginsManager._rectPlugin;
            }
            else if (typeFromHandle == typeof(RectOffset))
            {
                if (PluginsManager._rectOffsetPlugin == null)
                {
                    PluginsManager._rectOffsetPlugin = new RectOffsetPlugin();
                }
                tweenPlugin = PluginsManager._rectOffsetPlugin;
            }
            else if (typeFromHandle == typeof(uint))
            {
                if (PluginsManager._uintPlugin == null)
                {
                    PluginsManager._uintPlugin = new UintPlugin();
                }
                tweenPlugin = PluginsManager._uintPlugin;
            }
            else if (typeFromHandle == typeof(string))
            {
                if (PluginsManager._stringPlugin == null)
                {
                    PluginsManager._stringPlugin = new StringPlugin();
                }
                tweenPlugin = PluginsManager._stringPlugin;
            }
            else if (typeFromHandle == typeof(Color2))
            {
                if (PluginsManager._color2Plugin == null)
                {
                    PluginsManager._color2Plugin = new Color2Plugin();
                }
                tweenPlugin = PluginsManager._color2Plugin;
            }
            else if (typeFromHandle == typeof(long))
            {
                if (PluginsManager._longPlugin == null)
                {
                    PluginsManager._longPlugin = new LongPlugin();
                }
                tweenPlugin = PluginsManager._longPlugin;
            }
            else if (typeFromHandle == typeof(ulong))
            {
                if (PluginsManager._ulongPlugin == null)
                {
                    PluginsManager._ulongPlugin = new UlongPlugin();
                }
                tweenPlugin = PluginsManager._ulongPlugin;
            }
            else if (typeFromHandle == typeof(double))
            {
                if (PluginsManager._doublePlugin == null)
                {
                    PluginsManager._doublePlugin = new DoublePlugin();
                }
                tweenPlugin = PluginsManager._doublePlugin;
            }
            if (tweenPlugin != null)
            {
                return(tweenPlugin as ABSTweenPlugin <T1, T2, TPlugOptions>);
            }
            return(null);
        }
Пример #8
0
        private static ATweener <T1, T2> TweenCore <T1, T2>(T1 endValue, float duration, Func <T2> getter, Action <T2> setter, ITweenPlugin <T1, T2> plugin)
        {
            var tweener = new ATweener <T1, T2>(default(T1), endValue, duration, getter, setter, plugin);

            tweeners.Add(tweener);
            return(tweener);
        }