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); }
//-------∽-★-∽------∽-★-∽--------∽-★-∽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); }