मैं एकता में एक गेम बना रहा हूं जो एक 2D Minecraft कैसे काम करेगा, इसी तरह की दुनिया को प्रक्रियात्मक रूप से उत्पन्न करने के लिए टिलमैप्स का उपयोग करता है। मेरे पास दो वर्ग हैं: खंड जो 16x16 int सरणी है जिसमें टाइल की जानकारी है, और क्षेत्र जो 3x3 खंड सरणी है। टाइलमैप पर टाइल लोड करने के लिए चंक्स का उपयोग किया जाता है और JSON फ़ाइलों में डेटा को सहेजने और लोड करने के लिए क्षेत्रों का उपयोग किया जाता है। जब कोई खिलाड़ी खेल रहा होता है, तो उनके वर्तमान चंक के चारों ओर एक 3x3 चंक क्षेत्र लोड होता है और उनके वर्तमान क्षेत्र के आसपास एक 3x3 क्षेत्र लोड होता है। निम्नलिखित वर्ग है:
//Stores tile data of a chunk
[Serializable]
public class Chunk
{
public int[,] tiles = new int[CHUNK_SIZE, CHUNK_SIZE];
}
//Stores Chunk data of a region
[Serializable]
public class Region
{
public Vector2Int location;
public Chunk[,] chunks = new Chunk[REGION_SIZE, REGION_SIZE];
}
निम्नलिखित कोड है जो एक क्षेत्र उत्पन्न करता है, भाग भरता है, और फिर इसे क्रमबद्ध करता है:
Region region = new Region();
region.location = new Vector2Int(x, y);
for (int i = 0; i < REGION_SIZE; i++)
{
for (int j = 0; j < REGION_SIZE; j++)
{
region.chunks[i, j] = GenerateChunk();
}
}
string regionJson = JsonUtility.ToJson(region);
मेरी समस्या यह है कि परिणामी क्षेत्र जेसन स्ट्रिंग में केवल स्थिति की जानकारी होती है, न कि भाग की जानकारी। मुझे पता है कि JsonUtility न्यूनतम है और इसमें सरणियों की समस्या है, हालाँकि मैंने सोचा कि एक वर्ग के भीतर एक सरणी लपेटने से यह समस्या हल हो जाती है। जो मैं समझने की कोशिश कर रहा हूं वह यह है कि यदि समस्या एक सरणी युक्त चंक वर्ग से है, तो क्षेत्र वर्ग जिसमें भाग की एक सरणी है, या कुछ और पूरी तरह से है। किसी भी मदद की बहुत सराहना की जाती है!
1 उत्तर
मैं इस परिदृश्य में JsonUtility
का उपयोग करने के लिए वर्कअराउंड बनाने के लिए अपने बालों को नहीं खींचूंगा जब JsonNet इसे केवल मेरे लिए करता है।
using Newtonsoft.Json;
string regionJson = JsonConvert.SerializeObject(region);
मैंने कुछ नकली डेटा उत्पन्न करके आपके परिदृश्य का परीक्षण किया है और यह बहु-आयामी सरणियों के साथ पूरी तरह से काम करता है।
संबंधित सवाल
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।