public void changeTalk(int targetId) { if (targetId == TALK_END) { closeTalk(); } else { foreach (LTalk talk in talks) { if (talk.id == targetId) { // npc.sendMessage(currentTalk.message[0], currentTalk.message[1]); currentTalk = talk; this.setNpcTalk(); this.setPlayerAnswer(); // Debug.Log(currentTalk.answers[0].targetId); // Debug.Log(currentTalk.answers[1].targetId); // Debug.Log(currentTalk.answers[2].targetId); // Debug.Log(currentTalk.answers[3].targetId); if (currentTalk.message[0] != "") { sendMessage(); } break; } } } }
void loadTalkScript(string npcName, string fileName) { this.npcName = npcName; talks = new List <LTalk>(); TextAsset data = Resources.Load(fileName, typeof(TextAsset)) as TextAsset; StringReader sr = new StringReader(data.text); LTalk talk = new LTalk(); int answerNum = 0; string line; string[] splitedLine = new string[3]; line = sr.ReadLine(); while (line != null) { splitedLine = line.Split(','); if (splitedLine[0] == "id") { talk.id = int.Parse(splitedLine[1]); } else if (splitedLine[0] == "text") { talk.text = splitedLine[1]; } else if (splitedLine[0] == "message") { talk.message[0] = splitedLine[1]; talk.message[1] = splitedLine[2]; } else if (splitedLine[0] == "answer") { if (answerNum >= 4) { continue; } talk.answers[answerNum].text = splitedLine[1]; talk.answers[answerNum].targetId = int.Parse(splitedLine[2]); answerNum += 1; } else if (splitedLine[0] == "") { for (int i = answerNum; i < 4; i++) { talk.answers[answerNum].text = ""; talk.answers[answerNum].targetId = NO_SELECTION; answerNum += 1; } answerNum = 0; talks.Add(talk); talk = new LTalk(); } line = sr.ReadLine(); } changeTalk(0); }