Beispiel #1
0
        public static GameObject CreateKnob(DefaultControls.Resources resources)
        {
            Transform parent = Selection.activeGameObject.transform;

            GameObject knob = DefaultControls.CreateImage(resources);

            knob.name = "Knob";
            Image knobImg = knob.GetComponent <Image>();

            knobImg.sprite = resources.knob;
            knobImg.rectTransform.sizeDelta = new Vector2(20, 20);
            knob.transform.SetParent(parent);
            knob.transform.localPosition = Vector3.zero;
            knob.AddComponent <Knob>();

            GameObject foreground = DefaultControls.CreateImage(resources);

            foreground.name = "Foreground";
            Image foregroundImg = foreground.GetComponent <Image>();

            foregroundImg.sprite = resources.knob;
            foregroundImg.rectTransform.sizeDelta = new Vector2(10, 10);
            foreground.transform.SetParent(knob.transform);
            foreground.transform.localPosition = Vector3.zero;

            return(knob);
        }
        public static GameObject CreateImage(Transform aParent)
        {
            var go = DefaultControls.CreateImage(GetStandardResources());

            go.transform.SetParent(aParent);
            return(go);
        }
Beispiel #3
0
    protected void UpdateQuadImage()
    {
#if UNITY_EDITOR
        //if (UnityEditor.PrefabUtility.GetPrefabType(this) == UnityEditor.PrefabType.Prefab)
        //Debug.Log(UnityEditor.PrefabUtility.GetPrefabAssetType(this));
        //Debug.Log(UnityEditor.PrefabUtility.GetPrefabInstanceStatus(this));
        if (UnityEditor.PrefabUtility.GetPrefabAssetType(this) == UnityEditor.PrefabAssetType.Regular)
        {
            return;
        }
#endif
        m_OutputText = GetOutputText(text);
        m_ImagesVertexIndex.Clear();
        foreach (Match match in s_ImageRegex.Matches(m_OutputText))
        {
            var picIndex = match.Index;
            var endIndex = picIndex * 4 + 3;
            m_ImagesVertexIndex.Add(endIndex);

            m_ImagesPool.RemoveAll(image => image == null);
            if (m_ImagesPool.Count == 0)
            {
                GetComponentsInChildren <Image>(m_ImagesPool);
            }
            if (m_ImagesVertexIndex.Count > m_ImagesPool.Count)
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                m_ImagesPool.Add(go.GetComponent <Image>());
            }

            var spriteName = match.Groups[1].Value;
            var size       = float.Parse(match.Groups[2].Value);
            var img        = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
            if (img.sprite == null || img.sprite.name != spriteName)
            {
                img.sprite = funLoadSprite != null?funLoadSprite(spriteName) :
                                 Resources.Load <Sprite>(spriteName);
            }
            img.rectTransform.sizeDelta = new Vector2(size, size);
            img.enabled = true;
        }

        for (var i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++)
        {
            if (m_ImagesPool[i])
            {
                m_ImagesPool[i].enabled = false;
            }
        }
    }
Beispiel #4
0
        protected void UpdateQuadImage()
        {
            m_ImagesVertexIndex.Clear();
            foreach (Match match in s_Regex.Matches(text))
            {
                var endIndex = match.Index * 4;
                m_ImagesVertexIndex.Add(endIndex);

                m_ImagesPool.RemoveAll(image => image == null);
                if (m_ImagesPool.Count == 0)
                {
                    GetComponentsInChildren <Image>(m_ImagesPool);
                }
                if (m_ImagesVertexIndex.Count > m_ImagesPool.Count)
                {
                    var resources = new DefaultControls.Resources();
                    var go        = DefaultControls.CreateImage(resources);
                    go.layer = gameObject.layer;
                    var rt = go.transform as RectTransform;
                    if (rt)
                    {
                        rt.SetParent(rectTransform);
                        rt.localPosition = Vector3.zero;
                        rt.localRotation = Quaternion.identity;
                        rt.localScale    = Vector3.one;
                    }
                    m_ImagesPool.Add(go.GetComponent <Image>());
                }

                var spriteName = match.Groups[1].Value;
                var size       = float.Parse(match.Groups[2].Value);
                var img        = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
                if (img.sprite == null || img.sprite.name != spriteName)
                {
                    img.sprite = Resources.Load <Sprite>(spriteName);
                }
                float x;
                float y;
                if (float.TryParse(match.Groups[4].Value, out x))
                {
                    offiX = x;
                }
                if (float.TryParse(match.Groups[5].Value, out y))
                {
                    offiY = y;
                }

                img.rectTransform.sizeDelta = new Vector2(size, size);
                img.enabled = true;
            }

            for (var i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++)
            {
                if (m_ImagesPool[i])
                {
                    m_ImagesPool[i].enabled = false;
                }
            }
        }
