Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }