//-------------私有方法------------------------ /* * 生成比较结果的进程 */ private void processMarching() { List <TaskTransform> listTasks = TaskManager.Instance.GetTasks(); List <AudioPart> listAudioParts = AudioEditManagercs.Instance.GetAudioPartsList(); /* * 生成第一次比较结果 */ TaskTransform t = null; AudioPart a = null; TaskResult tr = null; float matchRateThanTask = 0; float matchRateThanAudioPart = 0; float LOWER_MAIN_BODY_MARCH_RATE = 0.5f; int startMarchIndex = 0; int stopMarchIndex = 0; for (int i = 0; i < listTasks.Count; ++i) { t = listTasks[i]; t.ListTaskResult.Clear(); for (int z = 0; z < listAudioParts.Count; ++z) { a = listAudioParts[z]; matchRateThanTask = ArrayUtil <string> .CaculateRegularSimilar(t.arrStrPingYing, a.textPingYinArr); //StringUtil.CaculateStringSimilar(t.StrTaskWord, a.strText);// 解决复杂度 matchRateThanAudioPart = ArrayUtil <string> .CaculateRegularSimilar(a.textPingYinArr, t.arrStrPingYing); //StringUtil.CaculateStringSimilar(a.strText, t.StrTaskWord); if (matchRateThanTask >= LOWER_MAIN_BODY_MARCH_RATE) { tr = new TaskResult(); tr.MarchRate = (matchRateThanTask + matchRateThanAudioPart) / 2.0f; tr.ListAudioParts.Add(a); t.ListTaskResult.Add(tr); if (matchRateThanAudioPart > matchRateThanTask) { tr = new TaskResult(); tr.MarchRate = (matchRateThanTask + matchRateThanAudioPart) / 2.0f - 0.1f; int index = AudioEditManagercs.Instance.GetIndexByAudioPart(a); if (index != -1) { for (int x = 0; x < 3; x++) { AudioPart apNow = AudioEditManagercs.Instance.GetAudioPartByIndex(index - 1 + x); tr.ListAudioParts.Add(apNow); } t.ListTaskResult.Add(tr); } } } } } TaskManager.Instance.SaveTasksConfig(); }
/* * 标记任务未玩成 */ public void MarkUnFinish(TaskTransform task) { int index = findTaskAtInidex(task); if (index != -1) { task.IsFinish = false; setAudioPartFinishOrNotOnSlider(index, task.IsFinish); } }
private int findTaskAtInidex(TaskTransform task) { for (int i = 0; i < listTasks_.Count; ++i) { if (listTasks_[i] == task) { return(i); } } return(-1); }
//--------------对外接口-------------------- public void SetData(TaskTransform t) { t_ = t; t_.ListTaskResult.Sort( delegate(TaskResult a, TaskResult b) { if (a.MarchRate > b.MarchRate) { return(-1); } else { return(1); } }); MyTableViewTaskResult.SetData(t_.ListTaskResult); }
//------------------私有方法---------------- //------------------对外接口---------------- public bool InitByExcel(string path, string outputPath) { strOutPutPath_ = outputPath; //if (File.Exists(path)) // { FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); var result = excelReader.AsDataSet(); int index = 0; int y = 0; //int columns = result.Tables[0].Columns.Count;//获取列数 int rows = result.Tables[0].Rows.Count;//获取行数 while (true) { y = index + 1; if (rows <= y) { break; } string tempword = result.Tables[0].Rows[y][2].ToString(); string tempAudio = result.Tables[0].Rows[y][0].ToString(); Debug.Log("tempword" + tempword); TaskTransform t = new TaskTransform(); t.ExcelCol = y; t.StrAudioId = tempAudio; t.StrTaskWord = tempword; t.arrStrPingYing = StringUtil.GetPingYingArrayFromChinaString(StringUtil.GetChinaWordFromString(t.StrTaskWord)); listTasks_.Add(t); index++; } TasksConfig tc = new TasksConfig(); tc.ListTasks = listTasks_; string strJson = JsonUtility.ToJson(tc); FileUtil.CreateFile(outputPath, FILE_NAME_TASKS_CONFIG, strJson); stream.Close(); return(true); // } //else { return false; } }
/* * 打开任务编辑层 */ public void OpenEditTaskView(TaskTransform task) { EditResultLayer.SetData(task); EditResultLayer.gameObject.SetActive(true); }