public override GameObject Create(RichElement element)
        {
            var imageSizeableElement = element as UGUIRichElementImageSizeable;

            if (imageSizeableElement != null)
            {
                var gameObject = base.Create(element);
                if (gameObject != null)
                {
                    var image = gameObject.GetComponent <Image>();
                    if (image != null)
                    {
                        // first delete ContentSizeFitter
                        // TODO improve ?
                        RichTextUtil.DestroyComponent <ContentSizeFitter>(gameObject);
                        // then set size
                        var size = imageSizeableElement.GetSize();
                        image.rectTransform.sizeDelta = size;
                    }
                }

                return(gameObject);
            }

            return(null);
        }
示例#2
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);
        }
示例#3
0
        protected void CreatePivot()
        {
            RichTextUtil.ReleaseGameObject(m_pivotTransform);
            var pivotGO = RichTextUtil.CreateGameObject("Pivot", gameObject);

            Debug.Assert(pivotGO != null);
            m_pivotTransform = pivotGO.transform;
        }
示例#4
0
        protected NGUIRichElementAnimationImage CreateAnimImageElement(string image, string url, uint count, float fps)
        {
            Action openURLHandler = null;

            if (!string.IsNullOrEmpty(url))
            {
                openURLHandler = () => { RichTextUtil.OpenURL(url); };
            }

            return(new NGUIRichElementAnimationImage(image, openURLHandler, count, fps));
        }
示例#5
0
        protected NGUIRichElementImageSizeable CreateImageSizeableElement(string image, string url, Vector2 size)
        {
            Action openURLHandler = null;

            if (!string.IsNullOrEmpty(url))
            {
                openURLHandler = () => { RichTextUtil.OpenURL(url); };
            }

            return(new NGUIRichElementImageSizeable(image, openURLHandler, size));
        }
示例#6
0
        protected UGUIRichElementImage CreateImageElement(string image, string url)
        {
            Action openURLHandler = null;

            if (!string.IsNullOrEmpty(url))
            {
                openURLHandler = () => { RichTextUtil.OpenURL(url); };
            }

            return(new UGUIRichElementImage(image, openURLHandler));
        }
示例#7
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);
        }
示例#8
0
        protected NGUIRichElementText CreateTextElement(string text, string fontStyle, bool underline, string url)
        {
            Action openURLHandler = null;

            if (!string.IsNullOrEmpty(url))
            {
                openURLHandler = () => { RichTextUtil.OpenURL(url); };
            }

            if (underline)
            {
                return(new NGUIRichElementTextUnderline(text, fontStyle, openURLHandler));
            }
            else
            {
                return(new NGUIRichElementText(text, fontStyle, openURLHandler));
            }
        }
示例#9
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);
        }