GameDevelop/Unity팀프로젝트

Unity 컷씬에서 대사마다 이미지 바꾸기 (Dialogue System 활용)

도도돋치 2025. 7. 23. 19:51
Contents 접기
728x90

목표

Unity + PixelCrushers Dialogue System을 활용해 컷씬 대사마다 이미지를 바꾸는 기능을 구현했다.

 

  • Dialogue System의 대사 Title에 따라
  • 특정 이미지(Sprite)를 자동으로 바꾸는 연출 만들기

 

스크립트 구성

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using PixelCrushers.DialogueSystem;

public class ContinueImageChanger : MonoBehaviour
{
    [Header("이미지를 바꿀 타겟")]
    [SerializeField] private Image _targetImage;

    [System.Serializable]
    public class TitleImagePair
    {
        public string title;
        public Sprite sprite;
    }

    [Header("대사 Title 별로 바꿀 이미지 리스트")]
    [SerializeField] private List<TitleImagePair> _imagePairs;

    public void ChangeImageByTitle(Subtitle subtitle)
    {
        string title = subtitle.dialogueEntry.Title;

        foreach (var pair in _imagePairs)
        {
            if (pair.title == title)
            {
                _targetImage.sprite = pair.sprite;
                break;
            }
        }
    }

    public void ResetImage()
    {
        _targetImage.sprite = null;
    }
}

 

 

 

Unity 설정 방법

1️⃣ Dialogue Panel에 스크립트 추가

  • 빈 오브젝트 또는 Dialogue Panel에 ContinueImageChanger 스크립트 추가
  • Target Image에 바꿀 UI 이미지 드래그
  • Title-Image 매핑 리스트 채우기

예시:

Title Sprite
aText 1번 이미지
bText 2번 이미지
cText 3번 이미지

 


2️⃣ Dialogue System Events 연결

  • Dialogue System Events 컴포넌트 추가 (Dialogue Panel에)
  • On Conversation Line (Subtitle) 이벤트에
    ➕ 버튼 → ContinueImageChanger → ChangeImageByTitle(Subtitle) 연결!

 

실행결과

💬 대사 Title이 aText → 이미지 1
💬 다음 대사 Title이 bText → 이미지 2

 

text의 Title에 연결된 이미지로 바뀜

 

728x90