예제 #1
0
        public static void StopCountTriangles()
        {
            TriangleCountManager mgr = TriangleCountManager.mgr;
            int sceneCount           = SceneManager.sceneCount;

            if (mgr == null)
            {
                return;
            }
            for (int i = 0; i < sceneCount; i++)
            {
                foreach (GameObject root in SceneManager.GetSceneAt(i).GetRootGameObjects())
                {
                    mgr.RemoveTriangleCounter(root);
                }
            }
            UnityEngine.Object.DestroyImmediate(mgr);
            EditorApplication.hierarchyWindowItemOnGUI = (EditorApplication.HierarchyWindowItemCallback)Delegate.Remove(EditorApplication.hierarchyWindowItemOnGUI, new EditorApplication.HierarchyWindowItemCallback(TriangleCountManager.HierarchyWindowItemOnGUI));
        }
예제 #2
0
        public static void StartCountTriangles()
        {
            if (!Application.isPlaying)
            {
                EditorUtility.DisplayDialog("面数统计", "此功能需要在游戏运行时使用", "确定");
                return;
            }
            TriangleCountManager mgr = TriangleCountManager.mgr;
            int sceneCount           = SceneManager.sceneCount;

            for (int i = 0; i < sceneCount; i++)
            {
                foreach (GameObject root in SceneManager.GetSceneAt(i).GetRootGameObjects())
                {
                    mgr.SetupTriangleCounter(root);
                }
            }
            EditorApplication.hierarchyWindowItemOnGUI = (EditorApplication.HierarchyWindowItemCallback)Delegate.Combine(EditorApplication.hierarchyWindowItemOnGUI, new EditorApplication.HierarchyWindowItemCallback(TriangleCountManager.HierarchyWindowItemOnGUI));
        }