unityで音ゲーを作りたいのでJsonとcsvを比較する

ゲーム制作を始めてから、いつか音ゲーを作りたいな~と思っていたので挑戦してみる。

【Unity】音ゲーの仕組みを学び「〇〇の達人」をUnityで作る パート1 #C # - Qiita

このサイトを丸パクリ参考にJsonを読み込むGameManagerを作成した。MiniJsonとJsonNodeを使ってるけどJsonUtilityの方がメジャーなのか…?

音ゲーの作り方を調べたらcsvを使う方法もあるらしいので譜面を読み込む関数をcsv版にしたものも作成した。

Sample,100
5000,1
5250,1
5500,2
5750,1
6000,2
6250,2
6500,2
6750,1
7000,1

csvの中身。リンク先のJsonとだいたい同じ、はず。

void LoadScore()
    {
        Notes = new List<GameObject>();
        NoteTimings = new List<float>();

        csvFile = Resources.Load(filePath) as TextAsset;
        StringReader reader = new StringReader(csvFile.text);
        
        string line = reader.ReadLine();
        csvDatas = line.Split(',');

        Title = csvDatas[0];
        BPM = int.Parse(csvDatas[1]);

        while (reader.Peek() != -1)
        {
            line = reader.ReadLine();
            csvDatas = line.Split(',');

            float timing = float.Parse(csvDatas[0]);
            string type = csvDatas[1];

            GameObject Note;

            if(type == "1")
            {
                Note = Instantiate(type1, SpawnPoint.position, Quaternion.identity);
            }
            else if(type == "2")
            {
                Note = Instantiate(type2, SpawnPoint.position, Quaternion.identity);
            }
            else
            {
                Note = Instantiate(type1, SpawnPoint.position, Quaternion.identity);
            }

            Note.GetComponent<NotesController>().setParameter(type, timing);

            Notes.Add(Note);
            noteTimings.Add(float.Parse(csvDatas[0]));
        }
    }

GameManagerのLoadChart()をこれに変更した版。csvの読み込みはこちらを参考にした。
https://qiita.com/toma09to/items/0c9aca040ca3278d868e

Jsonの方のリンクのコードと仕組みは同じ。(コメント書く癖つけたい)
1. タイプとタイミングを取得
2. タイプに応じたノーツを初期位置に生成
3. 生成したノーツにタイプとタイミングを設定
4. 生成したノーツをノーツのリストに、タイミングをタイミングのリストに追加

ここまでの感じでの比較
Jsonはtypeとtimingをそのまま持ってこれる(?)けどcsvの方は配列の何番目かをこっちが把握する必要がある。今はtypeとtimingだけだけど新しい情報をノーツに与えようとすると、csv1行を配列に入れてる関係でプログラムの書き換えが必要かも。今のところはJson派。

これからどうしよう
レーンを増やすとかやろうかな。ロングノーツも作りたいけど難しいことが保証されていて怖い。

この記事が気に入ったらサポートをしてみませんか?