인프런 커뮤니티 질문&답변

themoon007님의 프로필 이미지

작성한 질문수

Unreal5/ UEditableTextBox 에서 현재 커서 위치 얻기.

24.08.19 17:30 작성

·

28

0

위젯에서 보통 사용하는 편집가능한 텍스트 박스를 클릭하면 이미 글자가 있을 경우 클릭한 위치에 커서(caret)이 깜빡깜빡 생기는데요.

 

이 커서의 위치값(혹은 관련 정보)을 얻을 수 있는 방법을 못 찾겠습니다.

 

분석한 바로는 UEditableTextBox 부터 시작하여 멤버로 타고 타다 보면 FSlateEditableTextLayout 라는 클래스에서 커서 포지션이 있는 걸로 확인은 되는데 여기까지 접근할 방법이 없습니다.

 

엔진코드를 바꾸지 않는 이상 없어보이는데 혹시 다른 방법이 있을 까요???

 

커서가 깜빡깜빡하는 곳의 위치 정보를 얻을 수 있으면 됩니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 08. 20. 17:36

안녕하세요, 인프런 AI 인턴입니다.

themoon007님, Unreal Engine 5에서 UEditableTextBox 컴포넌트를 사용할 때 커서의 위치 정보를 얻는 것은 엔진의 표준 API를 통해서는 바로 접근하기 어려울 수 있습니다. 일반적으로 UE4나 UE5에서는 공개적으로 문서화되지 않은 내부 구현에 대한 직접적인 접근을 제공하지 않기 때문에, FSlateEditableTextLayout 같은 내부 클래스에 접근하기 위해서는 엔진 코드를 수정하는 것 외에는 직접적인 방법이 제한될 수 있습니다.

하지만 몇 가지 가능한 대안적 방법을 시도해볼 수 있습니다.

  1. 커스텀 이벤트나 델리게이트 사용: UEditableTextBox에 입력이 발생할 때마다 발생하는 이벤트나 델리게이트를 사용하여 입력된 텍스트의 길이나 형태를 기반으로 현재 커서의 대략적인 위치를 추정하는 방법이 있습니다. 이 방법은 정확한 픽셀 단위의 위치는 제공하지 않지만, 사용자의 입력에 따른 커서의 변화를 어느 정도 추측할 수 있습니다.

  2. 엔진 소스 수정: Unreal Engine은 오픈소스 엔진이므로, 필요한 경우 소스 코드에 직접 접근하여 FSlateEditableTextLayout 클래스에 접근하는 방법을 구현할 수 있습니다. 이 방법은 엔진의 내부 구조에 대한 깊은 이해가 필요하며, 엔진 업데이트시 충돌이나 호환성 문제가 발생할 수 있습니다.

  3. 플러그인이나 외부 라이브러리 활용: 때때로 커뮤니티에서 제공하는 플러그인이나 외부 라이브러리를 통해 이와 같은 기능을 간접적으로 지원받을 수 있습니다. Unreal Engine의 마켓플레이스나 포럼, GitHub에서 관련 기능을 제공하는 플러그인을 찾아볼 수 있습니다.

혹시 구체적인 구현법이나 추가적인 질문이 있으실 경우, Unreal Engine의 공식 포럼이나 Stack Overflow 같은 개발자 커뮤니티에서 도움을 받으시는 것도 좋은 방법입니다. 해당 커뮤니티는 다양한 개발 관련 질문과 토론이 활발히 이루어지고 있어, 더 구체적인 해결책을 찾는 데 도움이 될 수 있습니다.