public void showSingleButtonModal(string content) { QueuedModalInfo new_modal_info = new QueuedModalInfo(); new_modal_info.content_text = content; m_modal_queue.Add(new_modal_info); }
private void popModal() { QueuedModalInfo next_modal_in_queue = m_modal_queue[0]; StartCoroutine(showModal(next_modal_in_queue)); m_modal_queue.RemoveAt(0); }
private IEnumerator showModal(QueuedModalInfo modal_info) { //this could be implemented to recieve various button texts, calbacks etc but I am keeping it simple here m_modal_is_showing = true; m_modal_dismissed = false; //setup the modal text etc m_content_text.text = modal_info.content_text; m_blocker_image.gameObject.SetActive(true); //transition the modal in float enter_lifetime = 0.0f; while (enter_lifetime < m_modal_transition_time) { float normalized_transition = enter_lifetime / m_modal_transition_time; Color blocker_color = Color.Lerp(Color.clear, m_blocker_color, normalized_transition); m_blocker_image.color = blocker_color; Vector2 modal_position = Vector2.Lerp(m_modal_rest_position, Vector2.zero, normalized_transition); m_modal_base_transform.anchoredPosition = modal_position; yield return(0); enter_lifetime += Time.deltaTime; } //force the final color, position m_blocker_image.color = m_blocker_color; m_modal_base_transform.anchoredPosition = Vector2.zero; //wait for a button press yield return(new WaitUntil(() => m_modal_dismissed == true)); //transition the modal out float exit_lifetime = 0.0f; while (exit_lifetime < m_modal_transition_time) { float normalized_transition = 1 - (exit_lifetime / m_modal_transition_time); Color blocker_color = Color.Lerp(Color.clear, m_blocker_color, normalized_transition); m_blocker_image.color = blocker_color; Vector2 modal_position = Vector2.Lerp(m_modal_rest_position, Vector2.zero, normalized_transition); m_modal_base_transform.anchoredPosition = modal_position; yield return(0); exit_lifetime += Time.deltaTime; } //wrap it up m_blocker_image.gameObject.SetActive(false); m_modal_is_showing = false; }
public void MessageBox(QueuedModalInfo info) { MessageBox(info.iconPic, info.title, info.question, info.yesEvent, info.noEvent, info.cancelEvent, info.okEvent, info.iconActive, info.messageType); }