// 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); } }
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; }
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>); }
// 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(); } }
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(); } }
// =================================================================================== // 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); }
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); }
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); }