using Cysharp.Threading.Tasks; using TMPro; namespace UVC.Extention { public static class TMP_InputFieldEx { /// /// inputField를 포커싱하고 캐럿(커서)을 텍스트의 끝으로 이동시킵니다. /// /// /// public static async UniTaskVoid SetCaretToEndAsync(this TMP_InputField inputField) { if (inputField == null) return; inputField.ActivateInputField(); // UI가 업데이트될 때까지 프레임의 끝에서 대기합니다. await UniTask.WaitForEndOfFrame(); // 캐럿(커서) 위치를 텍스트의 끝으로 이동시킵니다. inputField.caretPosition = inputField.text.Length; // 텍스트가 선택되지 않도록 선택 시작점과 끝점을 동일하게 설정합니다. inputField.selectionAnchorPosition = inputField.text.Length; inputField.selectionFocusPosition = inputField.text.Length; } } }