Over 11,000 five-star assets
Rated by 85,000+ customers
Supported by 100,000+ forum members
Every asset moderated by Unity
Unity Version | Built-in | URP | HDRP |
---|---|---|---|
6000.0.25f1 | Compatible | Compatible | Compatible |
2021.3.18f1 | Compatible | Compatible | Compatible |
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.
- Non Generic types like int, float, string, enum, Color, Object References etc. is possible to be visualized directly.
- Generic Type, usually is a custom Classes, will only show the Coord of data in the Table GUI. For editing, you are able to select and edit a single data, the selected object will be serialize below the "Selected Object"
- (More Detail about Type: Unity - Scripting API: SerializedPropertyType)
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([,])
[Property Drawer] Serializable 2D Array and Visualizer (Custom class supported)
