using JetBrains.Annotations; using UnityEditor; using UnityEngine; using UTools = UnityEditor.Tools; namespace Module.NavigationTool.Editor.Toolbar { [UsedImplicitly] internal sealed class ToolTimeScale : AbstractToolbarDrawer { public override bool Visible => ToolbarSettings.IsTimeScaleEnabled; public override bool Enabled => true; public override EToolbarPlacement Placement => EToolbarPlacement.Left; public override int Priority => (int)EToolbarPriority.Low; protected override void Draw(Rect rect) { float value = Time.timeScale; var r0 = new Rect(rect.x, rect.y - 2.0f, rect.width, rect.height * 0.5f); var r1 = new Rect(rect.x + 4.0f, rect.y + 2.0f, rect.width - 8.0f, rect.height * 0.5f); var r2 = new Rect(rect.x, r1.yMax, rect.width, rect.height * 0.5f); EditorGUI.LabelField(r0, "Time scale", EditorStyles.centeredGreyMiniLabel); EditorGUI.LabelField(r2, value.ToString("0.00"), EditorStyles.centeredGreyMiniLabel); float temp = GUI.HorizontalSlider(r1, value, ToolbarSettings.TimeScaleMinValue, ToolbarSettings.TimeScaleMaxValue); temp = Mathf.Clamp(temp, ToolbarSettings.TimeScaleMinValue, ToolbarSettings.TimeScaleMaxValue); if (!Mathf.Approximately(value, temp)) Time.timeScale = temp; } public override float CalculateWidth() { return 100.0f; } } }