public void Start() { _sprite = GetComponent <SpriteRenderer>(); if (_sprite) { Invoke($"Play{TweenType_.ToString()}", 0.0f); } }
internal Tween(float duration, ref object objectTarget, ref object objectTween, TweenType type, TweenMethod method, Action after = null) { _duration = duration; _objectTarget = objectTarget; _objectTween = objectTween; _type = type; _method = method; _after = after; _crossover = new Dictionary <string, float>(); MemberInfo[] tweenMembers = _objectTween.GetType().GetMembers(); MemberInfo[] targetMembers = _objectTarget.GetType().GetMembers(); // Find matches. foreach (MemberInfo tweenMember in tweenMembers) { // Filter everything that isn't a field or property. if (tweenMember.MemberType != MemberTypes.Field && tweenMember.MemberType != MemberTypes.Property) { continue; } Type tweenMemberType = TypeOfMember(tweenMember); // Filter not double convertible types. if (tweenMemberType != typeof(float) && tweenMemberType != typeof(double) && tweenMemberType != typeof(decimal)) { continue; } // Check if name and type match. Add it and calculate the delta. if ((from targetMember in targetMembers where tweenMember.Name == targetMember.Name select TypeOfMember(targetMember)).Any(targetMemberType => tweenMemberType == targetMemberType)) { _crossover.Add(tweenMember.Name, (GetFloatValueFromObjectMember(_objectTween, tweenMember.Name) - GetFloatValueFromObjectMember(_objectTarget, tweenMember.Name)) * 1); } } // Get the type/method combination function. _func = (Func <float, float>)GetType().GetMethod(type.ToString(), BindingFlags.NonPublic | BindingFlags.Instance)?.Invoke(this, new object[] { method }); }
public virtual void Play() { Invoke($"Play{TweenType_.ToString()}", 0.0f); }
public string ToString() { return("Type: " + type.ToString() + ", Target position: " + targetPosition + ", Target scale: " + targetScale + " Target angle: " + targetAngle); }
public void Start() { Invoke($"Play{TweenType_.ToString()}", 0.0f); }