public static void Show(string[] buttons, Action<string> callback) { if (instance != null) { callback(""); return; } AUIManager.Instance.canBackButton = false; instance = ((GameObject)Instantiate((Resources.Load("AUIActionSheet") as GameObject))).GetComponent<AUIActionSheet>(); instance.transform.SetParent(AUIManager.Instance.sizedCanvas, false); instance.transform.SetAsLastSibling(); instance.GetComponent<RectTransform>().sizeDelta = AUIManager.Instance.sizedCanvas.sizeDelta; instance.callback = callback; // Buttons if (buttons.Length == 1) { RectTransform buttonRectTransform = (Instantiate(instance.prfbSingleButton) as GameObject).GetComponent<RectTransform>(); buttonRectTransform.SetParent(instance.buttonsRectTransform, false); buttonRectTransform.SetAsFirstSibling(); Button button = buttonRectTransform.GetComponent<Button>(); button.transform.GetChild(0).GetComponent<Text>().text = buttons[0]; button.onClick.AddListener(() => { instance.StartCoroutine(instance.Hide(buttons[0])); }); } else { for (int i = buttons.Length - 1; i >= 0; i--) { RectTransform buttonRectTransform; if (i == buttons.Length - 1) { buttonRectTransform = (Instantiate(instance.prfbBottomButton) as GameObject).GetComponent<RectTransform>(); } else if (i == 0) { buttonRectTransform = (Instantiate(instance.prfbTopButton) as GameObject).GetComponent<RectTransform>(); } else { buttonRectTransform = (Instantiate(instance.prfbCenterButton) as GameObject).GetComponent<RectTransform>(); } buttonRectTransform.SetParent(instance.buttonsRectTransform, false); buttonRectTransform.SetAsFirstSibling(); Button button = buttonRectTransform.GetComponent<Button>(); button.transform.GetChild(0).GetComponent<Text>().text = buttons[i]; string strButton = buttons[i]; button.onClick.AddListener(() => { instance.StartCoroutine(instance.Hide(strButton)); }); } } }
IEnumerator Hide(string button) { instance = null; this.callbackButton = button; yield return new WaitForSeconds(duration); FadeOut(); iTween.ValueTo(this.gameObject, iTween.Hash("time", duration, "easetype", easetype, "to", AUIManager.Instance.sizedCanvas.rect.y, "from", 0f, "onupdate", "OnUpdatePosition", "oncomplete", "OnHideComplete")); }