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)); }
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)); }