protected void _Create(EleBaseRect parent, string text, Font font, Color fontColor, int pointSize, bool multiline, Sprite plate, PadRect padding, Vector2 size, string name) { this.border = padding; GameObject go = new GameObject("InputPlate_" + name); go.transform.SetParent(parent.GetContentRect(), false); go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; UnityEngine.UI.Image img = go.AddComponent <UnityEngine.UI.Image>(); img.RTQ().TopLeftAnchorsPivot(); img.sprite = plate; img.type = UnityEngine.UI.Image.Type.Sliced; GameObject goInput = new GameObject("Input_" + name); goInput.transform.SetParent(go.transform, false); this.rtInput = goInput.AddComponent <RectTransform>(); this.rtInput.pivot = new Vector2(0.0f, 1.0f); this.rtInput.anchorMin = Vector2.zero; this.rtInput.anchorMax = Vector2.one; this.rtInput.offsetMin = new Vector2(padding.left, padding.bot); this.rtInput.offsetMax = new Vector2(-padding.right, -padding.top); GameObject goText = new GameObject("InputText_" + name); goText.transform.SetParent(this.rtInput, false); goText.transform.localRotation = Quaternion.identity; goText.transform.localPosition = Vector3.zero; UnityEngine.UI.Text txt = goText.AddComponent <UnityEngine.UI.Text>(); txt.RTQ().TopLeftAnchorsPivot().ExpandParentFlush(); GameObject goPlaceholder = new GameObject("InputPlaceholder_" + name); goPlaceholder.transform.SetParent(this.rtInput, false); goPlaceholder.transform.localRotation = Quaternion.identity; goPlaceholder.transform.localPosition = Vector3.zero; UnityEngine.UI.Text txtPlace = goPlaceholder.AddComponent <UnityEngine.UI.Text>(); txtPlace.RTQ().TopLeftAnchorsPivot().ExpandParentFlush(); this.input = goInput.AddComponent <UnityEngine.UI.InputField>(); this.input.textComponent = txt; this.input.targetGraphic = img; this.input.placeholder = txtPlace; this.rt = go.GetComponent <RectTransform>(); this.placeholder = txtPlace; this.text = txt; this.text.color = fontColor; this.text.font = font; this.text.fontSize = pointSize; this.text.verticalOverflow = VerticalWrapMode.Overflow; this.placeholder.color = new Color(fontColor.r, fontColor.g, fontColor.b, fontColor.a * 0.5f); this.placeholder.font = font; this.placeholder.fontSize = pointSize; this.placeholder.verticalOverflow = VerticalWrapMode.Overflow; this.input.lineType = multiline ? UnityEngine.UI.InputField.LineType.MultiLineNewline : UnityEngine.UI.InputField.LineType.SingleLine; if (multiline == false) { this.text.alignment = TextAnchor.MiddleLeft; this.placeholder.alignment = TextAnchor.MiddleLeft; } }