DebuggerComponent.QualityInformationWindow.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework;
  8. using UnityEngine;
  9. namespace UnityGameFramework.Runtime
  10. {
  11. public sealed partial class DebuggerComponent : GameFrameworkComponent
  12. {
  13. private sealed class QualityInformationWindow : ScrollableDebuggerWindowBase
  14. {
  15. private bool m_ApplyExpensiveChanges = false;
  16. protected override void OnDrawScrollableWindow()
  17. {
  18. GUILayout.Label("<b>Quality Level</b>");
  19. GUILayout.BeginVertical("box");
  20. {
  21. int currentQualityLevel = QualitySettings.GetQualityLevel();
  22. DrawItem("Current Quality Level", QualitySettings.names[currentQualityLevel]);
  23. m_ApplyExpensiveChanges = GUILayout.Toggle(m_ApplyExpensiveChanges, "Apply expensive changes on quality level change.");
  24. int newQualityLevel = GUILayout.SelectionGrid(currentQualityLevel, QualitySettings.names, 3, "toggle");
  25. if (newQualityLevel != currentQualityLevel)
  26. {
  27. QualitySettings.SetQualityLevel(newQualityLevel, m_ApplyExpensiveChanges);
  28. }
  29. }
  30. GUILayout.EndVertical();
  31. GUILayout.Label("<b>Rendering Information</b>");
  32. GUILayout.BeginVertical("box");
  33. {
  34. DrawItem("Active Color Space", QualitySettings.activeColorSpace.ToString());
  35. DrawItem("Desired Color Space", QualitySettings.desiredColorSpace.ToString());
  36. DrawItem("Max Queued Frames", QualitySettings.maxQueuedFrames.ToString());
  37. DrawItem("Pixel Light Count", QualitySettings.pixelLightCount.ToString());
  38. DrawItem("Master Texture Limit", QualitySettings.masterTextureLimit.ToString());
  39. DrawItem("Anisotropic Filtering", QualitySettings.anisotropicFiltering.ToString());
  40. DrawItem("Anti Aliasing", QualitySettings.antiAliasing.ToString());
  41. #if UNITY_5_5_OR_NEWER
  42. DrawItem("Soft Particles", QualitySettings.softParticles.ToString());
  43. #endif
  44. DrawItem("Soft Vegetation", QualitySettings.softVegetation.ToString());
  45. DrawItem("Realtime Reflection Probes", QualitySettings.realtimeReflectionProbes.ToString());
  46. DrawItem("Billboards Face Camera Position", QualitySettings.billboardsFaceCameraPosition.ToString());
  47. #if UNITY_2017_1_OR_NEWER
  48. DrawItem("Resolution Scaling Fixed DPI Factor", QualitySettings.resolutionScalingFixedDPIFactor.ToString());
  49. #endif
  50. #if UNITY_2018_2_OR_NEWER
  51. DrawItem("Texture Streaming Enabled", QualitySettings.streamingMipmapsActive.ToString());
  52. DrawItem("Texture Streaming Add All Cameras", QualitySettings.streamingMipmapsAddAllCameras.ToString());
  53. DrawItem("Texture Streaming Memory Budget", QualitySettings.streamingMipmapsMemoryBudget.ToString());
  54. DrawItem("Texture Streaming Renderers Per Frame", QualitySettings.streamingMipmapsRenderersPerFrame.ToString());
  55. DrawItem("Texture Streaming Max Level Reduction", QualitySettings.streamingMipmapsMaxLevelReduction.ToString());
  56. DrawItem("Texture Streaming Max File IO Requests", QualitySettings.streamingMipmapsMaxFileIORequests.ToString());
  57. #endif
  58. }
  59. GUILayout.EndVertical();
  60. GUILayout.Label("<b>Shadows Information</b>");
  61. GUILayout.BeginVertical("box");
  62. {
  63. #if UNITY_2017_1_OR_NEWER
  64. DrawItem("Shadowmask Mode", QualitySettings.shadowmaskMode.ToString());
  65. #endif
  66. #if UNITY_5_5_OR_NEWER
  67. DrawItem("Shadow Quality", QualitySettings.shadows.ToString());
  68. #endif
  69. #if UNITY_5_4_OR_NEWER
  70. DrawItem("Shadow Resolution", QualitySettings.shadowResolution.ToString());
  71. #endif
  72. DrawItem("Shadow Projection", QualitySettings.shadowProjection.ToString());
  73. DrawItem("Shadow Distance", QualitySettings.shadowDistance.ToString());
  74. DrawItem("Shadow Near Plane Offset", QualitySettings.shadowNearPlaneOffset.ToString());
  75. DrawItem("Shadow Cascades", QualitySettings.shadowCascades.ToString());
  76. DrawItem("Shadow Cascade 2 Split", QualitySettings.shadowCascade2Split.ToString());
  77. DrawItem("Shadow Cascade 4 Split", QualitySettings.shadowCascade4Split.ToString());
  78. }
  79. GUILayout.EndVertical();
  80. GUILayout.Label("<b>Other Information</b>");
  81. GUILayout.BeginVertical("box");
  82. {
  83. #if UNITY_2019_1_OR_NEWER
  84. DrawItem("Skin Weights", QualitySettings.skinWeights.ToString());
  85. #else
  86. DrawItem("Blend Weights", QualitySettings.blendWeights.ToString());
  87. #endif
  88. DrawItem("VSync Count", QualitySettings.vSyncCount.ToString());
  89. DrawItem("LOD Bias", QualitySettings.lodBias.ToString());
  90. DrawItem("Maximum LOD Level", QualitySettings.maximumLODLevel.ToString());
  91. DrawItem("Particle Raycast Budget", QualitySettings.particleRaycastBudget.ToString());
  92. DrawItem("Async Upload Time Slice", Utility.Text.Format("{0} ms", QualitySettings.asyncUploadTimeSlice.ToString()));
  93. DrawItem("Async Upload Buffer Size", Utility.Text.Format("{0} MB", QualitySettings.asyncUploadBufferSize.ToString()));
  94. #if UNITY_2018_3_OR_NEWER
  95. DrawItem("Async Upload Persistent Buffer", QualitySettings.asyncUploadPersistentBuffer.ToString());
  96. #endif
  97. }
  98. GUILayout.EndVertical();
  99. }
  100. }
  101. }
  102. }