Beispiel #5
0
    static public void AddImage(MenuCommand menuCommand)
    {
        GameObject go;

        using (new FactorySwapToEditor())
            go = DefaultControls.CreateImage(MenuOptions.GetStandardResources());
        MenuOptions.PlaceUIElementRoot(go, menuCommand);
    }
Beispiel #6
0
        /// <summary>
        /// 创建默认图片对象
        /// </summary>
        /// <returns></returns>
        GameObject createDefaultImageObject()
        {
            var resources = new DefaultControls.Resources();
            var obj       = DefaultControls.CreateImage(resources);

            textObj.attachImage(obj);
            return(obj);
        }
        public static GameObject CreatUIWorld(DRes resources)
        {
            GameObject obj = DefaultControls.CreateImage(resources);

            obj.AddComponent <UIWorld>();
            obj.name = "Pl";
            return(obj);
        }
Beispiel #8
0
        static GameObject CreateImageEx(UIResources resources)
        {
            GameObject image = DefaultControls.CreateImage(UIDefaultControls.ConvertToDefaultResources(resources));

            image.name = "ImageEx";
            image.AddComponent <UIDragable>();
            image.AddComponent <ColorGradient>();
            return(image);
        }
Beispiel #9
0
        static public void AddImage(MenuCommand menuCommand)
        {
            GameObject go = DefaultControls.CreateImage(GetStandardResources());

            PlaceUIElementRoot(go, menuCommand);
            var image = go.GetComponent <Image>();

            image.raycastTarget = false;
        }
Beispiel #10
0
        static public void AddImage(MenuCommand menuCommand)
        {
            GameObject go    = DefaultControls.CreateImage(GetStandardResources());
            var        image = go.GetComponent <Image>();

            image.raycastTarget = CustomizeUGUICreate.IsRayCastTarget;
            image.sprite        = CustomizeUGUICreate.GetDefalutSprite(image.gameObject) ? CustomizeUGUICreate.GetDefalutSprite(image.gameObject) : image.sprite;
            image.material      = CustomizeUGUICreate.GetDefalutMaterial(image.gameObject) ? CustomizeUGUICreate.GetDefalutMaterial(image.gameObject) : image.material;
            PlaceUIElementRoot(go, menuCommand);
        }
    private GameObject CreateUIImage(float xSize, float ySize, float xPos, float yPos, GameObject contentHolder, Sprite sprite)
    {
        var uiImage = DefaultControls.CreateImage(uiResources);

        uiImage.transform.SetParent(contentHolder.transform, false);
        uiImage.GetComponent <RectTransform>().sizeDelta     = new Vector2(xSize, ySize);
        uiImage.GetComponent <RectTransform>().localPosition = new Vector2(xPos, yPos);
        uiImage.GetComponent <Image>().sprite = sprite;
        return(uiImage);
    }
Beispiel #12
0
        static public void AddImage(MenuCommand menuCommand)
        {
            GameObject go = DefaultControls.CreateImage(GetStandardResources());

            go.name = "Image Warp";

            WarpHelper.ConvertImageToImageWarp(go);

            PlaceUIElementRoot(go, menuCommand);
        }
