public IEnumerator Init()
    {
        float nextFlameTime = Clac.NextFlameTime();

        System.Array.Resize(ref starTrans, starGenerateCount * parentTrans.Length);

        int generateCount = 0;

        for (int i = 0; i < parentTrans.Length; i++)
        {
            for (int j = 0; j < starGenerateCount; j++)
            {
                // 処理時間がフレームレートの80%を超えたら次のフレームへ
                if (Time.realtimeSinceStartup >= nextFlameTime)
                {
                    yield return(null);

                    nextFlameTime = Clac.NextFlameTime();
                }

                Vector3 genetatePos = new Vector3(0,
                                                  starInterval * j, 0);

                starTrans[generateCount] = Instantiate(starObj, parentTrans[i]).transform;
                starTrans[generateCount].localPosition = genetatePos;

                generateCount++;
            }
        }
    }
Example #2
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++;
        }
    }
Example #3
0
    public IEnumerator Init(ChartStruct chart, Transform laneParent)
    {
        float nextFlameTime = Clac.NextFlameTime();
        int   measureLength = Clac.MeasureByTimingCount(chart.chartLength, chart.beat, chart.beatParam, chart.tempoChangers);

        System.Array.Resize(ref measureLines, measureLength);

        for (int i = 0; i < measureLines.Length; i++)
        {
            measureLines[i] = Instantiate(measureObj, laneParent);
            int measureTiming = Clac.TimingCountByMeasure(i, chart.beat, chart.beatParam, chart.tempoChangers);
            measureLines[i].Init(Clac.ShowTimingCount(measureTiming, chart.chartEffecters), measureTiming);
            // 処理時間がフレームレートの80%を超えたら次のフレームへ
            if (Time.realtimeSinceStartup >= nextFlameTime)
            {
                yield return(null);

                nextFlameTime = Clac.NextFlameTime();
            }
        }
    }
    public IEnumerator Init()
    {
        float nextFlameTime = Clac.NextFlameTime();

        ParticlePoolStruct[] particlePools = particlePoolData.particlePools;

        Array.Resize(ref particleCurrentElement, particlePools.Length);
        Array.Resize(ref particlesObjects, particlePools.Length);
        for (int i = 0; i < particlesObjects.Length; i++)
        {
            Array.Resize(ref particlesObjects[i], particlePools[i].poolSize);
            for (int j = 0; j < particlesObjects[i].Length; j++)
            {
                // 処理時間がフレームレートの80%を超えたら次のフレームへ
                if (Time.realtimeSinceStartup >= nextFlameTime)
                {
                    yield return(null);

                    nextFlameTime = Clac.NextFlameTime();
                }

                particlesObjects[i][j] = Instantiate(particlePools[i].particle, particleParent);
            }
        }

        Array.Resize(ref judgeTexts, generateTextCount);
        for (int i = 0; i < generateTextCount; i++)
        {
            // 処理時間がフレームレートの80%を超えたら次のフレームへ
            if (Time.realtimeSinceStartup >= nextFlameTime)
            {
                yield return(null);

                nextFlameTime = Clac.NextFlameTime();
            }

            judgeTexts[i] = Instantiate(judgeTextObj, textParent);
        }
    }
    public IEnumerator Init(int laneLength)
    {
        float nextFlameTime = Clac.NextFlameTime();

        Array.Resize(ref nextNotes, laneLength);
        Array.Resize(ref laneNextCount, laneLength);
        Array.Resize(ref inputName, laneLength);


        for (int i = 0; i < laneLength; i++)
        {
            // 処理時間がフレームレートの80%を超えたら次のフレームへ
            if (Time.realtimeSinceStartup >= nextFlameTime)
            {
                yield return(null);

                nextFlameTime = Clac.NextFlameTime();
            }

            laneNextCount[i] = 0;
            inputName[i]     = Enum.GetName(typeof(InputButton), i);
            SetNextNote(i);
        }
    }