示例#1
0
    void OnGUI()
    {
        if (!isShowWindow)
        {
            isShowWindow = true;
            //EditorWindow.GetWindow(typeof(UnitsEditor));
            LoadUnitsData();
        }

        //header
        float space = 15;

        GUILayout.Space(space * 0.5f);
        EditorGUILayout.LabelField("Units Data Manager!");

        GUILayout.Space(space * 0.5f);
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Add Unit"))
        {
            UnitDataController.UnitData newUnitData = new UnitDataController.UnitData();
            newUnitData.UnitID = (unitDataController.unitDataCollection.ListUnitsData.Count < 10 ? "0" + (unitDataController.unitDataCollection.ListUnitsData.Count + 1).ToString() : (unitDataController.unitDataCollection.ListUnitsData.Count + 1).ToString());
            unitDataController.unitDataCollection.ListUnitsData.Add(newUnitData);
        }

        if (GUILayout.Button("Save Data"))
        {
            unitDataController.Save(unitDataController.unitDataCollection);
        }
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10);

        EditorGUILayout.BeginVertical();
        scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(450), GUILayout.Height(490));

        ///load list
        for (int i = 0; i < unitDataController.unitDataCollection.ListUnitsData.Count; i++)
        {
            listUnitSelect[i] = EditorGUILayout.Foldout(listUnitSelect[i], "Unit " + unitDataController.unitDataCollection.ListUnitsData[i].UnitID);
            GUILayout.Space(space * 0.3f);
            if (listUnitSelect[i])
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].UnitID = EditorGUILayout.TextField("ID", unitDataController.unitDataCollection.ListUnitsData[i].UnitID);
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].UnitName = EditorGUILayout.TextField("Name", unitDataController.unitDataCollection.ListUnitsData[i].UnitName);
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].Health = float.Parse(EditorGUILayout.TextField("Health", unitDataController.unitDataCollection.ListUnitsData[i].Health.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].Damage = float.Parse(EditorGUILayout.TextField("Damage", unitDataController.unitDataCollection.ListUnitsData[i].Damage.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].AttackSpeed = float.Parse(EditorGUILayout.TextField("Attack Speed", unitDataController.unitDataCollection.ListUnitsData[i].AttackSpeed.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].Range = float.Parse(EditorGUILayout.TextField("Range", unitDataController.unitDataCollection.ListUnitsData[i].Range.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].Critical = float.Parse(EditorGUILayout.TextField("Critical", unitDataController.unitDataCollection.ListUnitsData[i].Critical.ToString()));
                EditorGUILayout.EndHorizontal();


                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].NumberOfAmmoToReload = int.Parse(EditorGUILayout.TextField("Number of Ammo To Reload", unitDataController.unitDataCollection.ListUnitsData[i].NumberOfAmmoToReload.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].NumberOfShootToUpgrade = int.Parse(EditorGUILayout.TextField("Number of Shoot To Upgrade", unitDataController.unitDataCollection.ListUnitsData[i].NumberOfShootToUpgrade.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].Price = int.Parse(EditorGUILayout.TextField("Price", unitDataController.unitDataCollection.ListUnitsData[i].Price.ToString()));
                EditorGUILayout.EndHorizontal();


                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].TimeCountdownSelect = int.Parse(EditorGUILayout.TextField("Time Countdown", unitDataController.unitDataCollection.ListUnitsData[i].TimeCountdownSelect.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                unitDataController.unitDataCollection.ListUnitsData[i].UnlockAtLevel = int.Parse(EditorGUILayout.TextField("Unlock At Level", unitDataController.unitDataCollection.ListUnitsData[i].UnlockAtLevel.ToString()));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(space);
                if (GUILayout.Button("Remove Unit"))
                {
                    unitDataController.unitDataCollection.ListUnitsData.Remove(unitDataController.unitDataCollection.ListUnitsData[i]);
                }
                EditorGUILayout.EndHorizontal();
            }
        }
        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();
    }