Beispiel #1
0
        //-------∽-★-∽------∽-★-∽--------∽-★-∽ApplyGameObjectParam∽-★-∽--------∽-★-∽------∽-★-∽--------//

        public override void ApplyGameObjectParam(GameObject go, JsonData data)
        {
            base.ApplyGameObjectParam(go, data);


            if (HasParam(data, PATTERN_SHRINK) == true)
            {
                //SHRINK按钮
                go.AddComponent <KButtonShrinkable>();
            }
            else
            {
                go.AddComponent <KButton>();
            }


            bool shouldResetPivot = true;   //需要重置轴点

            if (HasParam(data, PATTERN_ANCHOR))
            {
                //有锚点参数
                string param = GetParam(data, PATTERN_ANCHOR);
                if (param.Contains(PARAM_CENTER) && param.Contains(PARAM_MIDDLE))
                {
                    //居中
                    shouldResetPivot = false;
                }
            }

            if (shouldResetPivot && !HasParam(data, PATTERN_PIVOT))
            {
                //没有轴点参数
                KuiUtil.SetPivotSmart(go.GetComponent <RectTransform>(), new Vector2(0.5f, 0.5f), true);
            }
        }
Beispiel #2
0
        //-------∽-★-∽------∽-★-∽--------∽-★-∽Pivot∽-★-∽--------∽-★-∽------∽-★-∽--------//

        private void SetPivot(GameObject go, JsonData data)
        {
            var   s      = GetParam(data, PATTERN_PIVOT);
            Match m      = PATTERN_PIVOT.Match(s);
            float pivotX = Int32.Parse(m.Groups[2].Value) / 10.0f;

            pivotX = Mathf.Clamp01(pivotX);
            float pivotY = Int32.Parse(m.Groups[3].Value) / 10.0f;

            pivotY = Mathf.Clamp01(pivotY);
            RectTransform rect = go.GetComponent <RectTransform>();

            KuiUtil.SetPivotSmart(rect, new Vector2(pivotX, pivotY), true);
        }
    static public int SetPivotSmart_s(IntPtr l)
    {
        try
        {
            GameObject self = (GameObject)checkSelf(l);

            float x, y;
            checkType(l, 2, out x);
            checkType(l, 3, out y);

            RectTransform rectTrans = ComponentUtil.NeedComponent_ <RectTransform>(self);
            KuiUtil.SetPivotSmart(rectTrans, new Vector2(x, y), true);

            pushValue(l, true);
            return(1);
        }
        catch (Exception e)
        {
            return(error(l, e));
        }
    }
Beispiel #4
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);
        }