bool AnalyseOneLine(string str) { if (str.StartsWith("<")) { if (str.Length < 3) { Debug.LogError("无法解析对话文本数据,指令长度过短"); return(false); } string[] paramsStr = str.Substring(3).Trim().Split(','); switch (str.Substring(1, 2).ToLower()) { case "pp": //+8,1,0 设置人物id位置和头像,split获取数组,判断数组长度,若为3则新建并激活位置,为1则激活某个位置 Position,Portrait if (paramsStr.Length != 3) { DebugParamError("pp"); } else { ShowCharacter(int.Parse(paramsStr[0]), int.Parse(paramsStr[1]), int.Parse(paramsStr[2])); } break; case "ap": //激活pos处的人物头像 Active,Position if (paramsStr.Length != 1) { DebugParamError("ap"); } else { ActivePosition(int.Parse(paramsStr[0])); } break; case "rp": //删除pos处的人物头像 Delete,Position if (paramsStr.Length != 1) { DebugParamError("rp"); } else { HideCharacter(int.Parse(paramsStr[0])); } break; case "sp": //抖动此处的头像 Shake,Portrait if (paramsStr.Length != 1) { DebugParamError("sp"); } else { ShakePosition(int.Parse(paramsStr[0])); } break; case "su": //抖动整个UI界面且 break; case "cm": //更换音乐 Change,Music if (paramsStr.Length != 1) { DebugParamError("cm"); } else { musicController.PlayBGMImmediate(int.Parse(paramsStr[0])); } break; case "lv": //降低音量 Lower,Volume musicController.LowerBGM(); break; case "rv": //重置音量 Reset,Volume musicController.NormalBGM(); break; case "cb": //以某种过渡方式更换背景 Change,Background if (paramsStr.Length == 2) { FadeBackground(int.Parse(paramsStr[0]), float.Parse(paramsStr[1])); } else { DebugParamError("cb"); } break; case "at": //自动播放文本 Auto Text bAutoText = true; break; case "sa": //停止自动文本显示 Stop Auto bAutoText = false; break; } return(false); } else { SetTextFrameActive(true); if (lastLineIndex != scriptLineIndex)//翻译的不是同一行 { StartCoroutine(Typing(str)); } return(!bAutoText); } }