private void DrawFilteringTab() { int sceneCount = SceneManager.sceneCount; m_SceneList.Clear(); for (int i = 0; i < sceneCount; ++i) { var scene = SceneManager.GetSceneAt(i); m_SceneList.Add(string.Format("{0} ", scene.name)); } var sceneArray = m_SceneList.ToArray(); int newPhysicsSceneMask = EditorGUILayout.MaskField(Style.showPhysicsScenes, PhysicsVisualizationSettings.GetShowPhysicsSceneMask(), sceneArray); int newUnitySceneMask = EditorGUILayout.MaskField(Style.showUnityScenes, PhysicsVisualizationSettings.GetShowUnitySceneMask(), sceneArray); PhysicsVisualizationSettings.SetShowPhysicsSceneMask(newPhysicsSceneMask); PhysicsVisualizationSettings.SetShowUnitySceneMask(newUnitySceneMask); // Layers int oldConcatenatedMask = InternalEditorUtility.LayerMaskToConcatenatedLayersMask( PhysicsVisualizationSettings.GetShowCollisionLayerMask()); int newConcatenatedMask = EditorGUILayout.MaskField( Style.showLayers, oldConcatenatedMask, InternalEditorUtility.layers); PhysicsVisualizationSettings.SetShowCollisionLayerMask( (int)InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(newConcatenatedMask)); // Static Colliders PhysicsVisualizationSettings.SetShowStaticColliders(EditorGUILayout.Toggle( Style.showStaticCollider, PhysicsVisualizationSettings.GetShowStaticColliders())); // Triggers PhysicsVisualizationSettings.SetShowTriggers(EditorGUILayout.Toggle( Style.showTriggers, PhysicsVisualizationSettings.GetShowTriggers())); // Rigidbodies PhysicsVisualizationSettings.SetShowRigidbodies(EditorGUILayout.Toggle( Style.showRigibodies, PhysicsVisualizationSettings.GetShowRigidbodies())); // Kinematic Bodies PhysicsVisualizationSettings.SetShowKinematicBodies(EditorGUILayout.Toggle( Style.showKinematicBodies, PhysicsVisualizationSettings.GetShowKinematicBodies())); // Articulation Bodies PhysicsVisualizationSettings.SetShowArticulationBodies(EditorGUILayout.Toggle( Style.showArticulationBodies, PhysicsVisualizationSettings.GetShowArticulationBodies())); // Sleeping Bodies PhysicsVisualizationSettings.SetShowSleepingBodies(EditorGUILayout.Toggle( Style.showSleepingBodies, PhysicsVisualizationSettings.GetShowSleepingBodies())); m_ShowColliderTypeFoldout.value = EditorGUILayout.Foldout(m_ShowColliderTypeFoldout.value, Style.colliderTypes, true); if (m_ShowColliderTypeFoldout.value) { EditorGUI.indentLevel++; float oldWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; // BoxCollider PhysicsVisualizationSettings.SetShowBoxColliders(EditorGUILayout.Toggle( Style.showBoxCollider, PhysicsVisualizationSettings.GetShowBoxColliders())); // SphereCollider PhysicsVisualizationSettings.SetShowSphereColliders(EditorGUILayout.Toggle( Style.showSphereCollider, PhysicsVisualizationSettings.GetShowSphereColliders())); // CapsuleCollider PhysicsVisualizationSettings.SetShowCapsuleColliders(EditorGUILayout.Toggle( Style.showCapsuleCollider, PhysicsVisualizationSettings.GetShowCapsuleColliders())); // MeshCollider convex PhysicsVisualizationSettings.SetShowMeshColliders(PhysicsVisualizationSettings.MeshColliderType.Convex, EditorGUILayout.Toggle( Style.showConvexMeshCollider, PhysicsVisualizationSettings.GetShowMeshColliders(PhysicsVisualizationSettings.MeshColliderType.Convex))); // MeshCollider non-convex PhysicsVisualizationSettings.SetShowMeshColliders(PhysicsVisualizationSettings.MeshColliderType.NonConvex, EditorGUILayout.Toggle( Style.showConcaveMeshCollider, PhysicsVisualizationSettings.GetShowMeshColliders(PhysicsVisualizationSettings.MeshColliderType.NonConvex))); // TerrainCollider PhysicsVisualizationSettings.SetShowTerrainColliders(EditorGUILayout.Toggle( Style.showTerrainCollider, PhysicsVisualizationSettings.GetShowTerrainColliders())); EditorGUIUtility.labelWidth = oldWidth; EditorGUI.indentLevel--; } GUILayout.Space(4f); // Selection buttons GUILayout.BeginHorizontal(); bool selectNone = GUILayout.Button(Style.showNone); bool selectAll = GUILayout.Button(Style.showAll); if (selectNone || selectAll) { PhysicsVisualizationSettings.SetShowForAllFilters(selectAll); } GUILayout.EndHorizontal(); }