Ejemplo n.º 1
0
 public static void UpdateTowerParameters(TowerParameters param)
 {
     if (!EditorUtility.DisplayDialog("Warning", "Make sure to save the level(s) you are currently working on as prefab variant. Any overrides from the prefab will be erased.", "Continue", "Cancel"))
     {
         return;
     }
     for (int i = 0; i < param.Levels.Length; i++)
     {
         param.Levels[i].TowerParameters = param;
         param.Levels[i].IndexInTower    = i;
         //param.Levels[i].Background.sprite = param.FloorsBackgrounds[Random.Range(0, param.FloorsBackgrounds.Length)];
         PrefabUtility.SavePrefabAsset(param.Levels[i].gameObject);
     }
     GameManager[] managers = GameObject.FindObjectsOfType <GameManager>();
     if (managers.Length > 0)
     {
         for (int i = 0; i < managers.Length; i++)
         {
             PrefabUtility.RevertObjectOverride(managers[i], InteractionMode.AutomatedAction);
         }
     }
 }
Ejemplo n.º 2
0
        private void OnWizardCreate()
        {
            float      yPos    = -5.2f;
            GameObject towerGO = PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath <GameObject>("Assets/_PREFABS/Main menu/Towers/TowerBase.prefab")) as GameObject;

            towerGO.name = towerName;
            towerGO.transform.position = new Vector3(0, yPos, 0);
            Tower towerComp = towerGO.GetComponent <Tower>();

            towerComp.ButtonsParent.sizeDelta = new Vector2(towerComp.ButtonsParent.sizeDelta.x, (2.6f * levels.Length) + 5.2f);
            for (int i = 0; i < levels.Length; i++)
            {
                /*int c = Random.Range(0, 3);
                 * SpriteRenderer rend = GameObject.Instantiate(testObjectToClone, Vector3.zero, Quaternion.identity).GetComponent<SpriteRenderer>();
                 * rend.transform.parent = tower.transform;
                 * rend.transform.localPosition = new Vector3(0, i * 2.6f, 0);
                 * if (c == 0) rend.color = Color.cyan;
                 * if (c == 1) rend.color = Color.magenta;
                 * if (c == 2) rend.color = Color.gray;
                 * rend.name = LevelsManager.GetRealPrefabName(rend.gameObject);*/
                GameObject newLevelButtonGO = PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath <GameObject>("Assets/_PREFABS/Main menu/LevelButton.prefab")) as GameObject;
                newLevelButtonGO.transform.parent        = towerComp.ButtonsParent;
                newLevelButtonGO.transform.localPosition = new Vector3(0, i * 2.6f, 0);
                newLevelButtonGO.name = levels[i].name + "_Button";
                LevelButton levelButtonComp = newLevelButtonGO.GetComponent <LevelButton>();
                levelButtonComp.LevelToLoad      = levels[i].name;
                levelButtonComp.MenuTower        = towerComp;
                levelButtonComp.LevelNumber.text = (i + 1).ToString();
            }
            TowerParameters createdParameters = ScriptableObject.CreateInstance <TowerParameters>();

            createdParameters.TowerName = towerName;
            createdParameters.Levels    = levels;

            AssetDatabase.CreateAsset(createdParameters, "Assets/SCRIPTABLEOBJECTS/Tower parameters/" + towerName + "Parameters.asset");
            CreateTowerWizard.UpdateTowerParameters(AssetDatabase.LoadAssetAtPath <TowerParameters>("Assets/SCRIPTABLEOBJECTS/Tower parameters/" + towerName + "Parameters.asset") as TowerParameters);
        }