private MusicStruct AdjustMusicStruct(MusicStruct musicStruct) { MusicStruct adjustStruct = new MusicStruct(); adjustStruct.composer = musicStruct.composer; adjustStruct.musicFileName = musicStruct.musicFileName; adjustStruct.musicName = musicStruct.musicName; adjustStruct.previewTime = musicStruct.previewTime; adjustStruct.musicVolume = musicStruct.musicVolume; adjustStruct.charts = new ChartStruct[0]; for (int i = 0; i < musicStruct.charts.Length; i++) { if (musicStruct.charts[i].notes == null) { continue; } if (musicStruct.charts[i].notes.Length == 0) { continue; } System.Array.Resize(ref adjustStruct.charts, adjustStruct.charts.Length + 1); adjustStruct.charts[adjustStruct.charts.Length - 1] = musicStruct.charts[i]; } return(adjustStruct); }
public static void WirteMusicStructData(MusicStruct musicStruct, string sourceMusicPath) { string json = GetChartJson(musicStruct); string chartName = musicStruct.musicName; string filePath = Application.streamingAssetsPath + Constant.musicDataDirectory + "/" + chartName; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string musicFilePath = filePath + "/" + musicStruct.musicFileName + Constant.musicExtension; if (sourceMusicPath != string.Empty) { if (!File.Exists(musicFilePath)) { File.Copy(sourceMusicPath, musicFilePath); } } string scoreDataJson = JsonUtility.ToJson(new ScoreDataStruct()); string dataFilePath = filePath + "/" + chartName; File.WriteAllText(dataFilePath + Constant.scoreExtension, scoreDataJson); File.WriteAllText(dataFilePath + Constant.chartExtension, json); }
public void Init() { _musicStruct = new MusicStruct(); _musicStruct.charts = new ChartStruct[5]; for (int i = 0; i < 5; i++) { _musicStruct.charts[i] = new ChartStruct(); } }
public IEnumerator StartInit() { Application.targetFrameRate = 60; loadName = StaticValue.loadName; if (Constant.CompareEnv(GameEnvironment.local)) { musicStruct = ChartUtility.LoadMusicData(loadName); } else if (Constant.CompareEnv(GameEnvironment.webGL)) { CacheStruct cacheStruct = ChartUtility.FindCacheStruct(loadName); musicStruct = cacheStruct.musicStruct; scoreData = cacheStruct.scoreStruct; } yield return(StartCoroutine(GameInit())); }
public bool LoadDemo() { if (!CanLoadScene()) { return(false); } string[] allMusic = Chart.ChartUtility.GetAllFileNames(); // 楽曲がない場合は再生しない if (allMusic.Length <= 0) { return(false); } int playRand = Random.Range(0, allMusic.Length); string playName = allMusic[playRand]; MusicStruct playMusic = Chart.ChartUtility.LoadMusicData(playName); Difficulty[] lowDifs = playMusic.GetLowDifficult(Difficulty.Another); // 低難度譜面がない場合は再生しない if (lowDifs.Length <= 0 || !playMusic.isShowMusicList) { return(false); } int difRand = Random.Range(0, lowDifs.Length); StaticValue.loadName = playName; StaticValue.difficulty = lowDifs[difRand]; StaticValue.isAuto = true; StartCoroutine(LoadDemoAsync()); return(true); }
public static string GetChartJson(MusicStruct musicStruct) { return(JsonUtility.ToJson(musicStruct)); }
public void LoadCharts() { string[] paths = StandaloneFileBrowser.OpenFolderPanel("Open MusicFile", Application.streamingAssetsPath, false); if (paths.Length == 0) { return; } string directoryPath = paths[0]; string[] files = Directory.GetFiles(directoryPath, "*" + Constant.chartExtension, SearchOption.TopDirectoryOnly); string chartFilePath = string.Empty; if (files.Length != 0) { chartFilePath = files[0]; } StreamReader reader = new StreamReader(chartFilePath); string chartJson = reader.ReadToEnd(); reader.Close(); MusicStruct loadStruct = JsonUtility.FromJson <MusicStruct>(chartJson); _musicStruct.composer = loadStruct.composer; _musicStruct.musicFileName = loadStruct.musicFileName; _musicStruct.musicName = loadStruct.musicName; _musicStruct.previewTime = loadStruct.previewTime; _musicStruct.musicVolume = loadStruct.musicVolume; for (int i = 0; i < musicStruct.charts.Length; i++) { _musicStruct.charts[i] = new ChartStruct(); } for (int i = 0; i < loadStruct.charts.Length; i++) { int difficulty = (int)loadStruct.charts[i].difficulty; _musicStruct.charts[difficulty] = loadStruct.charts[i]; } musicController.RemoveMusic(); musicController.SetInputFieldText(); chartController.SetValueToUI(); notesController.GenerateNotesFromChart(); timeController.SetTimeLength(); measureController.RemoveAllMeasure(); measureController.Init(); timeController.SetTime(0); ReFreshChart(); if (musicStruct.musicFileName == string.Empty) { return; } string musicPath = MusicPath.getMusicDataPath(Path.GetFileName(directoryPath), musicStruct.musicFileName); StartCoroutine(musicController.SetAudioClipFromPath(musicPath, musicStruct.musicFileName, false)); }