마지막으로 필요한 구성 요소가 하나 있습니다. 대화를 통해 재생할 때 사용자의 선택을 어딘가에 기록할 수 있습니다. 원사 스피너는 게임 상태를 저장하는 방법에 대한 세부 사항에 대해 신경 쓰지 않습니다. 대신 «set 변수»및 «변수값 얻기»와 같은 메서드를 정의하는 C# 인터페이스를 준수하는 개체를 제공 할 것으로 예상됩니다. 일반적으로 Lua 코드에 지정된 조건 필드를 사용하여 대화 항목에 조건을 추가합니다. 그러나 Lua 외부에서 추가 검사를 수행해야 하는 경우 대화 관리자의 IsDialogueEntryValid 대리자를 설정할 수 있습니다. true 또는 false를 반환하는 C# 메서드입니다. true를 반환하면 대화 항목이 현재 대화에서 사용할 것으로 간주됩니다. 다른 기능 들 중대화를 시작할 수 있는 다목적 트리거링 구성 요소인 대화 시스템 트리거를 사용할 수도 있습니다. 대화를 특정 문자로 가리킬 필요가 있는 경우 대화 트리거의 행위자 및 컨버전 트 필드를 수동으로 할당하여 대화의 액터 정의와 일치하도록 합니다. 참고: 이 자습서에서는 Unity에 대해 조금 알고 있다고 가정합니다. 특히 Unity 편집기를 둘러볼 수 있는 방법, 게임 오브젝트를 다루는 방법, C#에서 스크립트를 작성하는 방법을 아는 것이 좋습니다. 이러한 사항을 모르는 경우 Unity 설명서를 참조하십시오.

기본적으로 대화 시스템은 각 자막의 컷씬 시퀀스가 완료되면 대화를 자동으로 진행합니다. 플레이어가 «계속» 버튼을 클릭하여 수동으로 대화를 진행하도록 하려면 다음 단계를 따르세요. 이를 통해 게임 세계의 모든 상점 주인과 동일한 상점 주인 대화를 재사용하는 등 다양한 캐릭터에 대한 대화를 재사용할 수 있습니다. 대화 데이터베이스에서 «Shopkeeper»라는 일반 액터를 만들 수 있습니다. 내 가게에 오신 것을 환영합니다!» 등 그런 다음 각 마을의 상점 주인과 같은 상점 주인의 대화를 재사용하고 특정 마을 상점 주인을 대화 트리거의 컨버전 필드에 할당하십시오. 원사에서 게임에 무언가를 수행하도록 지시하는 명령을 만들 수 있습니다. 예를 들어 캐릭터가 화면의 특정 지점으로 이동하도록 하려면 원사 스피너가 yarnspinner.dll 파일과 Unity용 지원 스크립트 몇 개로 구성됩니다. 이 dll 파일은 원사 파일을 구문 분석하고 실행하는 데 많은 노력을 합니다. 원사 스피너는 Unity의 UI 시스템을 사용하는 예제 스크립트와 함께 제공됩니다. 시작하기에 좋은 장소입니다.

원사 대화는 DialogueRunner 개체에 의해 로드되고 관리됩니다. 이 개체는 Yarn .json 파일을 로드하고 구문 분석하는 작업을 담당합니다. 또한 게임의 캐릭터에게 다가가 서 이야기 할 때와 같은 스크립트를 실행합니다. 아래 의 샘플 스크립트는 대화 활동을 기록합니다. 플레이어와 같은 액터에 추가합니다. 원사 스피너는 실제로 당신에게 대화를 제시의 모든 작업을 떠난다; 플레이어가 보아야 할 선을 전달하고 원사 스피너에게 사용자가 선택한 응답에 대해 알리는 것이 전부입니다. 원사 스피너를 소개하기 위해 빈 Unity 프로젝트를 만든 다음 처음부터 빌드하여 샘플 대화를 진행합니다. 먼저 완성된 프로젝트를 보고 싶다면 원사 스피너를 다운로드하고 Unity 편집기에서 Unity 폴더를 엽니다. 이 로드된 프로젝트의 독립 실행형 버전을 빌드하려면 이 설명서의 끝으로 건너뜁니다. 다음은 IsDialogueEntryValid의 실제 예입니다. UnityDialogueUI의 하위 클래스에 있지만 아무 곳에도 넣을 수 있습니다.