// ===================================================================================
        // METHODS ---------------------------------------------------------------------------

        public HOTweenData Clone(int p_creationTime)
        {
            HOTweenData clone = new HOTweenData(p_creationTime, targetRoot, target, _targetPath);

            clone.duration                 = duration;
            clone.tweenFrom                = tweenFrom;
            clone.paused                   = paused;
            clone.updateType               = updateType;
            clone.delay                    = delay;
            clone.id                       = id;
            clone.loopType                 = loopType;
            clone.loops                    = loops;
            clone.timeScale                = timeScale;
            clone.easeType                 = easeType;
            clone.onCompleteActionType     = onCompleteActionType;
            clone.onCompletePlayId         = onCompletePlayId;
            clone.onCompleteTarget         = onCompleteTarget;
            clone.onCompleteMethodName     = onCompleteMethodName;
            clone.onCompleteParmType       = onCompleteParmType;
            clone.onCompleteParmColor      = new Color(onCompleteParmColor.r, onCompleteParmColor.g, onCompleteParmColor.b, onCompleteParmColor.a);
            clone.onCompleteParmNumber     = onCompleteParmNumber;
            clone.onCompleteParmObject     = onCompleteParmObject;
            clone.onCompleteParmQuaternion = new Quaternion(onCompleteParmQuaternion.x, onCompleteParmQuaternion.y, onCompleteParmQuaternion.z, onCompleteParmQuaternion.w);
            clone.onCompleteParmRect       = new Rect(onCompleteParmRect);
            clone.onCompleteParmString     = onCompleteParmString;
            clone.onCompleteParmVector2    = new Vector2(onCompleteParmVector2.x, onCompleteParmVector2.y);
            clone.onCompleteParmVector3    = new Vector3(onCompleteParmVector3.x, onCompleteParmVector3.y, onCompleteParmVector3.z);
            clone.onCompleteParmVector4    = new Vector4(onCompleteParmVector4.x, onCompleteParmVector4.y, onCompleteParmVector4.z, onCompleteParmVector4.w);
            foreach (HOPropData propData in propDatas)
            {
                clone.propDatas.Add(propData.Clone());
            }

            return(clone);
        }
