본문 바로가기
유니티 최고/유니티 구현

[Unity] 유니티 텍스트 입력에 따라 변하는 동적 채팅 UI

by Lee_story_.. 2025. 2. 19.
728x90

 

오늘도 간단하게 하나 구현해보려합니다!

게임속 캐릭터들의 말풍선.... 텍스트에 따라 크기가 변경되는 경우가 있는데,

이 경우를 어떻게 처리 해주어야할까.....

 

하다가 굳굳 생각보다 간단하게 구현할 수 있었습니다. 

 

 

 

 

일단 코드는!

아래처럼 구성해주었습니다.

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class DynamicMessageBox_test : MonoBehaviour
{
    public TextMeshProUGUI messageText;  // 동적 변경할 텍스트
    public RectTransform background;     // 배경 (Panel)

    private float maxWidth = 300f;  // 최대 너비 제한

    private Vector2 padding = new Vector2(20f, 10f); // 좌우 여백 (X: 좌우, Y: 상하)

    void Start()
    {
        maxWidth = messageText.gameObject.GetComponent<RectTransform>().sizeDelta.x;
    }

    private void Update()
    {
        // 텍스트 크기 가져오기
        Vector2 textSize = messageText.GetPreferredValues();

        // 배경 크기 조정 (텍스트 크기 + 패딩 적용)
        float width = Mathf.Min(textSize.x, maxWidth) + 50f;
        background.sizeDelta = new Vector2(width, textSize.y + padding.y);
    }
}

 

간단하게 텍스트와 말풍선 역할을 할 ui를 받아오고,

텍스트의 크기에따라 말풍선의 크기를 조절해주는 간단한방식 

 

 

 

 

씬은 아래처럼 구성해 주었고,

 

 

 

 

Text는... 딱히 변경된 부분은 없습니다!

 

 

 

결과는... 오... 굳굳

 

 

 

 

 

 

끝!

 



틀린점이 있다면 댓 달아주세요!

728x90

댓글