Beispiel #13
0
 protected void UpdateQuadImage()
 {
     this.m_OutputText = this.GetOutputText();
     this.m_ImagesVertexIndex.Clear();
     this.m_ImagesFrontVertexIndex.Clear();
     foreach (Match match in this.s_Regex.Matches(this.m_OutputText))
     {
         int index = match.Index;
         this.m_ImagesFrontVertexIndex.Add(index * 4 - 1);
         int item = index * 4 + 3 + (match.Value.Length - 1) * 4;
         this.m_ImagesVertexIndex.Add(item);
         this.m_ImagesPool.RemoveAll((Image image) => image == null);
         if (this.m_ImagesPool.Count == 0)
         {
             base.GetComponentsInChildren <Image>(this.m_ImagesPool);
         }
         float num = float.Parse(match.Groups[2].Value);
         if (this.m_ImagesVertexIndex.Count > this.m_ImagesPool.Count)
         {
             GameObject gameObject = DefaultControls.CreateImage(default(DefaultControls.Resources));
             gameObject.layer = base.gameObject.layer;
             RectTransform rectTransform = gameObject.transform as RectTransform;
             if (rectTransform)
             {
                 rectTransform.SetParent(base.rectTransform);
                 rectTransform.localPosition = Vector3.zero;
                 rectTransform.localRotation = Quaternion.identity;
                 rectTransform.localScale    = Vector3.one;
                 rectTransform.sizeDelta     = Vector2.right * num + Vector2.up * num;
             }
             gameObject.gameObject.SetActive(false);
             this.m_ImagesPool.Add(gameObject.GetComponent <Image>());
         }
         string value  = match.Groups[1].Value;
         Image  image2 = this.m_ImagesPool[this.m_ImagesVertexIndex.Count - 1];
         string text   = value.Substring(0, value.LastIndexOf('.'));
         string text2  = text.Substring(text.LastIndexOf('/') + 1);
         if (image2.sprite == null || !text2.Equals(image2.sprite.name))
         {
             this.setSprite(image2, num, value);
         }
         else
         {
             this.showImg(image2, num);
         }
     }
     for (int i = this.m_ImagesVertexIndex.Count; i < this.m_ImagesPool.Count; i++)
     {
         if (this.m_ImagesPool[i])
         {
             this.m_ImagesPool[i].gameObject.SetActive(false);
         }
     }
 }
    static public void AddImage(MenuCommand menuCommand)
    {
        GameObject go = DefaultControls.CreateImage((DefaultControls.Resources)m_miGetDefaultResource.Invoke(null, null));

        m_miPlaceUIElementRoot.Invoke(null, new object[] { go, menuCommand });

        // Remove raycast target.
        Image image = go.GetComponent <Image>();

        image.raycastTarget = false;
    }
Beispiel #15
0
        public static Image CreateImage(string objectName = "New Image", Transform parent = null, Sprite sprite = null)
        {
            GameObject go = DefaultControls.CreateImage(resources);

            go.name = objectName;
            go.transform.SetParent(parent, false);
            Image i = go.GetComponent <Image>();

            i.sprite = sprite;
            return(i);
        }
        protected void UpdateImage()
        {
            var tempText = GetTextWithoutHyper(text);

            ProcessTextImage(tempText);

            _imageList.RemoveAll(image => image == null);
            if (_imageList.Count == 0)
            {
                GetComponentsInChildren(_imageList);
            }

            foreach (var image in _imageList)
            {
                image.enabled       = false;
                image.raycastTarget = true;
            }

            while (_imageInfoList.Count > _imageList.Count)
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                var image = go.GetComponent <Image>();
                image.enabled       = false;
                image.raycastTarget = true;
                _imageList.Add(image);
            }

            for (int i = 0; i < Math.Min(_imageList.Count, _imageInfoList.Count); i++)
            {
                var info  = _imageInfoList[i];
                var image = _imageList[i];
                image.gameObject.AddOrGetComponent <UIEventListener>().onClick = (eventData, gameObject) =>
                {
                    _onImageClick?.Invoke(info.SpriteName);
                };
                if (image.sprite == null || image.sprite.name != info.SpriteName)
                {
                    image.sprite = LoadSpriteFunc != null?LoadSpriteFunc(info.SpriteName) :
                                       Resources.Load <Sprite>(info.SpriteName);
                }
                image.rectTransform.sizeDelta = new Vector2(info.Size * info.Width, info.Size);
                image.enabled = true;
            }
        }
