private IEnumerator OpeningMenu(ActionButtonGroup group) { Vector3 move = Vector3.left * speed; Transform[] buttonTansforms = group.buttons.Select(button => button.transform).ToArray(); foreach (Transform button in buttonTansforms) { button.gameObject.SetActive(true); } while (true) { float deltaTime = Time.deltaTime; for (int i = 0; i < buttonTansforms.Length; i++) { if (buttonTansforms[i].localPosition.x == buttonPositions[i]) continue; if (buttonTansforms[i].localPosition.x < buttonPositions[i]) { buttonTansforms[i].localPosition = new Vector3(buttonPositions[i], 0f, 0f); if (i == buttonTansforms.Length - 1) { yield break; } } else { buttonTansforms[i].localPosition += move * deltaTime; } } yield return null; } }
private IEnumerator ClosingMenu(ActionButtonGroup group) { const float closePosition = 375f; Vector3 move = Vector3.right * speed; Transform[] buttonTansforms = group.buttons.Select(button => button.transform).ToArray(); while (true) { float deltaTime = Time.deltaTime; for (int i = 0; i < buttonTansforms.Length; i++) { if (buttonTansforms[i].localPosition.x == closePosition) continue; if (buttonTansforms[i].localPosition.x > closePosition) { buttonTansforms[i].localPosition = new Vector3(closePosition, 0f, 0f); buttonTansforms[i].gameObject.SetActive(false); if (i == buttonTansforms.Length - 1) { yield break; } } else { buttonTansforms[i].localPosition += move * deltaTime; } } yield return null; } }