public void SetMusicData(int difficulty, string id) { try { MusicDataLoader.MusicProperty data = GetComponent <MusicDataLoader>().getMusicProperty(id); if (data.level[difficulty] == -1) { return; } //Frame RawImage Frame = GetComponent <RawImage>(); Frame.texture = FrameTexture[difficulty]; //Title MusicTitleUI.text = data.music; //Credits CreditsUI.text = data.credits; //Artwork byte[] bytes = File.ReadAllBytes("Music/" + id + "/image.png"); Texture2D texture = new Texture2D(500, 500); texture.LoadImage(bytes); ArtworkUI.texture = texture; //BPM BPMUI.text = "BPM " + GetComponent <MusicDataLoader>().getNotesData(difficulty, id).BPM.ToString(); //Level LevelUI.text = data.level[difficulty].ToString(); //Score & Combo ScoreController.Score temp = ScoreController.LoadScore(DataHolder.UserID, difficulty, id); ComboUI.text = "COMBO " + temp.MaxCombo.ToString(); ScoreUI.text = temp.MaxScore.ToString(); //Time string path = "Music/" + id + "/music.wav"; StartCoroutine(SetAudioTime(path)); } catch (Exception e) { Debug.LogError(e.Message); } }
private void Awake() { if (MusicID == "") { DebugMode = false; } else { DebugMode = true; } flag = false; sequence = DOTween.Sequence(); if (!DebugMode) { SceneChange = GameObject.Find("SceneChangeEnd"); } //初期座標設定 Background.localPosition = new Vector3(-1100f, Background.localPosition.y, Background.localPosition.z); Panel.localPosition = new Vector3(-950f, Panel.localPosition.y, Panel.localPosition.z); Artwork.localPosition = new Vector3(Artwork.localPosition.x, 180f, Artwork.localPosition.z); ArtworkImage.color = new Color(1f, 1f, 1f, 0f); Result.localPosition = new Vector3(-470f, Result.localPosition.y, Result.localPosition.z); Result.gameObject.SetActive(false); for (int i = 0; i < 5; i++) { Judgement[i].gameObject.SetActive(false); Judgement[i].localPosition = new Vector3(-300f - i * 20f, Judgement[i].localPosition.y, Judgement[i].localPosition.z); } Score.localPosition = new Vector3(-600f, Score.localPosition.y, Score.localPosition.z); Score.gameObject.SetActive(false); NewRecord.gameObject.SetActive(false); Rank.localScale = new Vector3(0f, 0f, 1f); RankImage.color = new Color(1f, 1f, 1f, 0f); PressButton.color = new Color(1f, 1f, 1f, 0f); //BGM 設定 string path = "Audio/result.wav"; StartCoroutine(GetAudioClip(path)); //値設定 if (!DebugMode) { UserID = DataHolder.UserID; ScoreValue = DataHolder.Score; ComboValue = DataHolder.Combo; MaximumScore = DataHolder.MaximumScore; MaximumCombo = DataHolder.MaximumCombo; Difficulty = DataHolder.Difficulty; MusicID = DataHolder.NextMusicID; ScoreController.Score sc = ScoreController.LoadScore(UserID, Difficulty, MusicID); CurrentHighscore = sc.MaxScore; CurrentMaxCombo = sc.MaxCombo; OldHighscore.text = LintNumber(7, sc.MaxScore); OldMaxcombo.text = LintNumber(4, sc.MaxCombo); for (int i = 0; i < 5; i++) { Judgement[i].Find("Text").GetComponent <TextMeshProUGUI>().text = LintNumber(4, DataHolder.JudgementAmount[i]); } } MusicDataLoader.MusicProperty MusicData = GetComponent <MusicDataLoader>().getMusicProperty(MusicID); if (!DebugMode) { Panel.Find("Level").Find("Text").GetComponent <Text>().text = MusicData.level[Difficulty].ToString(); Panel.Find("Difficulty").GetComponent <Text>().text = DifficultyName[Difficulty]; ScorePercentage = ((float)ScoreValue / (float)MaximumScore) * 100f; ComboPercentage = ((float)ComboValue / (float)MaximumCombo) * 100f; } Panel.Find("Title").GetComponent <Text>().text = MusicData.music; Panel.Find("Author").GetComponent <Text>().text = MusicData.credits; if (ScorePercentage >= 90) { RankImage.texture = RankImageSoruce[0]; } else if (ScorePercentage < 90 && ScorePercentage >= 80) { RankImage.texture = RankImageSoruce[1]; } else if (ScorePercentage < 80 && ScorePercentage >= 70) { RankImage.texture = RankImageSoruce[2]; } else if (ScorePercentage < 70) { RankImage.texture = RankImageSoruce[3]; } //Artwork byte[] bytes = System.IO.File.ReadAllBytes("Music/" + MusicID + "/image.png"); Texture2D texture = new Texture2D(55, 55, TextureFormat.ARGB4444, false); texture.LoadImage(bytes); texture.Compress(false); ArtworkImage.sprite = Sprite.Create(texture, new Rect(0f, 0f, texture.width, texture.width), new Vector2(0.5f, 0.5f)); //Background sequence.Insert(2f, Background.DOLocalMoveX(-410f, 0.5f).SetEase(Ease.OutQuint) ); //Panel sequence.Insert(2.5f, Panel.DOLocalMoveX(-490f, 0.5f).SetEase(Ease.OutQuint) ); //Artwork sequence.Insert(2.5f, Artwork.DOLocalMoveY(125f, 0.5f).SetEase(Ease.OutQuint) ); sequence.Insert(2.5f, DOTween.ToAlpha(() => ArtworkImage.color, color => ArtworkImage.color = color, 1f, 0.5f ).SetEase(Ease.OutQuint) ); //Result sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Result.gameObject.SetActive(true) ) ); sequence.Insert(2.5f, Result.DOLocalMoveX(250f, 0.5f).SetEase(Ease.OutQuint) ); //Judgement sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Judgement[0].gameObject.SetActive(true) ) ); sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Judgement[1].gameObject.SetActive(true) ) ); sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Judgement[2].gameObject.SetActive(true) ) ); sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Judgement[3].gameObject.SetActive(true) ) ); sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Judgement[4].gameObject.SetActive(true) ) ); for (int i = 0; i < 5; i++) { sequence.Insert(3f + 0.25f * i, Judgement[i].DOLocalMoveX(180f - i * 20f, 0.5f).SetEase(Ease.OutQuint) ); } //Score sequence.Insert(2.5f, DOVirtual.DelayedCall(0f, () => Score.gameObject.SetActive(true) ) ); sequence.Insert(4.5f, Score.DOLocalMoveX(250f, 1f).SetEase(Ease.OutQuint) ); int ScoreNumber = 0; sequence.Insert(5f, DOTween.To(() => ScoreNumber, (n) => ScoreNumber = n, ScoreValue, 1.5f) .OnUpdate(() => Score.Find("Score").GetComponent <TextMeshProUGUI>().text = LintNumber(7, ScoreNumber)) ); sequence.Insert(5f, DOVirtual.DelayedCall(0f, () => audioSource.PlayOneShot(audioSource.clip) ) ); sequence.Insert(5.5f, DOVirtual.DelayedCall(0f, () => { Score.Find("ScorePercentage").GetComponent <Text>().text = ((int)ScorePercentage).ToString() + "%"; if (CurrentHighscore < ScoreValue) { NewRecord.gameObject.SetActive(true); } } ) ); int ComboNumber = 0; sequence.Insert(5.25f, DOTween.To(() => ComboNumber, (n) => ComboNumber = n, ComboValue, 1f) .OnUpdate(() => Score.Find("Combo").GetComponent <TextMeshProUGUI>().text = LintNumber(4, ComboNumber)) ); sequence.Insert(5.5f, DOVirtual.DelayedCall(0f, () => { Score.Find("ComboPercentage").GetComponent <Text>().text = ((int)ComboPercentage).ToString() + "%"; } ) ); //Rank sequence.Insert(5.5f, DOTween.ToAlpha(() => RankImage.color, color => RankImage.color = color, 1f, 0.5f ).SetEase(Ease.OutQuint) ); sequence.Insert(5.5f, Rank.DOScale(new Vector3(1f, 1f, 1f), 0.5f).SetEase(Ease.OutQuint) ); //Finish sequence.Insert(7f, DOTween.ToAlpha(() => PressButton.color, color => PressButton.color = color, 1f, 0.5f ).SetEase(Ease.OutQuint) ); sequence.Insert(7f, DOVirtual.DelayedCall(0f, () => flag = true ) ); if (!DebugMode) { float timeDelay = 0.5f; GameObject[] changer = new GameObject[4]; RectTransform[] rectTran = new RectTransform[4]; for (int i = 0; i < 4; i++) { changer[i] = GameObject.Find("SceneChangeEnd").transform.Find(i.ToString()).gameObject; rectTran[i] = changer[i].GetComponent <RectTransform>(); } sceneChangeTween = DOTween.Sequence(); for (int i = 0; i < 4; i++) { sceneChangeTween.Insert(1 + 0.25f * (3 - i), rectTran[i].DOLocalMoveX(-1280, timeDelay).SetEase(Ease.OutQuint) ); } sceneChangeTween.Join( DOVirtual.DelayedCall(6f, () => { Destroy(SceneChange); sequence.Play(); }) ); } }