[Unity2D] 2D Sprite에 Text 추가하기
Unity 2025. 12. 29. 14:15 |2D Sprite에 Text를 추가해 보자.





하지만 텍스트 길이에 따라 항상 이미지 크기를 조절해야 한다.
Content Size Fitter 컴포넌트와 간단한 스크립트를 사용하면 자동으로 텍스트 길이에 맞는 이미지를 표시할 수 있다.
실습을 위해 위 이미지를 임포트한다.


2D Sprite Renderer에는 위 이미지 파일을 지정하고 자식(텍스트) 오브젝트에는 Content Size Fitter 컴포넌트를 추가하고 아래와 같이 설정한다.

Content Size Fitter - Horizontal Fit - Preferred Size로 변경한다.
이제 Rect Transform - Width 필드가 비활성화 되어 수정할 수 없게 된다.
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class word : MonoBehaviour
{
void Start()
{
RectTransform crt = GetComponentInChildren<RectTransform>();
crt.gameObject.GetComponent<TextMeshPro>().text = "Very very long long text";
// 미리 자식 오브젝트 Rect Transform을 가져오고, TextMeshPro - text 변경
LayoutRebuilder.ForceRebuildLayoutImmediate(crt);
// Forces an immediate rebuild of the layout element and child layout elements
// affected by the calculations.
// 위에서 TexhMeshPro - text 값이 변경되고 Content Size Fitter에 의해
// Rect Transform - Width(sizeDelta.x) 값이 변경 되지만 바로 되지는 않는다.
// 아래 코드에서 값을 가져오기 전에 업데이트 한다.
Debug.Log(crt);
Debug.Log(crt.sizeDelta.x);
SpriteRenderer sr = GetComponent<SpriteRenderer>();
sr.size = new Vector2(crt.sizeDelta.x + 0.7f, sr.size.y);
// 폰트, 폰트 사이즈, 이미지에 따라 다르겠지만 이 예제의 경우
// Rect Transform - Width(sizeDelta.x) 값에 0.7f를 더하면 적당하다.
}
void Update()
{
}
}
Sprite Renderer가 있는 부모 오브젝트(Square)에 위 스크립트를 추가한다.


게임을 실행하면 텍스트가 바뀌고 그에 맞게 이미지의 길이도 자동으로 변경된다.
'Unity' 카테고리의 다른 글
| [Unity2D] 텍스트 길이에 맞게 사이즈 자동 조절되는 이미지 (0) | 2025.12.29 |
|---|---|
| [Unity] RectTransform with Content Size Filter (0) | 2025.12.29 |
| [Unity] Transparent Background Application 투명 배경 애플리케이션 (0) | 2025.12.24 |
| [Unity] Input System Package 유니티 입력 시스템 (0) | 2025.12.24 |
| [Unity2D] Tilemap & Sprite Collision and Shadow 타일맵 & 스프라이트 충돌 및 그림자 (2) | 2025.06.02 |