Beispiel #17
0
        /// <summary>
        /// 创建图像控件。
        /// </summary>
        /// <returns></returns>
        public Image CreateImage()
        {
            var resources = new DefaultControls.Resources();
            var go        = DefaultControls.CreateImage(resources);
            var rt        = go.transform as RectTransform;

            go.layer = gameObject.layer;
            rt.SetParent(rectTransform);
            rt.localPosition = Vector3.zero;
            rt.localRotation = Quaternion.identity;
            rt.localScale    = Vector3.one;
            return(go.GetComponent <Image>());
        }
Beispiel #18
0
        private void InstantiateDotsImage(int _subCategoryIndex)
        {
            GameObject newImageGO = DefaultControls.CreateImage(new DefaultControls.Resources());

            newImageGO.name = "dot " + _subCategoryIndex;
            newImageGO.transform.SetParent(subCategoryDotZone.transform);
            newImageGO.transform.localScale = Vector3.one;
            Image image = newImageGO.GetComponent <Image>();

            image.sprite = _subCategoryIndex == 0 ? circleSprite : outlineSprite;

            subCategoryDotImages.Add(image);
        }
Beispiel #19
0
        static GameObject CreateRadarChart(UIResources resources)
        {
            GameObject radarPanel = DefaultControls.CreateImage(UIDefaultControls.ConvertToDefaultResources(resources));

            radarPanel.name = "RadarPanel";

            GameObject radarChart = new GameObject("RadarChart");
            RadarChart radar      = radarChart.AddComponent <RadarChart>();

            radar.color = Color.red;
            radarChart.transform.SetParent(radarPanel.transform);

            return(radarPanel);
        }
        /// <summary>
        /// Create Date Picker
        /// </summary>
        public static GameObject CreateDatePicker(Resources resources)
        {
            DefaultControls.Resources res = convertToDefaultResources(resources);
            // Create date picker
            GameObject datePicker = DefaultControls.CreateImage(res);

            datePicker.name = "DatePicker";
            datePicker.AddComponent <DatePicker>();
            RectTransform pickerRect = datePicker.GetComponent <RectTransform>();

            pickerRect.sizeDelta = _defaultDatePickerSize;

            // Create date text
            GameObject dateText = DefaultControls.CreateText(res);

            dateText.name = "DateText";
            SetParentAndAlign(dateText, datePicker.transform);
            RectTransform textRect = dateText.GetComponent <RectTransform>();

            textRect.anchorMin = Vector2.zero;
            textRect.anchorMax = new Vector2(0, 1);
            textRect.pivot     = new Vector2(0, 0.5f);
            textRect.sizeDelta = new Vector2(150, 0);
            Text textText = dateText.GetComponent <Text>();

            textText.text      = System.DateTime.Today.ToShortDateString();
            textText.alignment = TextAnchor.MiddleLeft;

            // Create pick button
            GameObject pickButton = DefaultControls.CreateImage(res);

            pickButton.name = "PickButton";
            SetParentAndAlign(pickButton, datePicker.transform);
            pickButton.AddComponent <Button>();
            RectTransform buttonRect = pickButton.GetComponent <RectTransform>();

            buttonRect.anchorMin = new Vector2(1, 0);
            buttonRect.anchorMax = Vector2.one;
            buttonRect.sizeDelta = new Vector2(_defaultDatePickerSize.y, 0);
            pickButton.GetComponent <Image>().sprite = res.dropdown;
            buttonRect.transform.localPosition      -= new Vector3(_defaultDatePickerSize.y / 2, 0, 0);

            //Create Calendar
            GameObject calendar = CreateCalendar(resources);

            calendar.transform.SetParent(datePicker.transform);
            calendar.transform.localPosition -= new Vector3(0, _defaultDatePickerSize.y / 2 + _defaultCalendarSize.y / 2, 0);
            calendar.SetActive(false);
            return(datePicker);
        }
