Example #1
0
        private void CenterFitChildren(GameObject go)
        {
            KInputField input       = go.GetComponent <KInputField>();
            GameObject  placeholder = input.placeholder.gameObject;
            GameObject  inputtext   = input.textComponent.gameObject;

            var parentTransform      = go.GetComponent <RectTransform>(); //把inputtext变成这个尺寸, 然后居中对齐
            var placeholderTransform = placeholder.GetComponent <RectTransform>();
            var inputtextTransform   = inputtext.GetComponent <RectTransform>();

            //placeholderTransform.sizeDelta = parentTransform.rect.size;
            //placeholderTransform.anchoredPosition = new Vector2(placeholderTransform.anchoredPosition.x, 0);

            inputtextTransform.sizeDelta = parentTransform.rect.size;
            //inputtextTransform.anchoredPosition = new Vector2(inputtextTransform.sizeDelta.x * 0.5f, -inputtextTransform.sizeDelta.y * 0.5f);
            KuiUtil.SetAnchorSmart(inputtextTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f));
            inputtextTransform.anchoredPosition = new Vector2(-inputtextTransform.sizeDelta.x * 0.5f, inputtextTransform.sizeDelta.y * 0.5f);
        }
Example #2
0
        //-------∽-★-∽------∽-★-∽--------∽-★-∽Anchor∽-★-∽--------∽-★-∽------∽-★-∽--------//

        public void SetAnchor(GameObject go, JsonData stateData)
        {
            string param = GetParam(stateData, PATTERN_ANCHOR);

            param = param.ToLower();
            param = param.Replace(PARAM_PREFIX, "");

            RectTransform rectTransform = go.GetComponent <RectTransform>();
            Vector2       anchorMin     = new Vector2();
            Vector2       anchorMax     = new Vector2();

            if (param == PARAM_STRETCH)
            {
                anchorMin.Set(0, 0);
                anchorMax.Set(1, 1);
                if (go.transform.parent == null || go.transform.parent.name.Contains("Canvas"))
                {
                    Vector3 oldPos = rectTransform.position;
                    rectTransform.sizeDelta = Vector2.zero;
                    rectTransform.anchorMin = anchorMin;
                    rectTransform.anchorMax = anchorMax;
                    rectTransform.position  = oldPos;
                    return;
                }
            }
            else
            {
                //左中右
                if (param.Contains(PARAM_LEFT))
                {
                    anchorMin.x = anchorMax.x = 0;
                }
                else if (param.Contains(PARAM_CENTER))
                {
                    anchorMin.x = anchorMax.x = 0.5f;
                }
                else if (param.Contains(PARAM_RIGHT))
                {
                    anchorMin.x = anchorMax.x = 1;
                }
                else
                {
                    anchorMin.x = 0;
                    anchorMax.x = 1;
                }

                //上中下
                if (param.Contains(PARAM_UPPER))
                {
                    anchorMin.y = anchorMax.y = 1;
                }
                else if (param.Contains(PARAM_MIDDLE))
                {
                    anchorMin.y = anchorMax.y = 0.5f;
                }
                else if (param.Contains(PARAM_LOWER))
                {
                    anchorMin.y = anchorMax.y = 0;
                }
                else
                {
                    anchorMin.y = 0;
                    anchorMax.y = 1;
                }
            }

            if (param.Contains(PARAM_CENTER) && param.Contains(PARAM_MIDDLE))
            {
                KuiUtil.SetPivotSmart(rectTransform, new Vector2(0.5f, 0.5f), true);
            }

            KuiUtil.SetAnchorSmart(rectTransform, anchorMin, anchorMax);
        }