示例#1
0
 public void Start()
 {
     _sprite = GetComponent <SpriteRenderer>();
     if (_sprite)
     {
         Invoke($"Play{TweenType_.ToString()}", 0.0f);
     }
 }
示例#2
0
        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 });
        }
示例#3
0
 public virtual void Play()
 {
     Invoke($"Play{TweenType_.ToString()}", 0.0f);
 }
示例#4
0
 public string ToString()
 {
     return("Type: " + type.ToString() + ", Target position: " + targetPosition + ", Target scale: " + targetScale + " Target angle: " + targetAngle);
 }
示例#5
0
 public void Start()
 {
     Invoke($"Play{TweenType_.ToString()}", 0.0f);
 }