public void ResetToBegining(iTweenData data) { for (int index = 0; index < data.targets.Length; index++) { var target = data.targets[index]; switch (data.type) { case iTweenData.TweenType.MoveTo: this.ResetMoveTo(data, target); break; case iTweenData.TweenType.ScaleTo: this.ResetScaleTo(data, target); break; case iTweenData.TweenType.ColorTo: this.ResetColorTo(data, target); break; case iTweenData.TweenType.FrameAnimation: this.ResetFrameAnimation(data, target); break; case iTweenData.TweenType.ActivityTo: this.ResetActivityTo(data, target); break; case iTweenData.TweenType.NumberTo: this.ResetNumberTo(data, target); break; case iTweenData.TweenType.SliderTo: this.ResetSliderTo(data, target); break; } } }
private void CloneWithOutTime(Dictionary <string, object> copyData, iTweenData origin) { if (copyData != null) { this.CloneWithOutTime(copyData, origin.Values); origin.Values = origin.Values; } }
private void ResetScaleTo(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from")) { Debug.LogWarning(target + ":" + data.internalName + " not have from key ,can't reset"); return; } var from = (Vector3)data.Values["from"]; target.transform.localScale = from; }
private void Clone(int copyIndex, iTweenData origin) { if (copyIndex != -1) { var copyData = this.mTweenGroup.iTweenList[copyIndex]; origin.type = copyData.type; Clone(copyData.Values, origin); origin.Values = origin.Values; } }
private void ResetActivityTo(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from") || !data.Values.ContainsKey("to")) { Debug.LogWarning(target + ":" + data.internalName + " not have from or to key ,can't reset"); return; } var from = (int)data.Values["from"]; target.SetActive(from > 0); }
private void Clone(Dictionary <string, object> copyData, iTweenData origin) { if (copyData != null) { origin.Values = new Dictionary <string, object>(); foreach (KeyValuePair <string, object> dataValue in copyData) { origin.Values.Add(dataValue.Key, dataValue.Value); } } }
private void ResetColorTo(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from")) { Debug.LogWarning(target + ":" + data.internalName + " not have from key ,can't reset"); return; } var from = (Color)data.Values["from"]; if (target.GetComponent<UIWidget>()) { target.GetComponent<UIWidget>().color = from; } }
/// <summary> /// 绘制动画控制的目标列表 /// </summary> /// <param name="data"></param> private void DrawTargetList(iTweenData data) { data.isShowTargetsList = EditorGUILayout.Toggle("查看目标列表", data.isShowTargetsList); if (data.isShowTargetsList && data.targets != null && data.targets.Length > 0) { EditorGUILayout.BeginVertical(); for (int index = 0; index < data.targets.Length; index++) { EditorGUILayout.ObjectField(data.targets[index], typeof(GameObject)); } EditorGUILayout.EndVertical(); } }
void OnGUI() { int height = 0; this.mTweenGroup = EditorGUILayout.ObjectField(this.mTweenGroup, typeof(iTweenGroup), true) as iTweenGroup; height += 20; if (mTweenGroup != null) { GUILayout.BeginArea(new Rect(0, height, position.width / 2, position.height)); this.DrawiTweenList(); GUILayout.EndArea(); GUILayout.BeginArea(new Rect(position.width / 2, height, position.width / 2, position.height)); if (this.isSort) { this.DrawSortiTweens(); } else if (isBatch) { this.DrawBatchiTweens(); } else { this.DrawiTweenInspector(); } GUILayout.EndArea(); if (GUI.changed) { Undo.RecordObject(this.mTweenGroup, "iTweenGroup Modify"); EditorUtility.SetDirty(this.mTweenGroup); } } if (Application.isPlaying) { this.mViewData = null; } }
private void ResetMoveTo(iTweenData data, GameObject target) { var isLocal = false; if (data.Values.ContainsKey("islocal")) { isLocal = (bool)data.Values["islocal"]; } if (!data.Values.ContainsKey("from")) { Debug.LogWarning(target + ":" + data.internalName + " not have from key ,can't reset"); return; } var from = (Vector3)data.Values["from"]; if (isLocal) target.transform.localPosition = from; else target.transform.position = from; }
private void ResetNumberTo(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from") || !data.Values.ContainsKey("to")) { Debug.LogWarning(target + ":" + data.internalName + " not have from or to key ,can't reset"); return; } var from = (float)data.Values["from"]; var label = target.GetComponent<UILabel>(); if (!data.Values.ContainsKey("format")) { data.Values["format"] = iTweenData.NumberFormat.NOPoint; } iTweenData.NumberFormat format = (iTweenData.NumberFormat)data.Values["format"]; label.text = GetNumberFormat(from, format); }
private void ResetSliderTo(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from") || !data.Values.ContainsKey("to")) { Debug.LogWarning(target + ":" + data.internalName + " not have from or to key ,can't reset"); return; } var from = (float)data.Values["from"]; var slider = target.GetComponent<UISlider>(); if (slider != null) { slider.value = from; } var sprite = target.GetComponent<UISprite>(); if (sprite != null) { sprite.fillAmount = from; } }
private void ResetFrameAnimation(iTweenData data, GameObject target) { if (!data.Values.ContainsKey("from") || !data.Values.ContainsKey("prefix") || !data.Values.ContainsKey("atlas")) { Debug.LogWarning(target + ":" + data.internalName + " not have from or prefix or atlas key ,can't reset"); return; } var from = (int)data.Values["from"]; string prefix = (string)data.Values["prefix"]; string atlas = (string)data.Values["atlas"]; if (target.GetComponent<UISprite>()) { if (data.Values.ContainsKey("isstartempty") && (bool)data.Values["isstartempty"]) { from = int.MinValue; } #if UNITY_EDITOR target.GetComponent<UISprite>().spriteName = prefix + Mathf.RoundToInt(from).ToString(); #else UISystem.UITools.FillSprite(target.GetComponent<UISprite>(), atlas + "%" + prefix + Mathf.RoundToInt(from)); #endif } }
/// <summary> /// 右侧绘制选中的动画列表 /// </summary> private void DrawSelectList() { int delIndex = -1; for (int index = 0; index < this.mSelectTweenDatas.Count; index++) { GUILayout.BeginHorizontal(); iTweenData data = this.mSelectTweenDatas[index]; GUILayout.Label(data.DefaultTarget.name + " " + data.type); if (GUILayout.Button("删除")) { delIndex = index; } GUILayout.EndHorizontal(); } if (delIndex != -1) { this.mSelectTweenDatas.RemoveAt(delIndex); } EditorGUILayout.Separator(); }
private void DrawDataInspector(iTweenData data) { this.mInspectorScrollPos = GUILayout.BeginScrollView(this.mInspectorScrollPos); var evt = data; if (data.type == iTweenData.TweenType.MoveTo) { if (!data.Values.ContainsKey("islocal")) { data.Values["islocal"] = true; } } mModifyValues = evt.Values; var keys = mModifyValues.Keys.ToArray(); foreach (var key in keys) { if (typeof(Vector3OrTransform) == EventParamMappings.mappings[evt.type][key]) { var val = new Vector3OrTransform(); if (null == mModifyValues[key] || typeof(Transform) == mModifyValues[key].GetType()) { if (null == mModifyValues[key]) { val.transform = null; } else { val.transform = (Transform)mModifyValues[key]; } val.selected = Vector3OrTransform.transformSelected; } else if (typeof(Vector3) == mModifyValues[key].GetType()) { val.vector = (Vector3)mModifyValues[key]; val.selected = Vector3OrTransform.vector3Selected; } mModifyValues[key] = val; } if (typeof(Vector3OrTransformArray) == EventParamMappings.mappings[evt.type][key]) { var val = new Vector3OrTransformArray(); if (null == mModifyValues[key] || typeof(Transform[]) == mModifyValues[key].GetType()) { if (null == mModifyValues[key]) { val.transformArray = null; } else { val.transformArray = (Transform[])mModifyValues[key]; } val.selected = Vector3OrTransformArray.transformSelected; } else if (typeof(Vector3[]) == mModifyValues[key].GetType()) { val.vectorArray = (Vector3[])mModifyValues[key]; val.selected = Vector3OrTransformArray.vector3Selected; } else if (typeof(string) == mModifyValues[key].GetType()) { val.pathName = (string)mModifyValues[key]; val.selected = Vector3OrTransformArray.iTweenPathSelected; } mModifyValues[key] = val; } } GUILayout.BeginHorizontal(); GUILayout.Label("Name(全是小写)"); var name = EditorGUILayout.TextField(evt.tweenName); evt.tweenName = name.ToLower(); GUILayout.EndHorizontal(); EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); GUILayout.Label("Event Type"); var prevType = evt.type; evt.type = (iTweenData.TweenType)EditorGUILayout.EnumPopup(evt.type); if (prevType != evt.type) { evt.Values.Clear(); } GUILayout.EndHorizontal(); var properties = EventParamMappings.mappings[evt.type]; #region custom add if (this.isBatch) { var newProperties = new Dictionary <string, Type>(); foreach (KeyValuePair <string, Type> pair in properties) { if (pair.Key != "time" && pair.Key != "delay" && pair.Key != "name") { newProperties.Add(pair.Key, pair.Value); } } properties = newProperties; } #endregion foreach (var pair in properties) { var key = pair.Key; GUILayout.BeginHorizontal(); bool toggle = mModifyValues.ContainsKey(key); toggle = EditorGUILayout.BeginToggleGroup(key, toggle); if (toggle) { GUILayout.BeginVertical(); if (typeof(string) == pair.Value) { #region custom add if (key == "oncomplete") { if (!mModifyValues.ContainsKey("oncomplete")) { mModifyValues[key] = "OniTweenGroupComplete"; } } #endregion mModifyValues[key] = EditorGUILayout.TextField(mModifyValues.ContainsKey(key) ? (string)mModifyValues[key] : ""); } else if (typeof(float) == pair.Value) { mModifyValues[key] = EditorGUILayout.FloatField(mModifyValues.ContainsKey(key) ? (float)mModifyValues[key] : 0); } else if (typeof(int) == pair.Value) { mModifyValues[key] = EditorGUILayout.IntField(mModifyValues.ContainsKey(key) ? (int)mModifyValues[key] : 0); } else if (typeof(bool) == pair.Value) { GUILayout.BeginHorizontal(); var currentValueString = (mModifyValues.ContainsKey(key) ? (bool)mModifyValues[key] : false).ToString(); currentValueString = currentValueString.Substring(0, 1).ToUpper() + currentValueString.Substring(1); var index = EditorGUILayout.Popup(trueFalseOptions.IndexOf(currentValueString), trueFalseOptions.ToArray()); GUILayout.EndHorizontal(); mModifyValues[key] = bool.Parse(trueFalseOptions[index]); } else if (typeof(GameObject) == pair.Value) { #region custom add if (key == "oncompletetarget") { if (!mModifyValues.ContainsKey("oncompletetarget")) { mModifyValues[key] = this.mTweenGroup.gameObject; } } #endregion mModifyValues[key] = EditorGUILayout.ObjectField(mModifyValues.ContainsKey(key) ? (GameObject)mModifyValues[key] : null, typeof(GameObject), true); } else if (typeof(Vector3) == pair.Value) { mModifyValues[key] = EditorGUILayout.Vector3Field("", mModifyValues.ContainsKey(key) ? (Vector3)mModifyValues[key] : Vector3.zero); } #region custom add else if (typeof(AnimationCurve) == pair.Value) { mModifyValues[key] = EditorGUILayout.CurveField(mModifyValues.ContainsKey(key) ? (AnimationCurve)mModifyValues[key] : new AnimationCurve()); } else if (typeof(iTweenData.NumberFormat) == pair.Value) { mModifyValues[key] = EditorGUILayout.EnumPopup(mModifyValues.ContainsKey(key) ? (iTweenData.NumberFormat)mModifyValues[key] : iTweenData.NumberFormat.NOPoint); } #endregion else if (typeof(Vector3OrTransform) == pair.Value) { if (!mModifyValues.ContainsKey(key)) { mModifyValues[key] = new Vector3OrTransform(); } var val = (Vector3OrTransform)mModifyValues[key]; val.selected = GUILayout.SelectionGrid(val.selected, Vector3OrTransform.choices, 2); GUILayout.BeginHorizontal(); if (Vector3OrTransform.vector3Selected == val.selected) { if (GUILayout.Button("SetTargetPos")) { val.vector = evt.DefaultTarget.transform.localPosition; } if (GUILayout.Button("SetTargetScale")) { val.vector = evt.DefaultTarget.transform.localScale; } if (GUILayout.Button("SetTargetAngle")) { val.vector = evt.DefaultTarget.transform.localEulerAngles; } val.vector = EditorGUILayout.Vector3Field("", val.vector); } else { val.transform = (Transform)EditorGUILayout.ObjectField(val.transform, typeof(Transform), true); } GUILayout.EndHorizontal(); mModifyValues[key] = val; } else if (typeof(Vector3OrTransformArray) == pair.Value) { if (!mModifyValues.ContainsKey(key)) { mModifyValues[key] = new Vector3OrTransformArray(); } var val = (Vector3OrTransformArray)mModifyValues[key]; val.selected = GUILayout.SelectionGrid(val.selected, Vector3OrTransformArray.choices, Vector3OrTransformArray.choices.Length); if (Vector3OrTransformArray.vector3Selected == val.selected) { if (null == val.vectorArray) { val.vectorArray = new Vector3[0]; } var elements = val.vectorArray.Length; GUILayout.BeginHorizontal(); GUILayout.Label("Number of points"); elements = EditorGUILayout.IntField(elements); GUILayout.EndHorizontal(); if (elements != val.vectorArray.Length) { var resizedArray = new Vector3[elements]; val.vectorArray.CopyTo(resizedArray, 0); val.vectorArray = resizedArray; } for (var i = 0; i < val.vectorArray.Length; ++i) { val.vectorArray[i] = EditorGUILayout.Vector3Field("", val.vectorArray[i]); } } else if (Vector3OrTransformArray.transformSelected == val.selected) { if (null == val.transformArray) { val.transformArray = new Transform[0]; } var elements = val.transformArray.Length; GUILayout.BeginHorizontal(); GUILayout.Label("Number of points"); elements = EditorGUILayout.IntField(elements); GUILayout.EndHorizontal(); if (elements != val.transformArray.Length) { var resizedArray = new Transform[elements]; val.transformArray.CopyTo(resizedArray, 0); val.transformArray = resizedArray; } for (var i = 0; i < val.transformArray.Length; ++i) { val.transformArray[i] = (Transform)EditorGUILayout.ObjectField(val.transformArray[i], typeof(Transform), true); } } else if (Vector3OrTransformArray.iTweenPathSelected == val.selected) { var index = 0; var paths = (GameObject.FindObjectsOfType(typeof(iTweenPath)) as iTweenPath[]); if (0 == paths.Length) { val.pathName = ""; GUILayout.Label("No paths are defined"); } else { for (var i = 0; i < paths.Length; ++i) { if (paths[i].pathName == val.pathName) { index = i; } } index = EditorGUILayout.Popup(index, (GameObject.FindObjectsOfType(typeof(iTweenPath)) as iTweenPath[]).Select(path => path.pathName).ToArray()); val.pathName = paths[index].pathName; } } mModifyValues[key] = val; } else if (typeof(iTween.LoopType) == pair.Value) { mModifyValues[key] = EditorGUILayout.EnumPopup(mModifyValues.ContainsKey(key) ? (iTween.LoopType)mModifyValues[key] : iTween.LoopType.none); } else if (typeof(iTween.EaseType) == pair.Value) { mModifyValues[key] = EditorGUILayout.EnumPopup(mModifyValues.ContainsKey(key) ? (iTween.EaseType)mModifyValues[key] : iTween.EaseType.linear); } else if (typeof(AudioSource) == pair.Value) { mModifyValues[key] = (AudioSource)EditorGUILayout.ObjectField(mModifyValues.ContainsKey(key) ? (AudioSource)mModifyValues[key] : null, typeof(AudioSource), true); } else if (typeof(AudioClip) == pair.Value) { mModifyValues[key] = (AudioClip)EditorGUILayout.ObjectField(mModifyValues.ContainsKey(key) ? (AudioClip)mModifyValues[key] : null, typeof(AudioClip), true); } else if (typeof(Color) == pair.Value) { mModifyValues[key] = EditorGUILayout.ColorField(mModifyValues.ContainsKey(key) ? (Color)mModifyValues[key] : Color.white); } else if (typeof(Space) == pair.Value) { mModifyValues[key] = EditorGUILayout.EnumPopup(mModifyValues.ContainsKey(key) ? (Space)mModifyValues[key] : Space.Self); } GUILayout.EndVertical(); } else { // propertiesEnabled[key] = false; mModifyValues.Remove(key); } EditorGUILayout.EndToggleGroup(); GUILayout.EndHorizontal(); EditorGUILayout.Separator(); } keys = mModifyValues.Keys.ToArray(); foreach (var key in keys) { if (mModifyValues[key] != null && mModifyValues[key].GetType() == typeof(Vector3OrTransform)) { var val = (Vector3OrTransform)mModifyValues[key]; if (Vector3OrTransform.vector3Selected == val.selected) { mModifyValues[key] = val.vector; } else { mModifyValues[key] = val.transform; } } else if (mModifyValues[key] != null && mModifyValues[key].GetType() == typeof(Vector3OrTransformArray)) { var val = (Vector3OrTransformArray)mModifyValues[key]; if (Vector3OrTransformArray.vector3Selected == val.selected) { mModifyValues[key] = val.vectorArray; } else if (Vector3OrTransformArray.transformSelected == val.selected) { mModifyValues[key] = val.transformArray; } else if (Vector3OrTransformArray.iTweenPathSelected == val.selected) { mModifyValues[key] = val.pathName; } } } GUILayout.EndScrollView(); }
private void DrawiTweenList() { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("添加")) { var newData = new iTweenData(); this.mTweenGroup.iTweenList.Add(newData); } if (GUILayout.Button("排序")) { this.isBatch = false; this.isSort = true; } // if (GUILayout.Button("批量处理(同效果)")) // { // if (this.IsCanBatch()) // { // this.isSort = false; // this.isBatch = true; // } // else // { // EditorUtility.DisplayDialog("iTweenGroupEditor", "必须选中最少一个动画,且多个动画间的动画类型需要相同", "OK", "Cancel"); // } // } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); this.mListScrollPos = EditorGUILayout.BeginScrollView(this.mListScrollPos); var delIndex = -1; var copyIndex = -1; for (int i = 0; i < this.mTweenGroup.iTweenList.Count; i++) { var tweenData = this.mTweenGroup.iTweenList[i]; var color = GUI.color; if (tweenData.DefaultTarget != null) { GUI.color = Color.green; GUILayout.Label(tweenData.DefaultTarget.name + " " + tweenData.type); GUI.color = color; } GUILayout.BeginHorizontal(); color = GUI.color; if (this.mViewData == tweenData || this.mSelectTweenDatas.Contains(tweenData)) { GUI.color = Color.gray; } else if (tweenData.DefaultTarget == null) { GUI.color = Color.red; } if (GUILayout.Button("设置选中对象组为目标")) { tweenData.targets = Selection.gameObjects; } this.DrawTargetList(tweenData); if (GUILayout.Button("查看参数")) { this.CancleSortOrBatch(); this.mViewData = tweenData; } if (GUILayout.Button("删除动画")) { delIndex = i; } if (GUILayout.Button("复制动画")) { copyIndex = i; } var select = this.mSelectTweenDatas.Contains(tweenData); if (GUILayout.Toggle(select, "选择")) { if (!this.mSelectTweenDatas.Contains(tweenData)) { this.mSelectTweenDatas.Add(tweenData); } } else { if (this.mSelectTweenDatas.Contains(tweenData)) { this.mSelectTweenDatas.Remove(tweenData); } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUI.color = color; } if (delIndex != -1) { var tween = this.mTweenGroup.iTweenList[delIndex]; if (this.mViewData == tween) { this.mViewData = null; } this.mTweenGroup.iTweenList.Remove(tween); } if (copyIndex != -1) { var newData = new iTweenData(); this.Clone(copyIndex, newData); this.mTweenGroup.iTweenList.Add(newData); } EditorGUILayout.EndScrollView(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); }
public void Play(iTweenData data) { var optionsHash = new Hashtable(); foreach (var pair in data.Values) { if ("path" == pair.Key && pair.Value.GetType() == typeof(string)) optionsHash.Add(pair.Key, iTweenPath.GetPath((string)pair.Value)); else optionsHash.Add(pair.Key, pair.Value); } // We use the internalName to have a unique identifier to stop the tween data.internalName = string.IsNullOrEmpty(data.tweenName) ? data.type + "-" + System.Guid.NewGuid().ToString() : data.tweenName; optionsHash.Add("name", data.internalName); for (int index = 0; index < data.targets.Length; index++) { var target = data.targets[index]; if (!target.activeInHierarchy && data.type != iTweenData.TweenType.ActivityTo) continue; // 如果目标没被激活,不触发 #region iTween switch (data.type) { case iTweenData.TweenType.AudioFrom: iTween.AudioFrom(target, optionsHash); break; case iTweenData.TweenType.AudioTo: iTween.AudioTo(target, optionsHash); break; case iTweenData.TweenType.AudioUpdate: iTween.AudioUpdate(target, optionsHash); break; case iTweenData.TweenType.CameraFadeFrom: iTween.CameraFadeFrom(optionsHash); break; case iTweenData.TweenType.CameraFadeTo: iTween.CameraFadeTo(optionsHash); break; case iTweenData.TweenType.ColorFrom: iTween.ColorFrom(target, optionsHash); break; case iTweenData.TweenType.ColorTo: iTween.ColorTo(target, optionsHash); break; case iTweenData.TweenType.ColorUpdate: iTween.ColorUpdate(target, optionsHash); break; case iTweenData.TweenType.FadeFrom: iTween.FadeFrom(target, optionsHash); break; case iTweenData.TweenType.FadeTo: iTween.FadeTo(target, optionsHash); break; case iTweenData.TweenType.FadeUpdate: iTween.FadeUpdate(target, optionsHash); break; case iTweenData.TweenType.LookFrom: iTween.LookFrom(target, optionsHash); break; case iTweenData.TweenType.LookTo: iTween.LookTo(target, optionsHash); break; case iTweenData.TweenType.LookUpdate: iTween.LookUpdate(target, optionsHash); break; case iTweenData.TweenType.MoveAdd: iTween.MoveAdd(target, optionsHash); break; case iTweenData.TweenType.MoveBy: iTween.MoveBy(target, optionsHash); break; case iTweenData.TweenType.MoveFrom: iTween.MoveFrom(target, optionsHash); break; case iTweenData.TweenType.MoveTo: iTween.MoveTo(target, optionsHash); break; case iTweenData.TweenType.MoveUpdate: iTween.MoveUpdate(target, optionsHash); break; case iTweenData.TweenType.PunchPosition: iTween.PunchPosition(target, optionsHash); break; case iTweenData.TweenType.PunchRotation: iTween.PunchRotation(target, optionsHash); break; case iTweenData.TweenType.PunchScale: iTween.PunchScale(target, optionsHash); break; case iTweenData.TweenType.RotateAdd: iTween.RotateAdd(target, optionsHash); break; case iTweenData.TweenType.RotateBy: iTween.RotateBy(target, optionsHash); break; case iTweenData.TweenType.RotateFrom: iTween.RotateFrom(target, optionsHash); break; case iTweenData.TweenType.RotateTo: iTween.RotateTo(target, optionsHash); break; case iTweenData.TweenType.RotateUpdate: iTween.RotateUpdate(target, optionsHash); break; case iTweenData.TweenType.ScaleAdd: iTween.ScaleAdd(target, optionsHash); break; case iTweenData.TweenType.ScaleBy: iTween.ScaleBy(target, optionsHash); break; case iTweenData.TweenType.ScaleFrom: iTween.ScaleFrom(target, optionsHash); break; case iTweenData.TweenType.ScaleTo: iTween.ScaleTo(target, optionsHash); break; case iTweenData.TweenType.ScaleUpdate: iTween.ScaleUpdate(target, optionsHash); break; case iTweenData.TweenType.ShakePosition: iTween.ShakePosition(target, optionsHash); break; case iTweenData.TweenType.ShakeRotation: iTween.ShakeRotation(target, optionsHash); break; case iTweenData.TweenType.ShakeScale: iTween.ShakeScale(target, optionsHash); break; case iTweenData.TweenType.Stab: iTween.Stab(target, optionsHash); break; case iTweenData.TweenType.FrameAnimation: iTween.FrameAnimation(target, optionsHash); break; case iTweenData.TweenType.ActivityTo: var newOption = this.Copy(optionsHash); newOption.Add("activityTarget", target); iTween.ActivityTo(this.gameObject, newOption); break; case iTweenData.TweenType.NumberTo: iTween.NumberTo(target, optionsHash); break; case iTweenData.TweenType.SliderTo: iTween.SliderTo(target, optionsHash); break; default: throw new System.ArgumentException("Invalid tween type: " + data.type); } #endregion } }