Exemple #1
0
    public static void SaveLevel()
    {
        //read all prefabs in the scene
        foreach (IsPrefab go in FindObjectsOfType <IsPrefab>())
        {
            LevelInfo.ElementsInLevel elementInLevel = new LevelInfo.ElementsInLevel(go.name, go.transform.position, go.transform.rotation);
            elements.Add(elementInLevel);
        }

        //insert the info into the current level
        LevelDesignerWindow.currentLevelInfo.elementsInLevel = elements;

        //read the json file and convert it to the levels
        //TextAsset jsonFilePath = Resources.Load("Json_Level_List") as TextAsset;
        //levels = JsonUtility.FromJson<ListOfLevelInfoClass>(jsonFilePath.text).levels;
        levels = LevelDesignerWindow.ReadFromListJsonFile();
        if (levels == null)
        {
            levels = new List <LevelInfo>();
        }

        if (levels.Exists(x => x.levelIndex == LevelDesignerWindow.currentLevelInfo.levelIndex))
        {
            Debug.Log("it's exist");
            levels[LevelDesignerWindow.currentLevelInfo.levelIndex] = LevelDesignerWindow.currentLevelInfo;
        }
        else
        {
            levels.Add(LevelDesignerWindow.currentLevelInfo);
        }

        //adding the current level to the levels

        ListOfLevelInfoClass listOfLevels = new ListOfLevelInfoClass(levels);


        //write the levels list back to the json file
        json = JsonUtility.ToJson(listOfLevels);

        File.WriteAllText(LevelDesignerWindow.levelsListJson, json);
        Debug.Log("Level saved");
        AssetDatabase.Refresh();
    }
Exemple #2
0
    //delete a specific level and reorder the levels indexes
    static void DeleteLevel(int levelIndex)
    {
        levels = ReadFromListJsonFile();
        string deletedLevelName = levels[levelIndex].levelName;

        if (levels.Remove(levels[levelIndex]))
        {
            for (int i = 0; i < levels.Count; i++)
            {
                levels[i].levelIndex = i;
            }
            ListOfLevelInfoClass levelsWithoutLevel = new ListOfLevelInfoClass(levels);
            string json = JsonUtility.ToJson(levelsWithoutLevel);
            File.WriteAllText(levelsListJson, json);
            AssetDatabase.Refresh();
            Debug.Log("delete " + deletedLevelName + " Level");
        }
        else
        {
            Debug.Log("Can't find the level, Error!");
        }
    }