Maze / Library /PackageCache /com.unity.timeline@1.6.5 /Editor /Utilities /FrameRateDisplayUtility.cs
| using System; | |
| using System.Linq; | |
| using UnityEditor; | |
| using UnityEngine; | |
| using UnityEngine.Playables; | |
| using UnityEngine.Timeline; | |
| namespace UnityEditor.Timeline | |
| { | |
| static class FrameRateDisplayUtility | |
| { | |
| private static string[] s_FrameRateLabels; | |
| public static bool GetStandardFromFrameRate(double frameRate, out StandardFrameRates standard) | |
| { | |
| FrameRate frameRateObj = TimeUtility.GetClosestFrameRate(RoundFrameRate(frameRate)); | |
| return TimeUtility.ToStandardFrameRate(frameRateObj, out standard); | |
| } | |
| public static double RoundFrameRate(double frameRate) | |
| { | |
| double trunc = Math.Truncate(frameRate * (1 / TimeUtility.kFrameRateRounding)) * TimeUtility.kFrameRateRounding; | |
| return Math.Min(Math.Max(TimelineAsset.EditorSettings.kMinFrameRate, trunc), | |
| TimelineAsset.EditorSettings.kMaxFrameRate); | |
| } | |
| public static string[] GetDefaultFrameRatesLabels(StandardFrameRates option) | |
| { | |
| string[] labels; | |
| if (s_FrameRateLabels == null || !s_FrameRateLabels.Any()) | |
| { | |
| var frameRates = (StandardFrameRates[])Enum.GetValues(typeof(StandardFrameRates)); | |
| labels = Array.ConvertAll(frameRates, GetLabelForStandardFrameRate); | |
| s_FrameRateLabels = labels; | |
| } | |
| else | |
| { | |
| labels = s_FrameRateLabels; | |
| } | |
| if (!Enum.IsDefined(typeof(StandardFrameRates), option)) | |
| { | |
| Array.Resize(ref labels, (int)option + 1); | |
| labels[(int)option] = GetLabelForStandardFrameRate(option); | |
| } | |
| return labels; | |
| } | |
| static string GetLabelForStandardFrameRate(StandardFrameRates option) | |
| { | |
| switch (option) | |
| { | |
| case StandardFrameRates.Fps23_97: | |
| return L10n.Tr("Film NTSC: 23.97 fps"); | |
| case StandardFrameRates.Fps24: | |
| return L10n.Tr("Film: 24 fps"); | |
| case StandardFrameRates.Fps25: | |
| return L10n.Tr("PAL: 25 fps"); | |
| case StandardFrameRates.Fps29_97: | |
| return L10n.Tr("NTSC: 29.97 fps"); | |
| case StandardFrameRates.Fps30: | |
| return L10n.Tr("HD: 30 fps"); | |
| case StandardFrameRates.Fps50: | |
| return L10n.Tr("Interlaced PAL: 50 fps"); | |
| case StandardFrameRates.Fps59_94: | |
| return L10n.Tr("Interlaced NTSC: 59.94 fps"); | |
| case StandardFrameRates.Fps60: | |
| return L10n.Tr("Game: 60 fps"); | |
| default: | |
| return L10n.Tr("Custom"); | |
| } | |
| } | |
| } | |
| } | |