using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Assets.Scripts.UI.Control { public class PFUIInputField: PFUIComponentBase { [SerializeField] private InputField mInnerInputField; private Outline outline; private bool isSelected = false; public string Text { get { return this.mInnerInputField.text; } set { this.mInnerInputField.text = value; } } string placeHolderText; public void OnSelect(BaseEventData eventData) { if (this.gameObject.activeInHierarchy == false) { return; } isSelected = true; //throw new NotImplementedException(); this.mInnerInputField.OnSelect(eventData); //var image = this.transform.GetComponent(); // var png = Resources.Load("Images/ipt-1"); //image.sprite = png; var _text = mInnerInputField.transform.Find("Text").GetComponent(); if (_text.color!=Color.white) { Text = ""; } _text.color = Color.white; transform.Find("Placeholder").GetComponent().text = ""; outline.enabled = true; ColorUtility.TryParseHtmlString("#F93086", out Color color); outline.effectColor = color; } public void OnDeselect(BaseEventData eventData) { if(this.gameObject.activeInHierarchy == false) { return; } isSelected = false; this.mInnerInputField.OnDeselect(eventData); transform.Find("Placeholder").GetComponent().text = placeHolderText; //var image = this.transform.GetComponent(); //var png1 = Resources.Load("Images/ipt-0"); //image.sprite = png1; outline.enabled = false; } void Awake() { Material material = null; if (material == null) { material = Instantiate(Resources.Load("UI/Material/RoundedCornersTextureMaterial")); } var rect = ((RectTransform)transform).rect; material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, Math.Min(rect.height*0.7f, 50f), 0)); gameObject.GetComponent().material = material; outline = this.GetComponent(); if (outline == null) { outline = this.gameObject.AddComponent(); outline.effectDistance = new Vector2(2, 2); outline.enabled = false; } //UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerClick, new UnityAction(this.OnSelect)); UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.Select, new UnityAction(this.OnSelect)); UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.Deselect, new UnityAction(this.OnDeselect)); UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerEnter, new UnityAction((e) => { if (isSelected) { return; } outline.enabled = true; ColorUtility.TryParseHtmlString("#6E6E7D", out Color color); outline.effectColor = color; })); UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerExit, new UnityAction(e => { if (isSelected) { return; } //outline = this.gameObject.AddComponent(); outline.enabled = false; })); placeHolderText = transform.Find("Placeholder").GetComponent().text; } public void SetValidate(bool value) { if (value) { outline.enabled = true; outline.effectColor = Utils.HexToColorHtml("#F93086"); ColorUtility.TryParseHtmlString("#F93086", out Color color); this.mInnerInputField.transform.Find("Text").GetComponent().color = color; } else { this.mInnerInputField.transform.Find("Text").GetComponent().color = Color.white; outline.enabled = false; } } public void SetValidate(string msg) { this.mInnerInputField.transform.Find("Text").GetComponent().color = Utils.HexToColorHtml("#F93086"); Text = msg; outline.enabled = true; outline.effectColor = Utils.HexToColorHtml("#F93086"); } } }