InputField를 사용하다 보면 사용자가 입력 필드를 선택했을 때 텍스트 전체가 선택되는 기본 동작이 불편하게 느껴질 수 있습니다. 특히 텍스트를 수정할 때 커서가 항상 텍스트 끝에 위치하도록 만들고 싶다면 텍스트 끝으로 이동시키는 기능을 구현해야 합니다.
using TMPro;
using UnityEngine;
public class InputFieldExam : MonoBehaviour
{
private TMP_InputField _inputField;
private void Awake()
{
_inputField = GetComponent<TMP_InputField>();
_inputField.onSelect.AddListener(OnInputFieldSelected);
}
private void OnInputFieldSelected(string _)
{
int cursorPosition = DetermineCursorPosition();
SetCursorPosition(cursorPosition);
}
/// <summary>
/// 커서 위치를 결정하는 로직을 여기에 구현합니다.
/// 예: 특정 조건에 따라 시작 또는 끝으로 설정
/// </summary>
/// <returns>설정할 커서 위치</returns>
private int DetermineCursorPosition()
{
// 예시 조건: 텍스트가 비어있지 않으면 끝으로, 그렇지 않으면 처음으로
return string.IsNullOrEmpty(_inputField.text) ? 0 : _inputField.text.Length;
}
/// <summary>
/// 커서 위치를 설정합니다.
/// </summary>
/// <param name="position">설정할 위치</param>
private void SetCursorPosition(int position)
{
_inputField.selectionAnchorPosition = position;
_inputField.selectionFocusPosition = position;
}
}