暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

FrameRateDisplayUtility.cs 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Linq;
  3. using UnityEditor;
  4. using UnityEngine;
  5. using UnityEngine.Playables;
  6. using UnityEngine.Timeline;
  7. namespace UnityEditor.Timeline
  8. {
  9. static class FrameRateDisplayUtility
  10. {
  11. private static string[] s_FrameRateLabels;
  12. public static bool GetStandardFromFrameRate(double frameRate, out StandardFrameRates standard)
  13. {
  14. FrameRate frameRateObj = TimeUtility.GetClosestFrameRate(RoundFrameRate(frameRate));
  15. return TimeUtility.ToStandardFrameRate(frameRateObj, out standard);
  16. }
  17. public static double RoundFrameRate(double frameRate)
  18. {
  19. double trunc = Math.Truncate(frameRate * (1 / TimeUtility.kFrameRateRounding)) * TimeUtility.kFrameRateRounding;
  20. return Math.Min(Math.Max(TimelineAsset.EditorSettings.kMinFrameRate, trunc),
  21. TimelineAsset.EditorSettings.kMaxFrameRate);
  22. }
  23. public static string[] GetDefaultFrameRatesLabels(StandardFrameRates option)
  24. {
  25. string[] labels;
  26. if (s_FrameRateLabels == null || !s_FrameRateLabels.Any())
  27. {
  28. var frameRates = (StandardFrameRates[])Enum.GetValues(typeof(StandardFrameRates));
  29. labels = Array.ConvertAll(frameRates, GetLabelForStandardFrameRate);
  30. s_FrameRateLabels = labels;
  31. }
  32. else
  33. {
  34. labels = s_FrameRateLabels;
  35. }
  36. if (!Enum.IsDefined(typeof(StandardFrameRates), option))
  37. {
  38. Array.Resize(ref labels, (int)option + 1);
  39. labels[(int)option] = GetLabelForStandardFrameRate(option);
  40. }
  41. return labels;
  42. }
  43. static string GetLabelForStandardFrameRate(StandardFrameRates option)
  44. {
  45. switch (option)
  46. {
  47. case StandardFrameRates.Fps23_97:
  48. return L10n.Tr("Film NTSC: 23.97 fps");
  49. case StandardFrameRates.Fps24:
  50. return L10n.Tr("Film: 24 fps");
  51. case StandardFrameRates.Fps25:
  52. return L10n.Tr("PAL: 25 fps");
  53. case StandardFrameRates.Fps29_97:
  54. return L10n.Tr("NTSC: 29.97 fps");
  55. case StandardFrameRates.Fps30:
  56. return L10n.Tr("HD: 30 fps");
  57. case StandardFrameRates.Fps50:
  58. return L10n.Tr("Interlaced PAL: 50 fps");
  59. case StandardFrameRates.Fps59_94:
  60. return L10n.Tr("Interlaced NTSC: 59.94 fps");
  61. case StandardFrameRates.Fps60:
  62. return L10n.Tr("Game: 60 fps");
  63. default:
  64. return L10n.Tr("Custom");
  65. }
  66. }
  67. }
  68. }