public GameObject CreateText(string text, string style, Action clickHandler) { var textGOPrefab = GetTextPrefab(style); if (textGOPrefab) { var textPool = GetTextPool(style); var textGO = textPool.Spawn(textGOPrefab); var textComp = textGO.GetComponent <Text>(); if (!textComp) { Debug.LogError("[UGUIGameObjectManager]Error to get Text component : " + style); textPool.Release(textGO); return(null); } textComp.text = text; // handler click handler var uguiClickHandler = RichTextUtil.GetOrAddComponent <UGUIClickHandler>(textGO); Debug.Assert(uguiClickHandler != null); // first clear uguiClickHandler.ClearHandlers(); // then add handler if (clickHandler != null) { uguiClickHandler.AddHandler(clickHandler); } return(textGO); } return(null); }
public GameObject CreateImage(string imageName, Action clickHandler) { var imagePrefab = GetImagePrefab(); if (imagePrefab) { var imageGO = m_imagePool.Spawn(imagePrefab); var imageComp = imageGO.GetComponent <UISprite>(); if (!imageComp) { Debug.LogError("[NGUIGameObjectManager]Error to get UISprite component : " + imageName); m_imagePool.Release(imageGO); return(null); } // get atlas name and sprite name var imageInfo = imageName.Split('.'); if (imageInfo.Length < 2) { Debug.LogError("[NGUIGameObjectManager]Error to get atlas name and sprite name : " + imageName); m_imagePool.Release(imageGO); return(null); } var atlasName = imageInfo[0]; var spriteName = imageInfo[1]; imageComp.atlas = GetImageAtlas(atlasName); imageComp.spriteName = spriteName; // NOTE not so sure about this ... imageComp.MakePixelPerfect(); // add collider to widget first NGUITools.AddWidgetCollider(imageGO); // handler click handler var nguiClickHandler = RichTextUtil.GetOrAddComponent <NGUIClickHandler>(imageGO); Debug.Assert(nguiClickHandler != null); // first clear nguiClickHandler.ClearHandlers(); // then add handler if (clickHandler != null) { nguiClickHandler.AddHandler(clickHandler); } return(imageGO); } return(null); }
public GameObject CreateImage(string imageName, Action clickHandler) { var imagePrefab = GetImagePrefab(); if (imagePrefab) { var imageGO = m_imagePool.Spawn(imagePrefab); var imageComp = imageGO.GetComponent <Image>(); if (!imageComp) { Debug.LogError("[UGUIGameObjectManager]Error to get Image component : " + imageName); m_imagePool.Release(imageGO); return(null); } imageComp.sprite = GetImageSprite(imageName); // NOTE not so sure about this ... imageComp.type = Image.Type.Simple; imageComp.preserveAspect = true; imageComp.SetNativeSize(); // handler click handler var uguiClickHandler = RichTextUtil.GetOrAddComponent <UGUIClickHandler>(imageGO); Debug.Assert(uguiClickHandler != null); // first clear uguiClickHandler.ClearHandlers(); // then add handler if (clickHandler != null) { uguiClickHandler.AddHandler(clickHandler); } return(imageGO); } return(null); }