Exemple #2
0
    /// <summary>
    /// Creates a tween based on the given tweenData and returns it,
    /// or returns <code>null</code> if the tween was empty.
    /// </summary>
    /// <param name="p_twData">
    /// A <see cref="HOTweenData"/>
    /// </param>
    public static Holoville.HOTween.Tweener CreateTween(HOTweenData p_twData, float p_globalDelay, float p_globalTimeScale)
    {
        if (p_twData.propDatas.Count == 0 || !p_twData.isActive) return null;

        TweenParms parms = new TweenParms()
            .Delay(p_twData.delay + p_globalDelay)
            .Id(p_twData.id)
            .Loops(p_twData.loops, p_twData.loopType)
            .UpdateType(p_twData.updateType)
            .Ease(p_twData.easeType)
            .TimeScale(p_twData.timeScale * p_globalTimeScale)
            .AutoKill(p_twData.autoKill)
            .Pause(p_twData.paused);

        // Eventual onComplete
        if (p_twData.onCompleteActionType != HOTweenData.OnCompleteActionType.None) {
            switch (p_twData.onCompleteActionType) {
                case HOTweenData.OnCompleteActionType.PlayAll:
                    parms.OnComplete(() => HOTween.Play());
                    break;
                case HOTweenData.OnCompleteActionType.PlayTweensById:
                    parms.OnComplete(() => HOTween.Play(p_twData.onCompletePlayId));
                    break;
                case HOTweenData.OnCompleteActionType.SendMessage:
                    if (p_twData.onCompleteTarget == null || p_twData.onCompleteMethodName == "") break;
                    object onCompleteParm = null;
                    switch (p_twData.onCompleteParmType) {
                        case HOTweenData.ParameterType.Color:
                            onCompleteParm = p_twData.onCompleteParmColor;
                            break;
                        case HOTweenData.ParameterType.Number:
                            onCompleteParm = p_twData.onCompleteParmNumber;
                            break;
                        case HOTweenData.ParameterType.Object:
                            onCompleteParm = p_twData.onCompleteParmObject;
                            break;
                        case HOTweenData.ParameterType.Quaternion:
                            onCompleteParm = p_twData.onCompleteParmQuaternion;
                            break;
                        case HOTweenData.ParameterType.Rect:
                            onCompleteParm = p_twData.onCompleteParmRect;
                            break;
                        case HOTweenData.ParameterType.String:
                            onCompleteParm = p_twData.onCompleteParmString;
                            break;
                        case HOTweenData.ParameterType.Vector2:
                            onCompleteParm = p_twData.onCompleteParmVector2;
                            break;
                        case HOTweenData.ParameterType.Vector3:
                            onCompleteParm = p_twData.onCompleteParmVector3;
                            break;
                        case HOTweenData.ParameterType.Vector4:
                            onCompleteParm = p_twData.onCompleteParmVector4;
                            break;
                    }
                    parms.OnComplete(p_twData.onCompleteTarget, p_twData.onCompleteMethodName, onCompleteParm);
                    break;
            }
        }

        foreach (HOPropData propData in p_twData.propDatas) {
            if (propData.isActive) {
                parms.Prop(propData.propName, Activator.CreateInstance(propData.pluginType, propData.endVal, propData.isRelative));
            }
        }
        if (!parms.hasProps) return null;

        if (p_twData.tweenFrom) return HOTween.From(p_twData.target, p_twData.duration, parms);
        return HOTween.To(p_twData.target, p_twData.duration, parms);
    }
Exemple #3
0
        // ===================================================================================
        // METHODS ---------------------------------------------------------------------------

        public HOTweenData Clone(int p_creationTime)
        {
            HOTweenData clone = new HOTweenData(p_creationTime, targetRoot, target, _targetPath);
            clone.duration = duration;
            clone.tweenFrom = tweenFrom;
            clone.paused = paused;
            clone.updateType = updateType;
            clone.delay = delay;
            clone.id = id;
            clone.loopType = loopType;
            clone.loops = loops;
            clone.timeScale = timeScale;
            clone.easeType = easeType;
            clone.onCompleteActionType = onCompleteActionType;
            clone.onCompletePlayId = onCompletePlayId;
            clone.onCompleteTarget = onCompleteTarget;
            clone.onCompleteMethodName = onCompleteMethodName;
            clone.onCompleteParmType = onCompleteParmType;
            clone.onCompleteParmColor = new Color(onCompleteParmColor.r, onCompleteParmColor.g, onCompleteParmColor.b, onCompleteParmColor.a);
            clone.onCompleteParmNumber = onCompleteParmNumber;
            clone.onCompleteParmObject = onCompleteParmObject;
            clone.onCompleteParmQuaternion = new Quaternion(onCompleteParmQuaternion.x, onCompleteParmQuaternion.y, onCompleteParmQuaternion.z, onCompleteParmQuaternion.w);
            clone.onCompleteParmRect = new Rect(onCompleteParmRect);
            clone.onCompleteParmString = onCompleteParmString;
            clone.onCompleteParmVector2 = new Vector2(onCompleteParmVector2.x, onCompleteParmVector2.y);
            clone.onCompleteParmVector3 = new Vector3(onCompleteParmVector3.x, onCompleteParmVector3.y, onCompleteParmVector3.z);
            clone.onCompleteParmVector4 = new Vector4(onCompleteParmVector4.x, onCompleteParmVector4.y, onCompleteParmVector4.z, onCompleteParmVector4.w);
            foreach (HOPropData propData in propDatas) {
                clone.propDatas.Add(propData.Clone());
            }

            return clone;
        }