Beispiel #21
0
    //protected override void Start()
    //{
    //    Debug.Log("kaishi");
    //    UpdateQuadImage();
    //}

    /*利用Match类和MatchCollection类,
     * 可以获得通过一个正则表达式实现的每一个匹配的细节。Match表示一次匹配,
     * 而MatchCollection类是一个Match对象的集合,其中的每一个对象都表示了一次成功的匹配。
     * 我们可以使用Regex对象的Match()方法和Matches()方法来检索匹配。
     * https://blog.csdn.net/u011982340/article/details/39136401 */
    protected void UpdateQuadImage()
    {
        m_ImagesVertexIndex.Clear();
        foreach (Match match in s_Regex.Matches(text))
        {
            var picIndex = match.Index + match.Length - 1;  //文字个数
            Debug.Log("picIndex:" + picIndex);
            var endIndex = picIndex * 4 + 3;                //计算最后顶点
            m_ImagesVertexIndex.Add(endIndex);              //顶点加入List

            m_ImagesPool.RemoveAll(image => image == null); //图片对象池移除所有图片
            if (m_ImagesPool.Count == 0)
            {
                GetComponentsInChildren <Image>(m_ImagesPool);
            }
            if (m_ImagesVertexIndex.Count > m_ImagesPool.Count)//如果顶点信息数大于图片数,新建图片
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                m_ImagesPool.Add(go.GetComponent <Image>());
            }

            var spriteName = match.Groups[1].Value;
            var size       = float.Parse(match.Groups[2].Value);
            var img        = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
            if (img.sprite == null || img.sprite.name != spriteName)
            {
                img.sprite = Resources.Load <Sprite>(spriteName);
            }
            img.rectTransform.sizeDelta = new Vector2(size, size);
            img.enabled = true;
        }

        for (var i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++)
        {
            if (m_ImagesPool[i])
            {
                m_ImagesPool[i].enabled = false;
            }
        }
    }
Beispiel #22
0
    protected void UpdateQuadImage(string m_OutputText)
    {
        m_ImagesVertexIndex.Clear();
        foreach (Match match in s_ImageRegex.Matches(m_OutputText))
        {
            var picIndex = match.Index;
            var endIndex = picIndex * 4 + 3;
            m_ImagesVertexIndex.Add(endIndex);

            m_ImagesPool.RemoveAll(image => image == null);
            if (m_ImagesPool.Count == 0)
            {
                GetComponentsInChildren <Image>(m_ImagesPool);
            }
            if (m_ImagesVertexIndex.Count > m_ImagesPool.Count)
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                m_ImagesPool.Add(go.GetComponent <Image>());
            }

            var spriteName = match.Groups[1].Value;
            var size       = float.Parse(match.Groups[2].Value);
            var img        = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
            if (img.sprite == null || img.sprite.name != spriteName)
            {
                StartCoroutine(LoadSprite("Art/UI/DynamicTex/" + spriteName + ".png", img));
            }
            img.rectTransform.sizeDelta = new Vector2(size, size);
            img.enabled = true;
        }

        for (var i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++)
        {
            if (m_ImagesPool[i])
            {
                m_ImagesPool[i].enabled = false;
            }
        }
    }
Beispiel #23
0
    private void PackWindows()
    {
        Canvas _canvas = gameObject.GetComponent <Canvas>();

        /*
         * Vector2Int a1 = FindOptGrid(), a2 = FindOptGrid2();
         * if (a1 != a2)
         * {
         *  Debug.LogWarning("Второй алгоритм: (" + a1.x.ToString() + "; " + a1.y.ToString() + "), Первый алгоритм: (" + a2.x.ToString() + "; " + a2.y.ToString() + ")");
         *  //Debug.LogWarning(a2);
         * }*/


        gridSize = FindOptGrid();

        Vector2 _windowSize;

        _windowSize.x = (boardWidth - boardPaddingX * 2 - (gridSize.x - 1) * minSpacing) / gridSize.x;
        _windowSize.y = (boardHeight - boardPaddingY * 2 - (gridSize.y - 1) * minSpacing) / gridSize.y;

        Vector2 _offset = -new Vector2(boardWidth / 2, boardHeight / 2);

        int _windowsCount = 0;

        for (int y = gridSize.y - 1; y >= 0; y--)
        {
            for (int x = 0; x < gridSize.x; x++)
            {
                GameObject _window = DefaultControls.CreateImage(new DefaultControls.Resources());
                _window.GetComponent <Image>().color = windowColor;
                _window.AddComponent <Outline>();

                _window.GetComponent <RectTransform>().position  = new Vector2(boardPaddingX + x * (minSpacing + _windowSize.x) + _windowSize.x / 2, boardPaddingY + y * (minSpacing + _windowSize.y) + _windowSize.y / 2) + _offset;
                _window.GetComponent <RectTransform>().sizeDelta = _windowSize;

                _window.transform.SetParent(_canvas.transform, false);

                _windowsCount++;
                if (_windowsCount >= N)
                {
                    return;
                }
            }
        }
    }
