Sometimes we want to store a 2D Array for our Game development, for Level design, Procedural Dungeon etc.
However C# 2D Array T[,] is not a serializable type and if you are using a long long list for alternative it is very hard to manage a long list.
This package can help you serialize and manage a 2D Array to Inspector for your game project.
**2.x New Feature**
1. By using Attribute [DrawColumnMethod], you are now able to customize How to draw your data column. (Example is included in package and Tutorial Video)
2. By using Attribute [ColumnRatio(float)], you are now able to scale the column height by field width. (For example 1.0 mean the column will be square)
**Key Feature**
1. Serializable class Array2D<T> with 2D Array Visualizer
2. T can be everything, it is Generics type.
3. 2D Array Resizing by width and height
4. Visualize direction, optional visualize "From Bottom To Top" or "From Top To Bottom".
5. Offset and Range is available, if you are managing a huge 2D Array, you will be able to setup an offset and range to only visualize a part of the array.
6a. If defined T is Not Generic Type, Drag and Drop Fill Mode is available for you to edit multiple columns at the same time.
6b. If defined T is a Generic Type, Select and Edit is available for you to edit custom objects one by one.
Be careful:
* Serializing a huge Array is technically possible but not recommended. One of the reasons is that serializing data will take up your disk space, so if you have a 2D Array size above 10^8 it will take a very long time to load. (You are still able to create a huge size 2D Array in code, just do not serialize that is fine)
* Array2D is a data structure, it is not equal to C# 2D Array [,]. However you are able create a Array2D from [,] by constructor Array2D([,])