Exemple #4
0
    /// <summary>
    /// Creates a tween based on the given tweenData and returns it,
    /// or returns <code>null</code> if the tween was empty.
    /// </summary>
    /// <param name="p_twData">
    /// A <see cref="HOTweenData"/>
    /// </param>
    public static Holoville.HOTween.Tweener CreateTween(HOTweenData p_twData, float p_globalDelay, float p_globalTimeScale)
    {
        if (p_twData.propDatas.Count == 0 || !p_twData.isActive)
        {
            return(null);
        }

        TweenParms parms = new TweenParms()
                           .Delay(p_twData.delay + p_globalDelay)
                           .Id(p_twData.id)
                           .Loops(p_twData.loops, p_twData.loopType)
                           .UpdateType(p_twData.updateType)
                           .Ease(p_twData.easeType)
                           .TimeScale(p_twData.timeScale * p_globalTimeScale)
                           .AutoKill(p_twData.autoKill)
                           .Pause(p_twData.paused);

        if (p_twData.easeType == EaseType.AnimationCurve)
        {
            parms.Ease(p_twData.animationCurve);
        }
        else
        {
            parms.Ease(p_twData.easeType);
        }

        // Eventual onComplete
        if (p_twData.onCompleteActionType != HOTweenData.OnCompleteActionType.None)
        {
            switch (p_twData.onCompleteActionType)
            {
            case HOTweenData.OnCompleteActionType.PlayAll:
                parms.OnComplete(() => HOTween.Play());
                break;

            case HOTweenData.OnCompleteActionType.PlayTweensById:
                parms.OnComplete(() => HOTween.Play(p_twData.onCompletePlayId));
                break;

            case HOTweenData.OnCompleteActionType.RestartTweensById:
                parms.OnComplete(() => HOTween.Restart(p_twData.onCompletePlayId));
                break;

            case HOTweenData.OnCompleteActionType.SendMessage:
                if (p_twData.onCompleteTarget == null || p_twData.onCompleteMethodName == "")
                {
                    break;
                }
                object onCompleteParm = null;
                switch (p_twData.onCompleteParmType)
                {
                case HOTweenData.ParameterType.Color:
                    onCompleteParm = p_twData.onCompleteParmColor;
                    break;

                case HOTweenData.ParameterType.Number:
                    onCompleteParm = p_twData.onCompleteParmNumber;
                    break;

                case HOTweenData.ParameterType.Object:
                    onCompleteParm = p_twData.onCompleteParmObject;
                    break;

                case HOTweenData.ParameterType.Quaternion:
                    onCompleteParm = p_twData.onCompleteParmQuaternion;
                    break;

                case HOTweenData.ParameterType.Rect:
                    onCompleteParm = p_twData.onCompleteParmRect;
                    break;

                case HOTweenData.ParameterType.String:
                    onCompleteParm = p_twData.onCompleteParmString;
                    break;

                case HOTweenData.ParameterType.Vector2:
                    onCompleteParm = p_twData.onCompleteParmVector2;
                    break;

                case HOTweenData.ParameterType.Vector3:
                    onCompleteParm = p_twData.onCompleteParmVector3;
                    break;

                case HOTweenData.ParameterType.Vector4:
                    onCompleteParm = p_twData.onCompleteParmVector4;
                    break;
                }
                parms.OnComplete(p_twData.onCompleteTarget, p_twData.onCompleteMethodName, onCompleteParm);
                break;
            }
        }

        foreach (HOPropData propData in p_twData.propDatas)
        {
            if (propData.isActive)
            {
                parms.Prop(propData.propName, Activator.CreateInstance(propData.pluginType, propData.endVal, propData.isRelative));
            }
        }
        if (!parms.hasProps)
        {
            return(null);
        }

        if (p_twData.tweenFrom)
        {
            return(HOTween.From(p_twData.target, p_twData.duration, parms));
        }
        return(HOTween.To(p_twData.target, p_twData.duration, parms));
    }