private void SetUpTuneByArray(float startIndex, NoteData[] indexItems) { var noteNum = indexItems.Length; for (var i = 0; i < noteNum; i++) { var noteData = indexItems[i]; var index = noteData.index; NoteItem parentNode = null; var notesLength = noteData.notes.Length; for (var j = 0; j < notesLength; j++) { var child = noteData.notes[j]; var xId = child.x; var state = child.state; var offset = child.offset; var note = CreateOneNote((float)index + offset, xId, state); noteItems.Add(note); // 連結子ノーツを親ノーツに追加 switch (state) { case NoteState.KillUnit: // 横連結ノーツの場合 if (notesLength > 1) { if (j == 0) { var lastChild = noteData.notes[notesLength - 1]; note.hasLine = true; note.lineLength = lastChild.x - xId; parentNode = note; } else if (j == notesLength - 1) { parentNode?.AddChildNote(note); } } break; case NoteState.KillLinkStart: parentNode = note; break; case NoteState.KillLinkEnd: parentNode?.AddChildNote(note); break; default: break; } } } }