public void BmsLoad(string[] lineData) { BarData barData; foreach (string line in lineData) { if (line.StartsWith("#")) { string[] data = line.Split(' '); // 데이터 섹션이 아니면서 헤더 데이터가 없는 경우에는 건너 뜀. if (data[0].IndexOf(":") == -1 && data.Length == 1) { continue; } // 헤더 섹션. if (data[0].Equals("#TITLE")) { bms.setTitle(data[1]); title.text = "Title : " + data[1]; } else if (data[0].Equals("#ARTIST")) { bms.setArtist(data[1]); artist.text = "Artist : " + data[1]; } else if (data[0].Equals("#BPM")) { bms.setBpm(float.Parse(data[1])); beatCreator.bpm = (float)float.Parse(data[1]); bpm.text = "BPM : " + data[1]; } else if (data[0].Equals("#PLAYER")) { } else if (data[0].Equals("#GENRE")) { } else if (data[0].Equals("#PLAYLEVEL")) { } else if (data[0].Equals("#RANK")) { } else if (data[0].Equals("#TOTAL")) { } else if (data[0].Equals("#VOLWAV")) { } else if (data[0].Equals("#MIDIFILE")) { } else if (data[0].Substring(0, 4).Equals("#WAV")) { } else if (data[0].Equals("#BMP")) { } else if (data[0].Equals("#STAGEFILE")) { } else if (data[0].Equals("#VIDEOFILE")) { } else if (data[0].Equals("#BGA")) { } else if (data[0].Equals("#STOP")) { } else if (data[0].Equals("#LNTYPE")) { bms.setLnType(int.Parse(data[1])); } else if (data[0].Equals("#LNOBJ")) { } else if (data[0].IndexOf(":") != -1) { // 위의 경우에 모두 해당하지 않을 경우, 데이터 섹션. int bar = 0; Int32.TryParse(data[0].Trim().Substring(1, 3), out bar); int channel = 0; Int32.TryParse(data[0].Trim().Substring(4, 2), out channel); string noteStr = data[0].Trim().Substring(7); List <Dictionary <int, float> > noteData = getNoteDataOfStr(noteStr, bar, bms.getBpm()); // 노트 데이터 생성 barData = gameObject.AddComponent <BarData>(); barData.setBar(bar); barData.setChannel(channel); barData.setNoteDataList(noteData); //barData.debug(); bms.addBarData(barData); } } } if (bms.getBarDataList().Count != 0) { isFinishLoad = true; } //bms.debug(); }
public void BmsLoad(string[] lineData) { Debug.Log("----BmsLoader:BmsLoad()----"); bms = gameObject.AddComponent <Bms>(); BarData barData; foreach (string line in lineData) { if (line.StartsWith("#")) { string[] data = line.Split(' '); if (data[0].IndexOf(":") == -1 && data.Length == 1) { continue; } if (data[0].Equals("#TITLE")) { bms.setTitle(data[1]); } else if (data[0].Equals("#ARTIST")) { bms.setArtist(data[1]); } else if (data[0].Equals("#BPM")) { bms.setBpm(double.Parse(data[1])); } else if (data[0].Equals("#PLAYER")) { } else if (data[0].Equals("#GENRE")) { } else if (data[0].Equals("#PLAYLEVEL")) { } else if (data[0].Equals("#RANK")) { } else if (data[0].Equals("#TOTAL")) { } else if (data[0].Equals("#VOLWAV")) { } else if (data[0].Equals("#MIDIFILE")) { } else if (data[0].Substring(0, 4).Equals("#WAV")) { } else if (data[0].Equals("#BMP")) { } else if (data[0].Equals("#STAGEFILE")) { } else if (data[0].Equals("#VIDEOFILE")) { } else if (data[0].Equals("#BGA")) { } else if (data[0].Equals("#STOP")) { } else if (data[0].Equals("#LNTYPE")) { bms.setLnType(int.Parse(data[1])); } else if (data[0].Equals("#LNOBJ")) { } else if (data[0].IndexOf(":") != -1) { int bar = 0; int channel = 0; Int32.TryParse(data[0].Trim().Substring(1, 3), out bar); Int32.TryParse(data[0].Trim().Substring(4, 2), out channel); string noteStr = data[0].Trim().Substring(7); List <Dictionary <int, float> > noteData = getNoteDataOfStr(noteStr, bar, bms.getBpm()); // create note data barData = gameObject.AddComponent <BarData>(); barData.setBar(bar); barData.setChannel(channel); barData.setNoteDataList(noteData); bms.addBarData(barData); } } } if (bms.getBarDataList().Count != 0) { isFinishLoad = true; } }