/// <summary> /// Used to create a tween object. /// </summary> /// <param name="targetObject">GameObject to be targeted.</param> /// <param name="duration">The duration of a single run of the tween.</param> /// <param name="parameters">Tween parameters.</param> public static GameObject Create(GameObject targetObject, float duration, NightTweenParams parameters) { if (targetObject == null) { return(null); } if (parameters == null) { return(null); } if (container == null) { container = new GameObject("NightTween"); } GameObject o = new GameObject(parameters.storedParams.id); o.transform.SetParent(container.transform); NightTweenInstance t = o.AddComponent <NightTweenInstance>(); t.Setup(targetObject, duration, parameters); return(o); }
/// <summary> /// Setups the NightTweenInstance. /// </summary> /// <param name="targetObject">GameObject being animated.</param> /// <param name="duration">Duration of a single loop.</param> /// <param name="parameters">Parameters acquired during creation.</param> public void Setup(GameObject targetObject, float duration, NightTweenParams parameters) { _targetObject = targetObject; _duration = duration; _parameters = parameters.storedParams; if (_parameters.updateMode == NightTween.UpdateType.Update) { useUpdate = true; } else if (_parameters.updateMode == NightTween.UpdateType.LateUpdate) { useLateUpdate = true; } else if (_parameters.updateMode == NightTween.UpdateType.FixedUpdate) { useFixedUpdate = true; } else if (_parameters.updateMode == NightTween.UpdateType.TimeScaleIndependentUpdate) { useTimescaleInd = true; } _born = TimeNow(); _started = _born + _parameters.delay; endValue = _parameters.propertyValue; startingValue = new object[_parameters.property.Length]; for (int x = 0; x < startingValue.Length; x++) { startingValue[x] = GetValue(_parameters.property[x]); } if (_parameters.startCallback != null) { for (int x = 0; x < _parameters.startCallback.Length; x++) { if (_parameters.startCallback[x] != null) { _parameters.startCallback[x](); } } } }
/// <summary> /// Create a new StoredParams with default values; /// </summary> /// <param name="mode">Any value.</param> public StoredParams(int mode) { delay = 0; easeType = NightTween.EaseType.Linear; id = "NightTween " + NightTweenParams.NextNumber(); loops = 0; loopType = NightTween.LoopType.Restart; endCycleCallback = null; endCycleCallbackPParam = null; startCallback = null; startCallbackPParam = null; finishCallback = null; finishCallbackPParam = null; updateCallback = null; updateCallbackPParam = null; property = null; propertyValue = null; updateMode = NightTween.UpdateType.Update; }