Example #1
0
        private void AddElement(string className, AC.Menu _menu)
        {
            Undo.RecordObject(_menu, "Add element");

            List <int> idArray = new List <int>();

            foreach (MenuElement _element in _menu.elements)
            {
                if (_element != null)
                {
                    idArray.Add(_element.ID);
                }
            }
            idArray.Sort();

            className = "Menu" + className;
            MenuElement newElement = (MenuElement)CreateInstance(className);

            newElement.Declare();
            newElement.title = className.Substring(4);

            // Update id based on array
            foreach (int _id in idArray.ToArray())
            {
                if (newElement.ID == _id)
                {
                    newElement.ID++;
                }
            }

            _menu.elements.Add(newElement);
            if (!Application.isPlaying)
            {
                _menu.Recalculate();
            }
            DeactivateAllElements(_menu);
            newElement.isEditing = true;
            selectedMenuElement  = newElement;

            newElement.hideFlags = HideFlags.HideInHierarchy;
            AssetDatabase.AddObjectToAsset(newElement, this);
            AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(newElement));
            AssetDatabase.SaveAssets();

            CleanUpAsset();
        }