public static void UpdateDeadList()
        {
            SceneFile.ReloadCurrentSceneFile();
            var objects = SceneManager.GetActiveScene().CollectScene().ToGameObjects();
            int count   = objects.Count;

            if (deadOIDs == null)
            {
                deadOIDs = new List <ObjectID>();
            }
            else if (deadOIDs.Count != 0)
            {
                deadOIDs.Clear();
            }

            for (int i = 0; i < count; i++)
            {
                float progress = i * 1f / count;
                EditorUtility.DisplayProgressBar(strProgressBar_SearchDeadObject,
                                                 strProgressBar_SearchingScene + $"{i} / {count} " + strProgressBar_SearchingSceneObjects,
                                                 progress);

                GameObject go       = objects[i];
                int        missings = GameObjectUtility.GetMonoBehavioursWithMissingScriptCount(go);
                if (missings == 0)
                {
                    continue;
                }

                // мы создаём ObjectID в этом режиме ТОЛЬКО для объектов, у которых
                // обнаужены MissingScripts, чтобы обыск сцены не занимал слишком много
                // времени
                ObjectID objectID = new ObjectID(go, isDebugMode);
                deadOIDs.Add(objectID);
            }
            EditorUtility.ClearProgressBar();

            if (deadOIDs.Count == 0)
            {
                Debug.Log($"<color=green>Everything is okay :)</color>");
            }
        }
Esempio n. 2
0
        private void OnGUI()
        {
            titleContent.text = strMonoView_Caption;
            scrollPos         = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Height(position.height));
            OpenStandartBack();
            SpiralLocalization.DrawLanguageSelect();
            SceneFile.DrawSceneReloadButton();

            if (oids.Count == 0)
            {
                EditorGUILayout.LabelField(strMonoView_SelectObject, labelOption);
            }

            for (int objIDX = 0; objIDX < oids.Count; objIDX++)
            {
                DrawObject(oids[objIDX]);
            }

            CloseStandartBack();
            EditorGUILayout.EndScrollView();
        }