Beispiel #24
0
        void DisposeEmoji()
        {
            _imagesVertexIndexs.Clear();
            foreach (Match match in EmojiRegex.Matches(_outputText))
            {
                string spriteName = string.Copy(match.Groups[1].Value);

                int startIndex = match.Index * 4;
                int endIndex   = (match.Index + match.Value.Length) * 4 - 1;
                _imagesVertexIndexs.Add(new ImageVertexIndex(startIndex, endIndex));

                m_ImagesPool.RemoveAll(image => image == null);
                if (m_ImagesPool.Count == 0)
                {
                    GetComponentsInChildren <Image>(m_ImagesPool);
                }
                if (_imagesVertexIndexs.Count > m_ImagesPool.Count)
                {
                    var resources = new DefaultControls.Resources();
                    var go        = DefaultControls.CreateImage(resources);
                    go.layer = gameObject.layer;
                    var rt = go.transform as RectTransform;
                    if (rt)
                    {
                        rt.SetParent(rectTransform);
                        //rt.localPosition = Vector3.zero;
                        //rt.localRotation = Quaternion.identity;
                        //rt.localScale = Vector3.one;
                    }
                    m_ImagesPool.Add(go.GetComponent <Image>());
                }

                var img = m_ImagesPool[_imagesVertexIndexs.Count - 1];
                img.sprite = LoadFace(spriteName);
                img.rectTransform.sizeDelta = new Vector2(_emojiSize, _emojiSize);
                img.enabled = true;
            }
            for (var i = _imagesVertexIndexs.Count; i < m_ImagesPool.Count; i++)
            {
                if (m_ImagesPool[i])
                {
                    m_ImagesPool[i].enabled = false;
                }
            }
        }
