- Home /
How do I save and load a 2D array?
So, first off, I know this is a duplicate but none of the answers I found on Google or similar helped me with my problem.
I have a sandbox game where the player places blocks in a 2D space. Every time a block is placed, it saves this to a 2D array called blocks. This is how the array looks: public static int[,] blocks = new int[999,999];
Let's say a player places a block at x500/y500: blocks[500,500] will be set to "1" saying that the block with the ID "1" was placed there.
It all works fine, yet, I still have to save the arrays so that my player won't have to start over every time again! Now, if this would be a 1D array, it would be very easy. This is a 2D array though and I can't simply save it all to PlayerPrefs, nor PlayerPrefsX.
I tried figuring out a way to convert the 2D array to a 1D array, saving that, and then on load converting it back to 1D.
For example by making two arrays, one called blocksX and one called blocksY, but I would have to access the two dimensions individually (like, only the "X" dimension of blocks[x,y] and only the "Y" dimension of blocks[x,y]). How would I do it? And is there a better/easier way?
Many thanks, Sincerely, aleichert
Answer by piotrlipert · Mar 10, 2018 at 05:59 PM
I've done tutorial on that, with compression: https://www.youtube.com/watch?v=AFmk70693Zw
Here's the code: http://www.psilocybegames.com/tutorials/saveloadmultiarray/HowToSaveLoadAnArrayWithCompression.cs
Use it to generate a string, than save it to a file.
Your answer
![](https://koobas.hobune.stream/wayback/20220613182441im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Why does PlayerPrefs save to the Windows Registry? 0 Answers
Using PlayerPrefs to save a C# Generic List 1 Answer
Why is this not saving to player prefs and loading (Works in editor only) 0 Answers
How to save an array to PlayerPrefs? 1 Answer
How would I use ArrayPrefs2 to track destroyed objects and/or instantiated objects? 0 Answers