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
'GameDevelop > Unity팀프로젝트' 카테고리의 다른 글
Unity 2D 게임에서 패럴랙스 배경 만들기 + 무한 반복 연결 (3) | 2025.07.25 |
---|---|
Unity 컷신에 애니메이션 넣기 (Dialogue System 연동) (0) | 2025.07.24 |
Unity 트러블슈팅 | Dialogue System으로 컷신 대사 출력이 안되는 문제 (0) | 2025.07.22 |
Unity Dialogue System | 컷씬 대사와 상호작용 대사는 따로 관리해야 할까? (1) | 2025.07.21 |
[Unity] Dialogue System으로 NPC 대화 시스템 구현 (0) | 2025.07.18 |