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);
    }
Beispiel #2
0
        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);
    }
Beispiel #6
0
 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));
    }