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

RenderingLayersMigrationTest.cs 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using NUnit.Framework;
  4. using UnityEngine;
  5. using UnityEngine.Rendering;
  6. using UnityEngine.Rendering.Universal;
  7. using ShaderVariantLogLevel = UnityEngine.Rendering.ShaderVariantLogLevel;
  8. namespace UnityEditor.Rendering.Universal.Test.GlobalSettingsMigration
  9. {
  10. class RenderingLayersMigrationTest : GlobalSettingsMigrationTest
  11. {
  12. class TestCase1 : IGlobalSettingsMigrationTestCase
  13. {
  14. private List<string> m_RollbackLayers = new();
  15. public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset,
  16. UniversalRenderPipelineAsset renderPipelineAsset)
  17. {
  18. #pragma warning disable 618 // Type or member is obsolete
  19. globalSettingsAsset.m_RenderingLayerNames = new string[5]
  20. {
  21. "Test Layer 1",
  22. "Test Layer 2",
  23. "Test Layer 3",
  24. "Test Layer 4",
  25. "Test Layer 5",
  26. };
  27. #pragma warning restore 618
  28. m_RollbackLayers.Clear();
  29. m_RollbackLayers.AddRange(RenderingLayerMask.GetDefinedRenderingLayerNames());
  30. var count = RenderingLayerMask.GetDefinedRenderingLayerCount();
  31. for (int i = 1; i < count; ++i)
  32. {
  33. RenderPipelineEditorUtility.TrySetRenderingLayerName(i, string.Empty);
  34. }
  35. globalSettingsAsset.m_AssetVersion = 6;
  36. }
  37. public void TearDown(UniversalRenderPipelineGlobalSettings globalSettingsAsset, UniversalRenderPipelineAsset renderPipelineAsset)
  38. {
  39. for (int i = 1; i < m_RollbackLayers.Count; ++i)
  40. {
  41. RenderPipelineEditorUtility.TrySetRenderingLayerName(i, m_RollbackLayers[i]);
  42. }
  43. }
  44. public bool IsMigrationCorrect(out string message)
  45. {
  46. message = string.Empty;
  47. if (RenderingLayerMask.GetDefinedRenderingLayerCount() != 5)
  48. {
  49. message = "Mismatch number of rendering layer count";
  50. return false;
  51. }
  52. var expectedLayers = new string[5]
  53. {
  54. "Default",
  55. "Test Layer 2",
  56. "Test Layer 3",
  57. "Test Layer 4",
  58. "Test Layer 5",
  59. };
  60. string [] migratedLayers = RenderingLayerMask.GetDefinedRenderingLayerNames();
  61. if (!expectedLayers.SequenceEqual(migratedLayers))
  62. {
  63. message = "Layers have not migrated correctly";
  64. return false;
  65. }
  66. return true;
  67. }
  68. }
  69. static TestCaseData[] s_TestCaseDatas =
  70. {
  71. new TestCaseData(new TestCase1())
  72. .SetName(
  73. "When performing a migration of Rendering Layers, settings are being transferred correctly to Tags and Layers"),
  74. };
  75. [Test, TestCaseSource(nameof(s_TestCaseDatas))]
  76. public void PerformMigration(IGlobalSettingsMigrationTestCase testCase)
  77. {
  78. base.DoTest(testCase);
  79. }
  80. }
  81. }