com.amanotes.rhythmjson
v2.2.0
Published
Shared JSON parsing for rhythm game song data with JSON.NET support
Readme
RhythmJson
Package: com.amanotes.rhythmjson
Version: 2.2.0
JSON parsing library for rhythm game song data with synchronous and asynchronous parsing support.
Features
- 🎮 Synchronous and asynchronous parsing
- 🎯 JSON.NET based with Unity fallback
- 🎨 Backward compatible variant/variants handling
- 🚀 WebGL compatible with auto fallback
- 🔧 HexToColor utility
- 🔌 Custom metadata parser support
Documentation
Complete documentation: Docs/RhythmJson-API.md
Installation
Add the package to your Unity project via Packages/manifest.json:
{
"dependencies": {
"com.amanotes.rhythmjson": "2.2.0"
},
"scopedRegistries": [
{
"name": "npmjs",
"url": "https://registry.npmjs.org/",
"scopes": [
"com.amanotes.rhythmjson"
]
}
]
}Quick Start
Basic Parsing
RhythmJson data = RhythmJson.Parse(jsonString);
Debug.Log($"Song: {data.songMeta.songName}, Notes: {data.notes.Count}");
RhythmJson.ParseAsync(jsonString, (data) => {
Debug.Log($"Loaded {data.notes.Count} notes");
});
string json = RhythmJson.Serialize(data, prettyPrint: true);Custom Meta Access
Access custom metadata from JSON without pre-registration:
// Define your custom meta class
public class MyGameMeta
{
public string customField;
public int customValue;
}
// Parse JSON
var data = RhythmJson.Parse(jsonString);
// Retrieve typed custom meta by key
var myMeta = data.GetMeta<MyGameMeta>("myGameMeta");
if (myMeta != null)
{
Debug.Log($"Custom: {myMeta.customField}");
}API Reference
Key Classes
RhythmJson
- Purpose: Main data container for song data
- Key methods:
Parse(),ParseAsync(),Serialize(),GetMeta<T>(string key) - Key properties:
songMeta,gameMeta,notes
SongNote
- Purpose: Individual note data
- Key properties:
time,lane,type,variants,metas - Key methods:
FindMeta()
SongMeta
- Purpose: Song metadata
- Key properties:
songName,bpm,audioOffset,nLanes
NoteMeta
- Purpose: Note metadata with type parsing
- Key properties:
key,value,intValue,floatValue,color
Dependencies
- Unity 2021.3+
- com.unity.nuget.newtonsoft-json: 3.0.0
Version History
See CHANGELOG.md
