Exemplo n.º 1
0
        //セーブ
        void GenSaveData(ScoreComponent score)
        {
            if (!Directory.Exists(GetJsonPath()))
            {
                Directory.CreateDirectory(GetJsonPath());
            }

            if (score == null)
            {
                return;
            }

            var timelineList = new List <object>();

            foreach (var timeline in score.timelineTracks_)
            {
                //削除済み
                if (!timeline.IsExistTimeline_)
                {
                    continue;
                }

                var tackList = new List <object>();
                //tack
                foreach (var tack in timeline.tackPoints_)
                {
                    //削除済み
                    if (!tack.IsExistTack_)
                    {
                        continue;
                    }

                    var tackDict = tack.OutputDict();
                    tackList.Add(tackDict);
                }
                //timeline
                var timelineDict = timeline.OutputDict(tackList);

                timelineList.Add(timelineDict);
            }

            //score
            var scoreObject = score.OutputDict(timelineList);

            var dataStr = Json.Serialize(scoreObject);

            //var targetFilePath = Path.Combine(Application.dataPath, TimeFlowShikiSettings.TIMEFLOWSHIKI_DATA_FILEPATH);
            var targetFilePath = GetJsonPath() + "/" + score.id_ + ".json";             // "timeflowshiki.json";// + selectedFile;

            Debug.Log("<color=red>SaveActiveScore:" + targetFilePath + "</color>");

            using (var sw = new StreamWriter(targetFilePath))
            {
                sw.Write(dataStr);
            }

            //セーブしたときはとりあえず全ウインド書き換え
            RepaintAllWindow();
        }