public override void OnInspectorGUI()
    {
        _upgradeController = (UpgradeController)target;
        _upgradeController.Workname = EditorGUILayout.TextField("Unit workname", _upgradeController.Workname);
        _AIndex = _upgradeController.AIndex;
        _A1Index = _upgradeController.A1Index;
        _BIndex = _upgradeController.BIndex;
        _B1Index = _upgradeController.B1Index;
        _CIndex = _upgradeController.CIndex;
        _C1Index = _upgradeController.C1Index;
        _filterFromIndex = _upgradeController.FromFilterIndex;
        _filterToIndex = _upgradeController.ToFilterIndex;

        if (GUILayout.Button("Get units upgrades"))
        {
            _getUpgardes = true;
        }
        if (_getUpgardes)
        {
            _upgradeController.GetUnitsUpgrades();
            _getUpgardes = false;
        }
        if (_upgradeController.Upgrades!=null)
        {
            //From
            _upgrades = _upgradeController.Upgrades.ToArray();
            EditorGUILayout.LabelField("From upgrade", GUILayout.ExpandWidth(false), GUILayout.Width(120));
            _AIndex = EditorGUILayout.Popup(_AIndex, _upgrades);
            _upgradeController.A = _upgradeController.Upgrades[_AIndex];
            _upgradeController.AIndex = _AIndex;

            //Operator from popup
            _filters = _upgradeController.Filters.ToArray();
            EditorGUILayout.LabelField("Boolean operators", GUILayout.ExpandWidth(false), GUILayout.Width(120));
            _filterFromIndex = EditorGUILayout.Popup(_filterFromIndex, _filters);
            _upgradeController.CurrentFromFilter = _upgradeController.Filters[_filterFromIndex];
            _upgradeController.FromFilterIndex = _filterFromIndex;
            //
            if (_upgradeController.CurrentFromFilter != "NONE")
            {
                _BIndex = EditorGUILayout.Popup(_BIndex, _upgrades);
                _upgradeController.B = _upgradeController.Upgrades[_BIndex];
                _upgradeController.BIndex = _BIndex;
                if (_upgradeController.CurrentFromFilter == "AND(_OR_)" || _upgradeController.CurrentFromFilter == "OR(_AND_)" || _upgradeController.CurrentFromFilter == "AND_AND_")
                {
                    _CIndex = EditorGUILayout.Popup(_CIndex, _upgrades);
                    _upgradeController.C = _upgradeController.Upgrades[_CIndex];
                    _upgradeController.CIndex = _CIndex;
                }
            }
            //To
            EditorGUILayout.LabelField("Until upgrade", GUILayout.ExpandWidth(false), GUILayout.Width(120));
            _A1Index = EditorGUILayout.Popup(_A1Index, _upgrades);
            _upgradeController.A1 = _upgradeController.Upgrades[_A1Index];
            _upgradeController.A1Index = _A1Index;
            //Operator to popup
            _filters = _upgradeController.Filters.ToArray();
            EditorGUILayout.LabelField("Boolean operators", GUILayout.ExpandWidth(false), GUILayout.Width(120));
            _filterToIndex = EditorGUILayout.Popup(_filterToIndex, _filters);
            _upgradeController.CurrentToFilter = _upgradeController.Filters[_filterToIndex];
            _upgradeController.ToFilterIndex = _filterToIndex;
            //
            if (_upgradeController.CurrentToFilter != "NONE")
            {
                _B1Index = EditorGUILayout.Popup(_B1Index, _upgrades);
                _upgradeController.B1 = _upgradeController.Upgrades[_B1Index];
                _upgradeController.B1Index = _B1Index;
                if (_upgradeController.CurrentToFilter == "AND(_OR_)" || _upgradeController.CurrentToFilter == "OR(_AND_)" || _upgradeController.CurrentToFilter == "AND_AND_")
                {
                    _C1Index = EditorGUILayout.Popup(_C1Index, _upgrades);
                    _upgradeController.C1 = _upgradeController.Upgrades[_C1Index];
                    _upgradeController.C1Index = _C1Index;
                }
            }

        }
        EditorUtility.SetDirty(_upgradeController);
    }