private void SearchByTag()
 {
     EditorGUILayout.BeginHorizontal();
     _TagSearchField = EditorGUILayout.TagField(_TagSearchField);
     if (GUILayout.Button("Search"))
     {
         GameObject[] allObjects = GameObject.FindGameObjectsWithTag(_TagSearchField);
         _transformElements.Clear();
         foreach (var go in allObjects)
         {
             TransformElement te = new TransformElement(go, go.GetComponent <Transform>());
             _transformElements.Add(te);
         }
     }
     if (GUILayout.Button("Reset list"))
     {
         _transformElements.Clear();
     }
     EditorGUILayout.EndHorizontal();
 }
        private static void ManualSelection()
        {
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Add selected"))
            {
                _gameObjects = Selection.gameObjects;
                foreach (var gameObject in _gameObjects)
                {
                    TransformElement te = new TransformElement(gameObject, gameObject.GetComponent <Transform>());
                    if (!_transformElements.Contains(te))
                    {
                        _transformElements.Add(te);
                    }
                }
            }

            if (GUILayout.Button("Reset list"))
            {
                _transformElements.Clear();
            }
            EditorGUILayout.EndHorizontal();
        }
 private void SearchByName()
 {
     EditorGUILayout.BeginHorizontal();
     _nameSearchField = EditorGUILayout.TextField(_nameSearchField);
     if (GUILayout.Button("Search"))
     {
         GameObject[] allObjects = FindObjectsOfType <GameObject>();
         _transformElements.Clear();
         foreach (var go in allObjects)
         {
             if (go.name.Contains(_nameSearchField))
             {
                 TransformElement te = new TransformElement(go, go.GetComponent <Transform>());
                 _transformElements.Add(te);
             }
         }
     }
     if (GUILayout.Button("Reset list"))
     {
         _transformElements.Clear();
     }
     EditorGUILayout.EndHorizontal();
 }
Exemplo n.º 4
0
        public List <TransformElement> ObjectSelectionShowUi(string headerText)
        {
            EditorGUILayout.BeginVertical("helpbox");
            EditorGUILayout.LabelField(headerText, EditorStyles.boldLabel);
            _searchOptionsIndex = EditorGUILayout.Popup(_searchOptionsIndex, _searchOptions);

            switch (_searchOptionsIndex)
            {
            case 0:
                ManualSelection();
                break;

            case 1:
                SearchByName();
                break;

            case 2:
                SearchByTag();
                break;

            default:
                break;
            }


            EditorGUILayout.Space(5);
            if (_transformElements.Count > 0)
            {
                _showSelectedObjects = EditorGUILayout.Foldout(_showSelectedObjects, $"{_transformElements.Count} objects selected");
            }
            else if (_transformElements.Count == 0)
            {
                _showSelectedObjects = false;
                EditorGUILayout.LabelField("No objects selected");
            }

            if (_showSelectedObjects)
            {
                scrollPos = EditorGUILayout.BeginScrollView(scrollPos, false, true, EditorStyles.textArea, EditorStyles.textArea, EditorStyles.textArea, GUILayout.Width(300), GUILayout.Height(150));
                List <TransformElement> transformelementsToDelete = new List <TransformElement>();
                foreach (var te in _transformElements)
                {
                    EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(te.TheGameObject.name);
                    if (GUILayout.Button("X", GUILayout.Width(25)))
                    {
                        transformelementsToDelete.Add(te);
                    }
                    EditorGUILayout.EndHorizontal();
                }

                if (transformelementsToDelete.Count != 0)
                {
                    foreach (var te in transformelementsToDelete)
                    {
                        if (_transformElements.Contains(te))
                        {
                            _transformElements.Remove(te);
                        }
                    }
                    transformelementsToDelete.Clear();
                }
                EditorGUILayout.EndScrollView();
            }

            GUILayout.Space(10);


            void SearchByTag()
            {
                EditorGUILayout.BeginHorizontal();
                _TagSearchField = EditorGUILayout.TagField(_TagSearchField);
                if (GUILayout.Button("Search"))
                {
                    GameObject[] allObjects = GameObject.FindGameObjectsWithTag(_TagSearchField);
                    _transformElements.Clear();
                    foreach (var go in allObjects)
                    {
                        TransformElement te = new TransformElement(go, go.GetComponent <Transform>());
                        _transformElements.Add(te);
                    }
                }
                if (GUILayout.Button("Reset list"))
                {
                    _transformElements.Clear();
                }
                EditorGUILayout.EndHorizontal();
            }

            void SearchByName()
            {
                EditorGUILayout.BeginHorizontal();
                _nameSearchField = EditorGUILayout.TextField(_nameSearchField);
                if (GUILayout.Button("Search"))
                {
                    GameObject[] allObjects = Object.FindObjectsOfType <GameObject>();
                    _transformElements.Clear();
                    foreach (var go in allObjects)
                    {
                        if (go.name.Contains(_nameSearchField))
                        {
                            TransformElement te = new TransformElement(go, go.GetComponent <Transform>());
                            _transformElements.Add(te);
                        }
                    }
                }
                if (GUILayout.Button("Reset list"))
                {
                    _transformElements.Clear();
                }
                EditorGUILayout.EndHorizontal();
            }

            void ManualSelection()
            {
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("Add selected"))
                {
                    _gameObjects = Selection.gameObjects;
                    foreach (var gameObject in _gameObjects)
                    {
                        TransformElement te = new TransformElement(gameObject, gameObject.GetComponent <Transform>());
                        if (!_transformElements.Contains(te))
                        {
                            _transformElements.Add(te);
                        }
                    }
                }

                if (GUILayout.Button("Reset list"))
                {
                    _transformElements.Clear();
                }
                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.EndVertical();
            return(_transformElements);
        }