void Update() { if (NextNotesNumber <= (MaxNotesAmount - 1)) { if (TimeComponent.GetCurrentTimePast() >= NoteStartTime[NextNotesNumber] && TimeComponent.StartTime != 0) { AllNotes[NextNotesNumber].SetActive(true); if (Notes[NextNotesNumber].type == 2) { for (int i = 0; i < Notes[NextNotesNumber].notes.Length; i++) { AllNotesSlider[sliderNotesCount].SetActive(true); AllNotesSlider[sliderNotesCount + 1].SetActive(true); sliderNotesCount += 2; } } NextNotesNumber++; while (checkNextNoteIsSameTime(NextNotesNumber - 1)) { AllNotes[NextNotesNumber].SetActive(true); if (Notes[NextNotesNumber].type == 2) { for (int i = 0; i < Notes[NextNotesNumber].notes.Length; i++) { AllNotesSlider[sliderNotesCount].SetActive(true); AllNotesSlider[sliderNotesCount + 1].SetActive(true); sliderNotesCount += 2; } } NextNotesNumber++; } } } if (TimeComponent.GetCurrentTimePast() >= 15 && GameStatus == Status.InGame && audioSource.isPlaying == false && !FinishedFlag) { FinishedFlag = true; DOVirtual.DelayedCall(1f, () => { DebugLog("音楽が終了しました"); if (videoPlayer.isPlaying) { RawImage FadeInImage = rawImage.GetComponent <RawImage>(); DOTween.ToAlpha(() => FadeInImage.color, a => FadeInImage.color = a, 0f, 1f); } GameStatus = Status.Finished; //データホルダーに保存 DataHolder.Score = (int)System.Math.Round(ScoreCalculation.Score); DataHolder.MaximumScore = ScoreCalculation.MaximumScore; DataHolder.ScorePercentage = ScoreCalculation.ScorePercentage; DataHolder.Combo = ScoreCalculation.MaxCombo; DataHolder.MaximumCombo = ScoreCalculation.MaximumCombo; DataHolder.JudgementAmount = ScoreCalculation.JudgementCount; DataHolder.PlayedTime = DataHolder.PlayedTime + 1; //SceneChange float timeDelay = 0.5f; GameObject[] changer = new GameObject[4]; RectTransform[] rectTran = new RectTransform[4]; for (int i = 0; i < 4; i++) { changer[i] = SceneChangeEnd.transform.Find(i.ToString()).gameObject; rectTran[i] = changer[i].GetComponent <RectTransform>(); } changer[0].transform.parent.gameObject.SetActive(true); DontDestroyOnLoad(SceneChangeEnd); Sequence sceneChangeTween = DOTween.Sequence(); for (int i = 0; i < 4; i++) { changer[i].SetActive(true); sceneChangeTween.Insert(3 + 0.25f * i, rectTran[i].DOLocalMoveX(0, timeDelay).SetEase(Ease.OutQuint) ); } sceneChangeTween.Join( DOVirtual.DelayedCall(6f, () => { DataHolder.TemporaryGameObject = SceneChangeEnd; SceneManager.LoadScene("Result"); }) ); sceneChangeTween.Play(); }); } }
void Update() { if (this.gameObject.activeSelf) { transform.localPosition = new Vector3(transform.localPosition.x, GameManager.NoteY, transform.localPosition.z) - (new Vector3(0, 1f, 0) * speed * (float)(TimeComponent.GetCurrentTimePast() - StartTime)); } if (this.transform.position.y < -2.5f) { this.gameObject.SetActive(false); ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Miss, 3); } if (this.gameObject.activeSelf) { double diff = System.Math.Abs(TimeComponent.GetPressedKeyTime(Rail) - ArrivalTime); if (diff <= ScoreCalculation.DetectionRange.Bad && diff > ScoreCalculation.DetectionRange.Good) //Bad { this.gameObject.SetActive(false); ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Bad, 3); AddEffect(ScoreCalculation.Judgement.Bad); //GameManager.DebugLog(this.gameObject.name + "番のノーツ: Bad"); } else if (diff <= ScoreCalculation.DetectionRange.Good && diff > ScoreCalculation.DetectionRange.Great) //Good { audioSource[0].PlayOneShot(NoteGoodSE); this.gameObject.SetActive(false); ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Good, 3); AddEffect(ScoreCalculation.Judgement.Good); //GameManager.DebugLog(this.gameObject.name + "番のノーツ: Good"); } else if (diff <= ScoreCalculation.DetectionRange.Great && diff > ScoreCalculation.DetectionRange.Perfect) //Great { audioSource[0].PlayOneShot(NoteGreatSE); audioSource[1].PlayOneShot(NoteSpecialSE); this.gameObject.SetActive(false); ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Great, 3); AddEffect(ScoreCalculation.Judgement.Great); //GameManager.DebugLog(this.gameObject.name + "番のノーツ: Great"); } else if (diff <= ScoreCalculation.DetectionRange.Perfect && diff >= 0) //Perfect { audioSource[0].PlayOneShot(NotePerfectSE); audioSource[1].PlayOneShot(NoteSpecialSE); this.gameObject.SetActive(false); ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Perfect, 3); AddEffect(ScoreCalculation.Judgement.Perfect); //GameManager.DebugLog(this.gameObject.name + "番のノーツ: Perfect"); } } }
void Update() { if (this.gameObject.activeSelf) { //this.transform.localPosition -= new Vector3(0, 1f, 0) * speed * Time.fixedDeltaTime; transform.localPosition = new Vector3(transform.localPosition.x, StartPosY, transform.localPosition.z) - (new Vector3(0, 1f, 0) * speed * (float)(TimeComponent.GetCurrentTimePast() - StartTime)); float y = transform.localPosition.y; bool pressed = isPressing(GetHitting(y)); if (y <= DetectionLine) { //Mask += speed * Time.fixedDeltaTime; Mask = (speed * (float)(TimeComponent.GetCurrentTimePast() - ArrivalTime)); if (!flag && pressed) { flag = true; seFlag = true; audioSource.Play(); } } //描画処理 if (flag) { setMesh(width, length, Mask); CreateMesh(); } if (y + length < -2.5f) { gameObject.SetActive(false); } //効果音 if (seFlag && (y + length < DetectionLine || !pressed)) { audioSource.Stop(); seFlag = false; } if (pressed && !seFlag) { audioSource.Play(); seFlag = true; } //判定処理 scrolledTime = (float)(TimeComponent.GetCurrentTimePast() - ArrivalTime); if (scrolledTime >= SPB * count && scrolledTime + ArrivalTime <= FinishTime) { count++; if (pressed) { ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Perfect, 1); scoredFlag = false; } else { if (!scoredFlag) { if (flag) //一度押している { ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Bad, 1); scoredFlag = true; } else //一度も押していない { ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.Miss, 1); scoredFlag = true; } } else { ScoreCalculation.SetNoteJudgement(ScoreCalculation.Judgement.None, 1); } } } } }