public void FinishAnim() { currentTime = totalTime; executeUpdate(); executeCallBack(); TweenUtil.GetInstance().animList.Remove(this); StackObjectPool <TweenScript> .Push(this); }
public static void TnReverse(this Transform trans) { for (int i = 0; i < TweenUtil.GetInstance().animList.Count; i++) { if (TweenUtil.GetInstance().animList[i].AnimObject == trans.gameObject) { TweenUtil.GetInstance().animList[i].Reverse(); } } }
/// <summary> /// 动画移动到某位置 /// </summary> /// <returns></returns> public static TweenScript TnLocalMove(this Transform trans, Vector3 to, float time = 0.5f, float delayTime = 0) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.SetValue(trans.localPosition, to); tweenTmp.isLocal = true; tweenTmp.Init(trans.gameObject, AnimType.Position, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
public static TweenScript TnAlphaTo(this Transform trans, float from, float to, float time = 0.5f, float delayTime = 0) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.SetValue(from, to); tweenTmp.Init(trans.gameObject, AnimType.Alpha, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
/// <summary> /// 隐藏/显示 /// </summary> public static TweenScript TnBlink(this Transform trans, float space, float time = 0.5f, float delayTime = 0) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.blinkTime = space; tweenTmp.Init(trans.gameObject, AnimType.Blink, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
/// <summary> /// UGUI RectTransfrom 放大缩小 /// width/height /// </summary> public static TweenScript TnUiSize(this RectTransform rectTrans, Vector2 to, float time = 0.5f, float delayTime = 0) { Vector2 fromTmp = rectTrans.sizeDelta; TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.SetValue(fromTmp, to); tweenTmp.Init(rectTrans.gameObject, AnimType.UiSize, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
/// <summary> /// UGUI Move RectTransform .anchoredPosition3D /// </summary> public static TweenScript TnAnchoredPosition(this RectTransform rectTrans, Vector3 to, float time = 0.5f, float delayTime = 0) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.SetValue(rectTrans.anchoredPosition3D, to); tweenTmp.Init(rectTrans.gameObject, AnimType.UiAnchoredPosition, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
public static TweenScript TnRotate(this Transform trans, Vector3 to, float time = 0.5f, float delayTime = 0, bool isLocal = true) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); tweenTmp.SetValue(isLocal ? trans.localEulerAngles : trans.eulerAngles, to); tweenTmp.isLocal = isLocal; tweenTmp.Init(trans.gameObject, AnimType.Rotate, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
private static void PauseOrContinue(GameObject animGameObject, bool isPause = true, bool isReset = false) { for (int i = 0; i < TweenUtil.GetInstance().animList.Count; i++) { if (TweenUtil.GetInstance().animList[i].AnimObject == animGameObject) { TweenUtil.GetInstance().animList[i].Pause(isPause); if (isReset) { TweenUtil.GetInstance().animList[i].Reset(); } } } }
public static TweenScript TnPathMove(this Transform trans, Vector3[] path, float time = 2, float delayTime = 0, bool isLocal = false, PathType pathType = PathType.CatmullRom) { TweenScript tweenTmp = StackObjectPool <TweenScript> .Get(); if (pathType == PathType.Line) { pathType = PathType.CatmullRom; } Vector3 fromV3; if (isLocal) { fromV3 = trans.transform.localPosition; } else { fromV3 = trans.transform.position; } if (path.Length < 2) { pathType = PathType.Line; //小于1个点。 Debug.LogError("Path point it's too short "); } else { Vector3[] realPath = new Vector3[path.Length + 1]; realPath[0] = fromV3; for (int i = 0; i < path.Length; i++) { realPath[i + 1] = path[i]; } tweenTmp.pathNodes = realPath; } tweenTmp.isLocal = isLocal; tweenTmp.pathType = pathType; tweenTmp.Init(trans.gameObject, AnimType.Position, time, delayTime); TweenUtil.GetInstance().AddTween(tweenTmp); return(tweenTmp); }
/// <summary> /// 停止一个对象身上的所有动画 /// </summary> /// <param name="trans">要停止动画的对象</param> /// <param name="isCallBack">是否触发回调</param> public static void TnStop(this Transform trans, bool isCallBack = false) { for (int i = 0; i < TweenUtil.GetInstance().animList.Count; i++) { if (TweenUtil.GetInstance().animList[i].AnimObject == trans.gameObject) { if (isCallBack) { TweenScript dataTmp = TweenUtil.GetInstance().animList[i]; dataTmp.executeCallBack(); } TweenScript tweenData = TweenUtil.GetInstance().animList[i]; TweenUtil.GetInstance().animList.RemoveAt(i); i--; StackObjectPool <TweenScript> .Push(tweenData); } } }
// static AnimParamHash HashTemp = new AnimParamHash(); public static TweenUtil GetInstance() { if (instance == null) { GameObject animGameObject = new GameObject(); animGameObject.name = "[TweenUtil]"; instance = animGameObject.AddComponent <TweenUtil>(); #if UNITY_EDITOR if (Application.isPlaying) { DontDestroyOnLoad(instance.gameObject); } else { EditorApplication.update += instance.Update; } #else DontDestroyOnLoad(instance.gameObject); #endif } return(instance); }