private void AlphaFadeIn(float tweenDelay, float tweenTime, EaseAnim ease, Action completeCallBack) { fObjectR.SetAlpha(0f); SimpleTween.Value(gameObject, 0f, 1.0f, tweenTime).SetEase(EaseAnim.EaseInCirc).SetOnUpdate((float val) => { fObjectR.SetAlphaK(val); }). SetDelay(tweenDelay).SetEase(ease). AddCompleteCallBack(() => { completeCallBack?.Invoke(); completeCallback_in?.Invoke(); }); }
private void AlphaFadeOut(float tweenDelay, float tweenTime, EaseAnim ease, Action completeCallBack) { fObjectR.SetActive(true); SimpleTween.Value(gameObject, 1.0f, 0.0f, tweenTime).SetEase(EaseAnim.EaseInCirc).SetOnUpdate((float val) => { fObjectR.SetAlphaK(val); }). SetDelay(tweenDelay).SetEase(ease). AddCompleteCallBack(() => { fObjectR.SetActive(false); if (guiMask) { guiMask.gameObject.SetActive(false); } completeCallBack?.Invoke(); completeCallback_out?.Invoke(); }); }
private void SimpleMoveAlongPath(float delay, EaseAnim easeAnim, Action completeCallBack) { if (path == null || path.Count == 0) { // Debug.Log("move start return"); if (completeCallBack != null) { completeCallBack(); } return; } // Debug.Log("move start"); pathPoints = new Vector2[path.Count + 1]; pathPoints[0] = transform.localPosition; for (int i = 1; i < pathPoints.Length; i++) { pathPoints[i] = path[i - 1].gCell.transform.localPosition; } moving = true; PolyLine plPath = new PolyLine(pathPoints); float time = plPath.Length / speed; int segNumber = 0; tweenID = SimpleTween.Value(gameObject, 0, plPath.Length, time). SetOnUpdate((float d) => { if (this) { gameObject.transform.localPosition = plPath.GetPolyLinePosition(d, out segNumber); if (path != null && segNumber < path.Count) { anchored = path[segNumber].gCell; } } }).SetEase(easeAnim).SetDelay(delay). AddCompleteCallBack(() => { // Debug.Log("tween complete callback"); moving = false; if (completeCallBack != null) { completeCallBack(); } }).ID; }
private void ScaleOut(float tweenDelay, float tweenTime, EaseAnim ease, Action completeCallBack) { if (!guiPanel) { completeCallBack?.Invoke(); completeCallback_in?.Invoke(); return; } RectTransform mainRT = GetComponent <RectTransform>(); Vector3[] vC = new Vector3[4]; mainRT.GetWorldCorners(vC); Vector3[] vC1 = new Vector3[4]; guiPanel.GetWorldCorners(vC1); float height = (vC1[2] - vC1[0]).y; float width = (vC1[2] - vC1[0]).x; Vector3 pos = guiPanel.position; Vector3 pos1 = pos; float fTime = winOptions.outScaleAnim.time; Vector3 locScale = guiPanel.localScale; Vector3 startScale = guiPanel.localScale; switch (winOptions.outScaleAnim.scaleType) { case ScaleType.CenterXY: locScale = new Vector3(0, 0, 0); break; case ScaleType.CenterX: locScale = new Vector3(locScale.x, 0, 0); break; case ScaleType.CenterY: locScale = new Vector3(0, locScale.y, 0); break; case ScaleType.Top: locScale = new Vector3(locScale.x, 0, 0); break; case ScaleType.Bottom: locScale = new Vector3(locScale.x, 0, 0); break; case ScaleType.Left: locScale = new Vector3(0, locScale.y, 0); break; case ScaleType.Right: locScale = new Vector3(0, locScale.y, 0); break; } float posY = guiPanel.position.y; float posX = guiPanel.position.x; float posZ = guiPanel.position.z; SimpleTween.Value(gameObject, startScale, locScale, fTime).SetOnUpdate((val) => { if (winOptions.outScaleAnim.scaleType == ScaleType.Top) { if (guiPanel) { guiPanel.position = new Vector3(posX, posY + height / 2.0f * (startScale.y - val.y), pos.z); } } else if (winOptions.outScaleAnim.scaleType == ScaleType.Bottom) { if (guiPanel) { guiPanel.position = new Vector3(posX, posY - height / 2.0f * (startScale.y - val.y), pos.z); } } else if (winOptions.outScaleAnim.scaleType == ScaleType.Left) { if (guiPanel) { guiPanel.position = new Vector3(posX - width / 2.0f * (startScale.x - val.x), posY, pos.z); } } else if (winOptions.outScaleAnim.scaleType == ScaleType.Right) { if (guiPanel) { guiPanel.position = new Vector3(posX + width / 2.0f * (startScale.x - val.x), posY, pos.z); } } if (guiPanel) { guiPanel.localScale = val; } }).SetDelay(tweenDelay).SetEase(ease). AddCompleteCallBack(() => { if (guiPanel) { guiPanel.gameObject.SetActive(false); } if (backGround) { backGround.gameObject.SetActive(false); } if (guiMask) { guiMask.gameObject.SetActive(false); } completeCallBack?.Invoke(); completeCallback_out?.Invoke(); }); }
private void ScaleIn(float tweenDelay, float tweenTime, EaseAnim ease, Action completeCallBack) { if (!guiPanel) { completeCallBack?.Invoke(); completeCallback_in?.Invoke(); return; } RectTransform mainRT = GetComponent <RectTransform>(); Vector3[] wC = new Vector3[4]; mainRT.GetWorldCorners(wC); Vector3[] wC1 = new Vector3[4]; guiPanel.GetWorldCorners(wC1); float height = (wC1[2] - wC1[0]).y; float width = (wC1[2] - wC1[0]).x; float fTime = winOptions.inScaleAnim.time; Vector3 scaleTo = guiPanel.localScale; Vector3 scale = scaleTo; switch (winOptions.inScaleAnim.scaleType) { case ScaleType.CenterXY: scale = new Vector3(0, 0, 0); break; case ScaleType.CenterX: scale = new Vector3(scaleTo.x, 0, 0); break; case ScaleType.CenterY: scale = new Vector3(0, scaleTo.y, 0); break; case ScaleType.Top: guiPanel.position = guiPanel.position + new Vector3(0, height / 2f, 0); scale = new Vector3(scaleTo.x, 0, 0); break; case ScaleType.Bottom: guiPanel.position = guiPanel.position - new Vector3(0, height / 2f, 0); scale = new Vector3(scaleTo.x, 0, 0); break; case ScaleType.Left: guiPanel.position = guiPanel.position - new Vector3(width / 2f, 0, 0); scale = new Vector3(0, scaleTo.y, 0); break; case ScaleType.Right: guiPanel.position = guiPanel.position + new Vector3(width / 2f, 0, 0); scale = new Vector3(0, scaleTo.y, 0); break; } float posY = guiPanel.position.y; float posX = guiPanel.position.x; float posZ = guiPanel.position.z; SimpleTween.Value(gameObject, scale, scaleTo, fTime).SetOnUpdate((val) => { guiPanel.localScale = val; if (winOptions.inScaleAnim.scaleType == ScaleType.Top) { if (guiPanel) { guiPanel.position = new Vector3(posX, posY - height / 2.0f * val.y, guiPanel.position.z); } } else if (winOptions.inScaleAnim.scaleType == ScaleType.Bottom) { if (guiPanel) { guiPanel.position = new Vector3(posX, posY + height / 2.0f * val.y, posZ); } } else if (winOptions.inScaleAnim.scaleType == ScaleType.Left) { if (guiPanel) { guiPanel.position = new Vector3(posX + width / 2.0f * val.x, posY, posZ); } } else if (winOptions.inScaleAnim.scaleType == ScaleType.Right) { if (guiPanel) { guiPanel.position = new Vector3(posX - width / 2.0f * val.x, posY, posZ); } } }).SetDelay(tweenDelay).SetEase(ease). AddCompleteCallBack(() => { completeCallBack?.Invoke(); completeCallback_in?.Invoke(); }); }
private void MoveOut(float tweenDelay, float tweenTime, EaseAnim ease, Action completeCallBack) { if (!guiPanel) { completeCallBack?.Invoke(); completeCallback_out?.Invoke(); return; } RectTransform mainRT = GetComponent <RectTransform>(); Vector3[] wC = new Vector3[4]; mainRT.GetWorldCorners(wC); Vector3[] wC1 = new Vector3[4]; guiPanel.GetWorldCorners(wC1); float height = (wC1[2] - wC1[0]).y; float width = (wC1[2] - wC1[0]).x; Vector3 pos = guiPanel.position; Vector3 posTo = pos; float fTime = winOptions.outMoveAnim.time; // guiPanel.pivot = new Vector2(0.5f, 0.5f); switch (winOptions.outMoveAnim.toPosition) { case Position.LeftMiddleOut: posTo = new Vector3(wC[0].x - width / 2f, (wC[0].y + wC[2].y) / 2f, pos.z); break; case Position.RightMiddleOut: posTo = new Vector3(wC[2].x + width / 2f, (wC[0].y + wC[2].y) / 2f, pos.z); break; case Position.MiddleBottomOut: posTo = new Vector3((wC[0].x + wC[2].x) / 2f, wC[0].y - height / 2f, pos.z); break; case Position.MiddleTopOut: posTo = new Vector3((wC[0].x + wC[2].x) / 2f, wC[2].y + height / 2f, pos.z); break; case Position.LeftMiddleIn: posTo = new Vector3(wC[0].x + width / 2f, (wC[0].y + wC[2].y) / 2f, pos.z); break; case Position.RightMiddleIn: posTo = new Vector3(wC[2].x - width / 2f, (wC[0].y + wC[2].y) / 2f, pos.z); break; case Position.MiddleBottomIn: posTo = new Vector3((wC[0].x + wC[2].x) / 2f, wC[0].y + height / 2f, pos.z); break; case Position.MiddleTopIn: posTo = new Vector3((wC[0].x + wC[2].x) / 2f, wC[2].y - height / 2f, pos.z); break; case Position.CustomPosition: posTo = winOptions.inMoveAnim.customPosition; break; case Position.AsIs: posTo = startPosition; break; case Position.Center: posTo = new Vector3((wC[0].x + wC[2].x) / 2f, (wC[0].y + wC[2].y) / 2f, pos.z); break; } SimpleTween.Value(gameObject, pos, posTo, fTime).SetOnUpdate((val) => { if (guiPanel) { guiPanel.position = val; // Debug.Log("moveout guiPanel.position :" + guiPanel.position); } }).SetDelay(tweenDelay).SetEase(ease). AddCompleteCallBack(() => { if (guiPanel) { guiPanel.gameObject.SetActive(false); } if (backGround) { backGround.gameObject.SetActive(false); } if (guiMask) { guiMask.gameObject.SetActive(false); } completeCallBack?.Invoke(); completeCallback_out?.Invoke(); }); }
public SimpleTweenObject SetEase(EaseAnim ease) { easeAnim = ease; switch (ease) { case EaseAnim.EaseInSine: EaseFunc = EaseInSine; break; case EaseAnim.EaseOutSine: EaseFunc = EaseOutSine; break; case EaseAnim.EaseInOutSine: EaseFunc = EaseInOutSine; break; case EaseAnim.EaseInQuad: EaseFunc = EaseInQuad; break; case EaseAnim.EaseOutQuad: EaseFunc = EaseOutQuad; break; case EaseAnim.EaseInOutQuad: EaseFunc = EaseInOutQuad; break; case EaseAnim.EaseInCubic: EaseFunc = EaseInCubic; break; case EaseAnim.EaseOutCubic: EaseFunc = EaseOutCubic; break; case EaseAnim.EaseInOutCubic: EaseFunc = EaseInOutCubic; break; case EaseAnim.EaseInQuart: EaseFunc = EaseInQuart; break; case EaseAnim.EaseOutQuart: EaseFunc = EaseOutQuart; break; case EaseAnim.EaseInOutQuart: EaseFunc = EaseInOutQuart; break; case EaseAnim.EaseInQuint: EaseFunc = EaseInQuint; break; case EaseAnim.EaseOutQuint: EaseFunc = EaseOutQuint; break; case EaseAnim.EaseInOutQuint: EaseFunc = EaseInOutQuint; break; case EaseAnim.EaseInExpo: EaseFunc = EaseInExpo; break; case EaseAnim.EaseOutExpo: EaseFunc = EaseOutExpo; break; case EaseAnim.EaseInOutExpo: EaseFunc = EaseInOutExpo; break; case EaseAnim.EaseInCirc: EaseFunc = EaseInCirc; break; case EaseAnim.EaseOutCirc: EaseFunc = EaseOutCirc; break; case EaseAnim.EaseInOutCirc: EaseFunc = EaseInOutCirc; break; case EaseAnim.EaseInBack: EaseFunc = EaseInBack; break; case EaseAnim.EaseOutBack: EaseFunc = EaseOutBack; break; case EaseAnim.EaseInOutBack: EaseFunc = EaseInOutBack; break; case EaseAnim.EaseInElastic: EaseFunc = EaseInElastic; break; case EaseAnim.EaseOutElastic: EaseFunc = EaseOutElastic; break; case EaseAnim.EaseInOutElastic: EaseFunc = EaseInOutElastic; break; case EaseAnim.EaseInBounce: EaseFunc = EaseInBounce; break; case EaseAnim.EaseOutBounce: EaseFunc = EaseOutBounce; break; case EaseAnim.EaseInOutBounce: EaseFunc = EaseInOutBounce; break; default: EaseFunc = EaseLinear; break; } return(this); }
public void MoveAlongPath(GameObject gObject, Transform relativeTo, float time, float delay, EaseAnim easeAnim, Action completeCallBack) { SimpleTween.Value(gObject, 0, curve.Length, time). SetOnUpdate((float d) => { if (gObject) { gObject.transform.position = relativeTo.TransformPoint(curve.GetPosition(d)); } }).SetEase(easeAnim).SetDelay(delay). AddCompleteCallBack(() => { if (completeCallBack != null) { completeCallBack(); } }); }