59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.UI;
|
|||
|
|
using static UnityEngine.Rendering.DebugUI;
|
|||
|
|
|
|||
|
|
[RequireComponent(typeof(InputField))]
|
|||
|
|
public class AutoExpandInputField : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
private InputField inputField;
|
|||
|
|
private Text inputText;
|
|||
|
|
//private ContentSizeFitter contentSizeFitter;
|
|||
|
|
//private LayoutElement layoutElement;
|
|||
|
|
private RectTransform rectTransform;
|
|||
|
|
private void Awake()
|
|||
|
|
{
|
|||
|
|
inputField = GetComponent<InputField>();
|
|||
|
|
inputText = inputField.textComponent;
|
|||
|
|
//contentSizeFitter = GetComponent<ContentSizeFitter>();
|
|||
|
|
//layoutElement = GetComponent<LayoutElement>();
|
|||
|
|
rectTransform = GetComponent<RectTransform>();
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ仯<DDB1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָı<D6B8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>
|
|||
|
|
inputField.onValueChanged.AddListener(OnValueChanged);
|
|||
|
|
}
|
|||
|
|
//private void OnEnable()
|
|||
|
|
//{
|
|||
|
|
// layoutElement.preferredHeight = layoutElement.minHeight;
|
|||
|
|
// rectTransform.anchoredPosition = new Vector2 (-158.9837f, -67.5f);
|
|||
|
|
//}
|
|||
|
|
//private void Update()
|
|||
|
|
//{
|
|||
|
|
// Canvas.ForceUpdateCanvases();
|
|||
|
|
// // <20><>ȡ<EFBFBD>ı<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>Ҫ<EFBFBD>ĸ߶<C4B8>
|
|||
|
|
// float requiredHeight = inputText.flexibleHeight;
|
|||
|
|
// // <20><><EFBFBD><EFBFBD>LayoutElement<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD>ƣ<EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>߶<EFBFBD>
|
|||
|
|
// if (layoutElement != null)
|
|||
|
|
// {
|
|||
|
|
// // ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ߶Ȳ<DFB6>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>С<EFBFBD>߶<EFBFBD>
|
|||
|
|
// requiredHeight = Mathf.Max(requiredHeight, layoutElement.minHeight);
|
|||
|
|
// layoutElement.flexibleHeight = requiredHeight;
|
|||
|
|
// }
|
|||
|
|
// else
|
|||
|
|
// {
|
|||
|
|
// // û<><C3BB>LayoutElementʱ<74><CAB1>ֱ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>ContentSizeFitter<65><72><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶ȣ<DFB6>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>һ<EFBFBD>㶼<EFBFBD><E3B6BC><EFBFBD><EFBFBD>LayoutElement<6E><74><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, requiredHeight);
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>㣬<EFBFBD><E3A3AC>ContentSizeFitter<65><72><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ʾ
|
|||
|
|
// if (contentSizeFitter != null)
|
|||
|
|
// {
|
|||
|
|
// contentSizeFitter.SetLayoutVertical();
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
void OnValueChanged(string text)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ݵĸ߶<C4B8>
|
|||
|
|
int preferredHeight = Mathf.CeilToInt(inputField.textComponent.preferredHeight) + 20; // 20<32><30><EFBFBD><EFBFBD><EFBFBD>±߾<C2B1>
|
|||
|
|
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, preferredHeight);
|
|||
|
|
}
|
|||
|
|
}
|