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