コード例 #1
0
    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++;
        }
    }
コード例 #2
0
 protected virtual void UpdateNotes(NormalNotes notes, int showTiming, float noteSpeed)
 {
     notes.MovePos(showTiming, noteSpeed, timeCountroller.EnableShowCount);
 }