Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mr-sb/unityconfigfoundation

Automatically generate data objects according to CSV configuration table. Support convert Primitive/1D Array/ValueTuple/Frequently-used UnityEngine Types.
https://github.com/mr-sb/unityconfigfoundation

config converter csv foundation script unity

Last synced: 29 days ago
JSON representation

Automatically generate data objects according to CSV configuration table. Support convert Primitive/1D Array/ValueTuple/Frequently-used UnityEngine Types.

Awesome Lists containing this project

README

        

# UnityConfigFoundation
Automatically generate data objects according to CSV configuration table.

## Feature
* `TextAssetLoader` can help you easily load `TextAsset` from `StreamAssets` or `Resources` or `PersistentDataPath`.
* `CSVConverter` can convert CSV text to some frequently-used data objects.
* `CVSGenerator` can convert the definition of CSV and Class.
* Support convert Types:

| Primitive | 1D Array | List | ValueTuple | Frequently-used UnityEngine Type |
| :-------: | :------: | :--: | :--------: | :------------------------------: |
| √ | √ | √ | √ | √ |

## CSV form
* First line are field names.
* Second line are field types.
* Third line are descriptions.
* Others are records.

## Extend
If you want to add some data type converter, create a class and use `partial` keyword to be part of `FieldConverter` class.
```c#
namespace GameUtil.Config
{
public static partial class FieldConverter
{
//Must add FieldConverterAttribute to convert method.
//The method must be static, return type can not be void, and parameter is string.
[FieldConverter]
public static DataType Vector4IntConverter(this string fieldContent)
{
//Add convert logic.
}
}
}
```

## Plugin
* [TinyCSV](https://github.com/Mr-sB/TinyCSV)(Open source)