/// <summary> /// 回收窗体 /// </summary> /// <param name="formScript">窗体对象</param> private void RecycleForm(UIFormScript formScript) { if (formScript == null) { return; } if (formScript.useFormPool) { formScript.Hide(enFormHideFlag.HideByCustom, true); m_pooledForms.Add(formScript); } else { try { if (formScript.canvasScaler != null) { formScript.canvasScaler.enabled = false; } UnityEngine.Object.Destroy(formScript.gameObject); } catch (Exception ex) { UnityEngine.Debug.AssertFormat(false, "Error destroy {0} formScript gameObject: message: {1}, callstack: {2}", new object[] { formScript.name, ex.Message, ex.StackTrace }); } } }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } m_canvas = GetComponent <Canvas>(); base.Initialize(formScript); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_text = gameObject.GetComponent <Text>(); SetDisplay(); }
/// <summary> ///根据窗体对象关闭窗体 /// </summary> /// <param name="formScript">窗体对象</param> public void CloseForm(UIFormScript formScript) { for (int i = 0; i < m_forms.Count; i++) { if (m_forms[i] == formScript) { m_forms[i].Close(); } } }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_animator = gameObject.GetComponent <Animator>(); m_isEnableBeHide = enabled; m_isEnableAnimatorBeHide = m_animator.enabled; }
public void Clear() { srcFormScript = null; srcWidget = null; srcWidgetScript = null; srcWidgetBelongedListScript = null; SrcWidgetIndexInBelongedList = -1; pointerEventData = null; eventID = enUIEventID.None; inUse = false; }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_toggle = GetComponentInChildren <Toggle>(base.gameObject); if (m_toggle != null) { m_toggle.interactable = false; } }
public static UIFormScript GetFormScript(Transform transform) { if (transform == null) { return(null); } UIFormScript component = transform.gameObject.GetComponent <UIFormScript>(); if (component != null) { return(component); } return(UIUtility.GetFormScript(transform.parent)); }
/// <summary> /// 排序比较函数 /// </summary> /// <param name="obj"></param> /// <returns></returns> public int CompareTo(object obj) { UIFormScript uiFormScript = obj as UIFormScript; if (m_sortingOrder > uiFormScript.m_sortingOrder) { return(1); } else if (m_sortingOrder == uiFormScript.m_sortingOrder) { return(0); } return(-1); }
public virtual void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } belongedFormScript = formScript; if (belongedFormScript != null) { belongedFormScript.AddUIComponent(this); SetSortingOrder(belongedFormScript.GetSortingOrder()); } m_isInitialized = true; }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_animation = gameObject.GetComponent <Animation>(); if (m_animation != null && m_animation.playAutomatically && m_animation.clip != null) { m_currentAnimationState = m_animation[m_animation.clip.name]; m_currentAnimationTime = 0f; DispatchAnimationEvent(enAnimationEventType.AnimationStart); } }
/// <summary> /// 打开窗体 /// </summary> /// <param name="formPath">窗体路径</param> /// <param name="useFormPool">是否从窗体对象次取</param> /// <param name="useCameraRenderMode">是否使用摄像机渲染</param> /// <returns></returns> public UIFormScript OpenForm(string formPath, bool useFormPool, bool useCameraRenderMode = true) { UIFormScript uiFormScript = GetUnCloseForm(formPath); if (uiFormScript != null && uiFormScript.isSingleton) { RemoveFromExistFormSequenceList(uiFormScript.GetSequence()); AddToExistFormSequenceList(m_formSequence); int formOpenOrder = GetFormOpenOrder(m_formSequence); uiFormScript.Open(m_formSequence, true, formOpenOrder); m_formSequence++; m_needSortForms = true; return(uiFormScript); } GameObject gameObject = CreateForm(formPath, useFormPool); if (gameObject == null) { return(null); } if (!gameObject.activeSelf) { gameObject.SetActive(true); } string formName = GetFormName(formPath); gameObject.name = formName; if (gameObject.transform.parent != m_uiRoot.transform) { gameObject.transform.SetParent(m_uiRoot.transform); } uiFormScript = gameObject.GetComponent <UIFormScript>(); if (uiFormScript != null) { AddToExistFormSequenceList(m_formSequence); int formOpenOrder2 = GetFormOpenOrder(m_formSequence); uiFormScript.Open(formPath, (!useCameraRenderMode) ? null : m_formCamera, m_formSequence, false, formOpenOrder2); if (uiFormScript.group > 0) { CloseGroupForm(uiFormScript.group); } m_forms.Add(uiFormScript); } m_formSequence++; m_needSortForms = true; return(uiFormScript); }
public static void SetImageSprite(Image image, string prefabPath, UIFormScript formScript, bool loadSync = true, bool needCached = false, bool unloadBelongedAssetBundleAfterLoaded = false, bool isShowSpecMatrial = false) { if (image == null) { return; } if (loadSync) { UIUtility.SetImageSprite(image, UIUtility.GetSpritePrefeb(prefabPath, needCached, unloadBelongedAssetBundleAfterLoaded), isShowSpecMatrial); } else { image.color = new Color(image.color.r, image.color.g, image.color.b, 0f); formScript.AddAsyncLoadedImage(image, prefabPath, needCached, unloadBelongedAssetBundleAfterLoaded, isShowSpecMatrial); } }
public static GameObject FindChild(this UIFormScript form, string path) { if (form == null) { return(null); } Transform mTran = form.transform.Find(path); if (mTran == null) { Debug.LogError("没有找到该对象:" + path); return(null); } return(mTran.gameObject); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); if (m_runImmediately) { StartTimer(); } m_timerText = base.GetComponentInChildren <Text>(gameObject); if (timerDisplayType == enTimerDisplayType.None && m_timerText != null) { m_timerText.gameObject.SetActive(false); } RefreshTimeDisplay(); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_image = gameObject.GetComponent <Image>(); if (m_image != null) { m_defaultSprite = m_image.sprite; m_defaultColor = m_image.color; //if (m_image is Image2) //{ // Image2 image = m_image as Image2; // m_defaultLayout = image.alphaTexLayout; //} } if (m_autoAddUIEventScript) { UIEventScript uiEventScript = base.gameObject.GetComponent <UIEventScript>(); if (uiEventScript == null) { uiEventScript = base.gameObject.AddComponent <UIEventScript>(); uiEventScript.Initialize(formScript); } } if (!m_useSetActiveForDisplay) { m_canvasGroup = base.gameObject.GetComponent <CanvasGroup>(); if (m_canvasGroup == null) { m_canvasGroup = base.gameObject.AddComponent <CanvasGroup>(); } } m_defaultSize = GetDefaultSize(); InitRectTransform(); if (m_textObj != null) { m_defaultTextColor = m_textObj.color; } }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); for (int i = 0; i < gameObject.transform.childCount; i++) { GameObject gameObject1 = gameObject.transform.GetChild(i).gameObject; if (m_elementTemplate == null) { m_elementTemplate = gameObject1; m_elementName = gameObject1.name; m_elementTemplate.name = m_elementName + "_Template"; if (m_elementTemplate.activeSelf) { m_elementTemplate.SetActive(false); } } gameObject1.SetActive(false); } if (prepareElementAmount > 0) { for (int j = 0; j < prepareElementAmount; j++) { GameObject gameObject2 = GameObject.Instantiate(m_elementTemplate); gameObject2.gameObject.name = m_elementName; base.InitializeComponent(gameObject2.gameObject); if (gameObject2.activeSelf) { gameObject2.SetActive(false); } if (gameObject2.transform.parent != gameObject.transform) { gameObject2.transform.SetParent(gameObject.transform, true); gameObject2.transform.localScale = Vector3.one; } m_unusedElements.Add(gameObject2); } } }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } if (isMultiSelected) { m_multiSelected = new bool[elementAmount]; for (int i = 0; i < elementAmount; i++) { m_multiSelected[i] = false; } } else { m_selected = -1; } base.Initialize(formScript); }
/// <summary> /// 获取顶部窗体 /// </summary> /// <returns></returns> public UIFormScript GetTopForm() { UIFormScript uiFormScript = null; for (int i = 0; i < m_forms.Count; i++) { if (!(m_forms[i] == null)) { if (uiFormScript == null) { uiFormScript = m_forms[i]; } else if (m_forms[i].GetSortingOrder() > uiFormScript.GetSortingOrder()) { uiFormScript = m_forms[i]; } } } return(uiFormScript); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } LoadRes(); InitializeRenderers(); base.Initialize(formScript); if (isFixScaleToForm) { ResetScale(); } if (isFixScaleToParticleSystem) { ResetParticleScale(); } if (belongedFormScript.IsHided()) { Hide(); } }
/// <summary> /// 创建窗体 /// </summary> /// <param name="formPrefabPath">窗体路径</param> /// <param name="useFormPool">是否从窗体对象池去</param> /// <returns>对象</returns> private GameObject CreateForm(string formPrefabPath, bool useFormPool) { GameObject gameObject = null; if (useFormPool) { for (int i = 0; i < m_pooledForms.Count; ++i) { if (string.Equals(formPrefabPath, m_pooledForms[i].formPath, StringComparison.OrdinalIgnoreCase)) { m_pooledForms[i].Appear(enFormHideFlag.HideByCustom, true); gameObject = m_pooledForms[i].gameObject; m_pooledForms.RemoveAt(i); break; } } } if (gameObject == null) { GameObject gameObject2 = (GameObject)Singleton <ResourceManager> .GetInstance().GetResource(formPrefabPath, typeof(GameObject), enResourceType.UIForm, false, false).content; if (gameObject2 == null) { return(null); } gameObject = (GameObject)UnityEngine.Object.Instantiate(gameObject2); } if (gameObject != null) { UIFormScript component = gameObject.GetComponent <UIFormScript>(); if (component != null) { component.useFormPool = useFormPool; } } return(gameObject); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } m_toggle = gameObject.GetComponent <Toggle>(); m_toggle.onValueChanged.RemoveAllListeners(); m_toggle.onValueChanged.AddListener(new UnityAction <bool>(OnToggleValueChanged)); Transform transform = gameObject.transform.Find("Label"); if (transform != null) { if (m_toggle.isOn) { transform.GetComponent <Text>().color = UIUtility.s_Color_White; } else { transform.GetComponent <Text>().color = UIUtility.s_Text_Color_ListElement_Normal; } } base.Initialize(formScript); }
public override void Initialize(UIFormScript formScript) { if (m_isInitialized) { return; } base.Initialize(formScript); m_selectedElementIndex = -1; m_lastSelectedElementIndex = -1; scrollRect = GetComponentInChildren <ScrollRect>(gameObject); if (scrollRect != null) { scrollRect.enabled = false; RectTransform rectTransform = scrollRect.transform as RectTransform; scrollAreaSize = new Vector2(rectTransform.rect.width, rectTransform.rect.height); m_content = scrollRect.content.gameObject; } m_scrollBar = base.GetComponentInChildren <Scrollbar>(gameObject); if (listType == enUIListType.Vertical || listType == enUIListType.VerticalGrid) { if (m_scrollBar != null) { m_scrollBar.direction = Scrollbar.Direction.BottomToTop; } // DebugHelper.Assert(scrollRect != null); if (scrollRect != null) { scrollRect.horizontal = false; scrollRect.vertical = true; scrollRect.horizontalScrollbar = null; scrollRect.verticalScrollbar = m_scrollBar; } } else if (listType == enUIListType.Horizontal || listType == enUIListType.HorizontalGrid) { if (m_scrollBar != null) { m_scrollBar.direction = Scrollbar.Direction.LeftToRight; } // DebugHelper.Assert(scrollRect != null); if (scrollRect != null) { scrollRect.horizontal = true; scrollRect.vertical = false; scrollRect.horizontalScrollbar = m_scrollBar; scrollRect.verticalScrollbar = null; } } m_elementScripts = new List <UIListElementScript>(); m_unUsedElementScripts = new List <UIListElementScript>(); if (useOptimized && m_elementsRect == null) { m_elementsRect = new List <stRect>(); } UIListElementScript uiListElementScript = null; if (useExternalElement) { GameObject gameObject1 = null; if (externalElementPrefabPath != null) { gameObject1 = (GameObject)Singleton <ResourceManager> .GetInstance().GetResource(externalElementPrefabPath, typeof(GameObject), enResourceType.UIPrefab, false, false).content; if (gameObject1 != null) { uiListElementScript = gameObject1.GetComponent <UIListElementScript>(); } } if (uiListElementScript != null && gameObject1 != null) { uiListElementScript.Initialize(formScript); m_elementTemplate = gameObject1; m_elementName = gameObject1.name; m_elementDefaultSize = uiListElementScript.m_defaultSize; } } else { uiListElementScript = GetComponentInChildren <UIListElementScript>(gameObject); if (uiListElementScript != null) { uiListElementScript.Initialize(formScript); m_elementTemplate = uiListElementScript.gameObject; m_elementName = uiListElementScript.gameObject.name; m_elementDefaultSize = uiListElementScript.m_defaultSize; if (m_elementTemplate != null) { m_elementTemplate.name = m_elementName + "_Template"; } } } if (m_elementTemplate != null) { UIListElementScript component = m_elementTemplate.GetComponent <UIListElementScript>(); if (component != null && component.m_useSetActiveForDisplay) { m_elementTemplate.SetActive(false); } else { if (!m_elementTemplate.activeSelf) { m_elementTemplate.SetActive(true); } CanvasGroup canvasGroup = m_elementTemplate.GetComponent <CanvasGroup>(); if (canvasGroup == null) { canvasGroup = m_elementTemplate.AddComponent <CanvasGroup>(); } canvasGroup.alpha = 0f; canvasGroup.blocksRaycasts = false; } } if (m_content != null) { m_contentRectTransform = (m_content.transform as RectTransform); m_contentRectTransform.pivot = new Vector2(0f, 1f); m_contentRectTransform.anchorMin = new Vector2(0f, 1f); m_contentRectTransform.anchorMax = new Vector2(0f, 1f); m_contentRectTransform.anchoredPosition = Vector2.zero; m_contentRectTransform.localRotation = Quaternion.identity; m_contentRectTransform.localScale = new Vector3(1f, 1f, 1f); m_lastContentPosition = m_contentRectTransform.anchoredPosition; } if (extraContent != null) { RectTransform rectTransform2 = extraContent.transform as RectTransform; rectTransform2.pivot = new Vector2(0f, 1f); rectTransform2.anchorMin = new Vector2(0f, 1f); rectTransform2.anchorMax = new Vector2(0f, 1f); rectTransform2.anchoredPosition = Vector2.zero; rectTransform2.localRotation = Quaternion.identity; rectTransform2.localScale = Vector3.one; if (m_elementTemplate != null) { rectTransform2.sizeDelta = new Vector2((m_elementTemplate.transform as RectTransform).rect.width, rectTransform2.sizeDelta.y); } if (rectTransform2.parent != null && m_content != null) { rectTransform2.parent.SetParent(m_content.transform); } extraContent.SetActive(false); } m_isExtraContentEnabled = true; if (m_elementTemplate != null) { SetElementAmount(elementAmount); } }
public static void SetSprite(this Image image, string prefabPath, UIFormScript formScript, bool loadSync = true, bool needCached = false, bool unloadBelongedAssetBundleAfterLoaded = false, bool isShowSpecMatrial = false) { UIUtility.SetImageSprite(image, prefabPath, formScript, loadSync, needCached, unloadBelongedAssetBundleAfterLoaded, isShowSpecMatrial); }
private void OpenMessageBoxBase(string strContent, bool isHaveCancelBtn, enUIEventID confirmID, enUIEventID cancelID, stUIEventParams par, bool isContentLeftAlign = false, string confirmStr = "", string cancelStr = "", string titleStr = "", int autoCloseTime = 0, enUIEventID timeUpID = enUIEventID.None) { UIFormScript uiFormScript = Singleton <UIManager> .GetInstance().OpenForm("UGUI/Form/Common/Form_MessageBox.prefab", false, false); if (uiFormScript == null) { return; } GameObject gameObject = uiFormScript.gameObject; if (gameObject == null) { return; } if (confirmStr == string.Empty) { confirmStr = Singleton <TextManager> .GetInstance().GetText("Common_Confirm"); } if (cancelStr == string.Empty) { cancelStr = Singleton <TextManager> .GetInstance().GetText("Common_Cancel"); } if (titleStr == string.Empty) { titleStr = Singleton <TextManager> .GetInstance().GetText("Common_MsgBox_Title"); } GameObject obj3 = gameObject.transform.Find("Panel/Panel/btnGroup/Button_Confirm").gameObject; obj3.GetComponentInChildren <Text>().text = confirmStr; GameObject obj4 = gameObject.transform.Find("Panel/Panel/btnGroup/Button_Cancel").gameObject; obj4.GetComponentInChildren <Text>().text = cancelStr; gameObject.transform.Find("Panel/Panel/title/Text").gameObject.GetComponentInChildren <Text>().text = titleStr; Text component = gameObject.transform.Find("Panel/Panel/Text").GetComponent <Text>(); component.text = strContent; if (!isHaveCancelBtn) { obj4.SetActive(false); } else { obj4.SetActive(true); } UIEventScript script2 = obj3.GetComponent <UIEventScript>(); UIEventScript script3 = obj4.GetComponent <UIEventScript>(); script2.SetUIEvent(enUIEventType.Click, confirmID, par); script3.SetUIEvent(enUIEventType.Click, cancelID, par); if (isContentLeftAlign) { component.alignment = TextAnchor.MiddleLeft; } if (autoCloseTime != 0) { Transform transform = uiFormScript.transform.Find("closeTimer"); if (transform != null) { UITimerScript script4 = transform.GetComponent <UITimerScript>(); if (script4 != null) { script4.SetTotalTime((float)autoCloseTime); script4.StartTimer(); script4.eventIDs[1] = timeUpID; script4.eventParamsArry[1] = par; } } } CloseSendMsgAlert(); }
protected virtual void OnDestroy() { belongedFormScript = null; belongedListScript = null; widgets = null; }