Beispiel #25
0
        /// <summary>
        /// 创建图像控件。
        /// </summary>
        /// <returns></returns>
        private Image CreateImage()
        {
            float         fs  = GetComponent <Text>().fontSize;
            GameObject    go  = DefaultControls.CreateImage(new DefaultControls.Resources());
            RectTransform rt  = go.transform as RectTransform;
            Image         img = go.GetComponent <Image>();

            go.layer = gameObject.layer;
            rt.SetParent(m_ImageHolder);
            rt.localPosition      = Vector3.zero;
            rt.localRotation      = Quaternion.Euler(0, 0, 0);
            rt.localScale         = Vector3.one;
            rt.anchoredPosition3D = Vector3.zero;
            rt.sizeDelta          = new Vector2(fs, fs);
            rt.anchorMin          = m_ImageHolder.pivot;
            rt.anchorMax          = rt.anchorMin;
            img.preserveAspect    = true;
            return(img);
        }
    public static int CreateImage_s(IntPtr l)
    {
        int result;

        try
        {
            DefaultControls.Resources resources;
            LuaObject.checkValueType <DefaultControls.Resources>(l, 1, out resources);
            GameObject o = DefaultControls.CreateImage(resources);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, o);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Beispiel #27
0
                } // end SetVerticesDirty

                protected void UpdateQuadImage() {
#if UNITY_EDITOR
                    if (UnityEditor.PrefabUtility.GetPrefabType(this) == UnityEditor.PrefabType.Prefab) return;
                    // end if
#endif
                    m_OutputText = GetOutputText(text);
                    m_ImagesVertexIndex.Clear();
                    foreach (Match match in s_ImageRegex.Matches(m_OutputText)) {
                        int picIndex = match.Index;
                        int endIndex = picIndex * 4 + 3; // 猜测:每个字符需要4个顶点
                        m_ImagesVertexIndex.Add(endIndex);
                        m_ImagesPool.RemoveAll(image => image == null); // 移除 null 对象
                        if (m_ImagesPool.Count == 0) {
                            GetComponentsInChildren(m_ImagesPool);
                        } // end if
                        if (m_ImagesVertexIndex.Count > m_ImagesPool.Count) {
                            GameObject go = DefaultControls.CreateImage(new DefaultControls.Resources()); // 创建 Image 对象
                            go.layer = gameObject.layer;
                            RectTransform rt = go.transform as RectTransform;
                            if (null != rt) {
                                rt.SetParent(rectTransform);
                                rt.localPosition = Vector3.zero;
                                rt.localRotation = Quaternion.identity;
                                rt.localScale = Vector3.one;
                            } // end if
                            m_ImagesPool.Add(go.GetComponent<Image>());
                        } // end if
                        string spriteName = match.Groups[1].Value;
                        float size = float.Parse(match.Groups[2].Value);
                        Image img = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
                        if (img.sprite == null || img.sprite.name != spriteName) {
                            img.sprite = funLoadSprite != null ? funLoadSprite(spriteName) :
                                Resources.Load<Sprite>(spriteName);
                        } // end if
                        img.rectTransform.sizeDelta = new Vector2(size, size);
                        img.enabled = true;
                    } // end foreach
                    for (int i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++) { // 隐藏多余的图片
                        if (null != m_ImagesPool[i]) m_ImagesPool[i].enabled = false;
                        // end if
                    } // end for
                } // end UpdateQuadImage
Beispiel #28
0
    protected Image CreateImage(string imageName)                               // 直接创建个默认 Image
    {
        GameObject canvas = new GameObject("Canvas");
        Canvas     c      = canvas.AddComponent <Canvas>();

        c.renderMode = RenderMode.ScreenSpaceOverlay;
        canvas.AddComponent <GraphicRaycaster>();
        CanvasScaler cs = canvas.AddComponent <CanvasScaler>();

        cs.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
        cs.referenceResolution = new Vector2(1366f, 768f);
        cs.screenMatchMode     = CanvasScaler.ScreenMatchMode.Expand;

        DefaultControls.Resources res = new DefaultControls.Resources();
        GameObject go = DefaultControls.CreateImage(res);

        go.name             = imageName;
        go.transform.parent = canvas.transform;
        return(go.GetComponent <Image>());
    }
Beispiel #29
0
        private void CreateDebugRect(CanvasData.Node node, Rect rect)
        {
            var scanner = (CanvasScanner)target;

            var go = DefaultControls.CreateImage(new DefaultControls.Resources());

            go.transform.SetParent(scanner.rectContainer, false);

            // set name
            go.name = string.Format("NodeRect {0:D}", node.index);
            var rt = go.transform as RectTransform;

            // set position
            rt.anchoredPosition = rect.center;
            rt.sizeDelta        = rect.size;

            // set color
            var image = go.GetComponent <Image>();

            image.color = scanner.rectColor;
        }
Beispiel #30
0
        static GameObject CreateJoyStick(UIResources resources)
        {
            GameObject stickPanel = DefaultControls.CreateImage(UIDefaultControls.ConvertToDefaultResources(resources));

            stickPanel.name = "StickPanel";

            GameObject stickSlider = CreateImageEx(UIMenuTools.GetStandardResources());

            stickSlider.name = "StickSlider";
            stickSlider.transform.localScale = new Vector3(0.6f, 0.6f, 1);

            JoyStick joyStick = stickSlider.AddComponent <JoyStick>();

            joyStick.dragable = stickSlider.GetComponent <UIDragable>();
            joyStick.panel    = stickPanel.transform as RectTransform;
            joyStick.slider   = stickSlider.transform as RectTransform;

            stickSlider.transform.SetParent(stickPanel.transform);

            return(stickPanel);
        }