Asset Store에서 기본 3D 캐릭터 무료 Asset을 다운 받은 뒤 import한다.
TextArea
public class Dialogue
{
[TextArea] // 인스펙터를 통해 문장 수정 및 등록
public string dialogue;
public Sprite cg;
}
public class Test : MonoBehaviour
{
[SerializeField] private SpriteRenderer sprite_StandingCG; // 인물사진
[SerializeField] private SpriteRenderer sprite_DialogueBox; // 대화창
[SerializeField] private Text txt_Dialogue; // 대화내용
private bool isDialogue = false;
private int count = 0;
// 대사의 길이는 지정된 것이 아니므로 배열로 선언
[SerializeField] private Dialogue[] dialogue;
public void ShowDialogue()
{
Onoff(true);
count = 0;
NextDialogue();
} // 인물사진, 대화창, 대화내용 보여주는 함수
// 시작 눌렀을 때 인물사진, 대화창, 대화내용 띄우는 함수
private void Onoff(bool _flag)
{
sprite_DialogueBox.gameObject.SetActive(_flag);
sprite_StandingCG.gameObject.SetActive(_flag);
txt_Dialogue.gameObject.SetActive(_flag);
isDialogue = _flag;
}
// 다음 대화화면 이동 함수
private void NextDialogue()
{
txt_Dialogue.text = dialogue[count].dialogue;
sprite_StandingCG.sprite = dialogue[count].cg;
count ++;
}
// 마우스 왼쪽 클릭할때마다 다음 화면으로 넘어가기
void Update()
{
if(isDialogue)
{
if(Input.GetMouseButtonDown(0))
{
if(count < dialogue.Length)
NextDialogue();
else
Onoff(false);
}
}
}
}
-> [1. 대화 시작 버튼]
-> [2. NPC와 대화 진행]