public IEnumerator GenerateNotes(RuleStruct gaugeRule, ChartStruct chart, GameObject[] laneObjs) { Array.Resize(ref notes, laneObjs.Length); int[] laneNoteCount = new int[notes.Length]; for (int i = 0; i < notes.Length; i++) { Array.Resize(ref notes[i], 1); laneNoteCount[i] = 0; } float nextFlameTime = Clac.NextFlameTime(); int notesCount = 0; foreach (NotesStruct note in chart.notes) { // 処理時間がフレームレートの80%を超えたら次のフレームへ if (Time.realtimeSinceStartup >= nextFlameTime) { yield return(null); nextFlameTime = Clac.NextFlameTime(); } int lane = note.lane - 1; Transform noteObj = GenerateNote(note.type, note.lane, laneObjs).transform; NormalNotes generateNotes = noteObj.GetComponent <NormalNotes>(); // 光るノーツならマテリアルを変える Material noteMaterial = note.shiny ? shinyMaterial : null; generateNotes.Init(note, chart, noteMaterial); _totalCombo += generateNotes.ClacComboCount(); _totalGaugeCount += generateNotes.ClacGaugeCount(gaugeRule); Array.Resize(ref notes[lane], laneNoteCount[lane] + 1); notes[lane][laneNoteCount[lane]] = generateNotes; laneNoteCount[lane]++; notesCount++; } }
protected virtual void UpdateNotes(NormalNotes notes, int showTiming, float noteSpeed) { notes.MovePos(showTiming, noteSpeed, timeCountroller.EnableShowCount); }