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++; } } }
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++; } }
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); } }