public override IEnumerator Execute(GameObject target, IAction[] actions, int index) { animElement = canvasElement.GetComponent <RectTransform>(); var pos = (VariablesManager.GetLocal(canvasElement, "originalPosition", true)); OriginalStartPosition = (Vector3)pos; AnimInPosition = new Vector3(OriginalStartPosition.x, OriginalStartPosition.y, OriginalStartPosition.z); AnimOutPositionTop = new Vector3(animElement.localPosition.x, Screen.height, animElement.localPosition.z); AnimOutPositionBottom = new Vector3(animElement.localPosition.x, -Screen.height, animElement.localPosition.z); AnimOutPositionLeft = new Vector3(-Screen.width, animElement.localPosition.y, animElement.localPosition.z); AnimOutPositionRight = new Vector3(Screen.width, animElement.localPosition.y, animElement.localPosition.z); AnimOutPositionTopLeft = new Vector3(Screen.width, Screen.height, animElement.localPosition.z); AnimOutPositionTopRight = new Vector3(-Screen.width, Screen.height, animElement.localPosition.z); AnimOutPositionBottomRight = new Vector3(Screen.width, -Screen.height, animElement.localPosition.z); AnimOutPositionBottomLeft = new Vector3(-Screen.width, -Screen.height, animElement.localPosition.z); float vMoveSpeed = AnimateDuration.GetValue(target); if (vMoveSpeed < 0.2f) { vMoveSpeed = 0.2f; } float initTime = Time.time; switch (this.alignment) { case ALIGN.Top: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionTop, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.Bottom: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionBottom, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.Left: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionLeft, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.Right: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionRight, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.TopLeftCorner: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionTopLeft, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.TopRightCorner: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionTopRight, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.BottomLeftCorner: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionBottomLeft, AnimInPosition, easeValue ); yield return(null); } break; case ALIGN.BottomRightCorner: while (Time.time - initTime < vMoveSpeed) { if (animElement == null) { break; } float t = (Time.time - initTime) / vMoveSpeed; float easeValue = Easing.GetEase(easing, 0.0f, 1.0f, t); animElement.localPosition = Vector3.Lerp( AnimOutPositionBottomRight, AnimInPosition, easeValue ); yield return(null); } break; } yield return(new WaitForSeconds(0.2f)); }
private static string OnMatch_LocalOtherName(FormulaData data, string clause) { string name = ClauseParseName(clause, data); return(Convert.ToSingle(VariablesManager.GetLocal(data.target.gameObject, name, true)).ToString(CULTURE)); }