public BasePopup Add(string name, bool force = false) { GameObject go = Instantiate(Resources.Load <GameObject>(name), transform); go.SetActive(false); BasePopup popup = go.GetComponent <BasePopup>(); if (_popups.Count > 0 && !force) { _queue.Enqueue(popup); } else { Open(popup); } return(popup); }