private void GetMapInstance(Scene scene) { var scenepath = scene.path; var directorypath = scenepath.Substring(0, scenepath.LastIndexOf('.')); var assetpath = string.Format("{0}/{1}_{2}.asset", directorypath, scene.name, "Map"); instance = AssetDatabase.LoadAssetAtPath <MapScriptableObject>(assetpath); if (instance == null) { instance = CreateInstance <MapScriptableObject>(); instance.cells = new int[instance.length * instance.width / MapScriptableObject.CELLS_PER_INT]; if (!Directory.Exists(directorypath)) { Directory.CreateDirectory(directorypath); } AssetDatabase.CreateAsset(instance, string.Format("{0}", assetpath)); } length_scr = instance.length; width_scr = instance.width; }
// Lataa tai kirjoittaa tiedostoja ja asettaa muuttujien arvot kohdilleen private void loadFiles() { //Debug.Log ("LOAD/WRITE ASSET FILE!"); cellGen = Resources.LoadAssetAtPath<CASettings>(resourcePath + "CASettings.asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (cellGen == null) { cellGen = CreateInstance<CASettings> (); AssetDatabase.CreateAsset (cellGen, resourcePath + "CASettings.asset"); cellGen.width = 32; cellGen.height = 32; cellGen.seedNumber = 0; cellGen.minNearbyToSpawn = 5; cellGen.minNearbyToLive = 5; cellGen.startChanceToLive = 0.7f; cellGen.stepCount = 10; AssetDatabase.SaveAssets(); AssetDatabase.Refresh (); } settings = Resources.LoadAssetAtPath<GraduSettings>(resourcePath + "GraduSettings.asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (settings == null) { settings = CreateInstance<GraduSettings> (); AssetDatabase.CreateAsset (settings, resourcePath + "GraduSettings.asset"); settings.filenames = new string[1]; settings.filenames[0] = "tempMap"; AssetDatabase.SaveAssets(); AssetDatabase.Refresh (); } loadedMap = Resources.LoadAssetAtPath<MapScriptableObject>(resourcePath + ""+settings.filenames[0]+".asset"); // Ei löydetty tiedostoa, alustetaan oletusarvot ja tallennetaan if (loadedMap == null) { Debug.Log ("WRITE MAP FILE!"); loadedMap = CreateInstance<MapScriptableObject> (); AssetDatabase.CreateAsset (loadedMap, resourcePath + ""+settings.filenames[0]+".asset"); loadedMap.layerBaseMap = new List<Cell>(); loadedMap.layerFreeHand = new List<Cell>(); loadedMap.openSides = new bool[]{false,false,false,false}; for (int i = 0; i < cellGen.width; i++) { for (int j = 0; j < cellGen.height; j++) { loadedMap.layerBaseMap.Add(new Cell(map[i,j])); } } for (int i = 0; i < cellGen.width; i++) { for (int j = 0; j < cellGen.height; j++) { loadedMap.layerFreeHand.Add(new Cell(mapFreehand[i,j])); } } AssetDatabase.CreateAsset (loadedMap, resourcePath + ""+settings.filenames[0]+".asset"); AssetDatabase.SaveAssets (); AssetDatabase.Refresh (); } else { Debug.Log ("LOAD MAP FILE!"); map = new int[cellGen.width,cellGen.height]; mapFreehand = new int[cellGen.width,cellGen.height]; openSides = loadedMap.openSides; int j = 0; int k = 0; // Täytetään taulukko tallennetun tiedon perusteella foreach (Cell c in loadedMap.layerBaseMap) { map[k,j] = c.state; j = j + 1; if (j >= cellGen.height) { j = 0; k++; } } j = 0; k = 0; // Täytetään taulukko tallennetun tiedon perusteella foreach (Cell c in loadedMap.layerFreeHand) { mapFreehand[k,j] = c.state; j = j + 1; if (j >= cellGen.height) { j = 0; k++; } } } }