1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using UnityEngine.TestTools;
- using NUnit.Framework;
- using System.Collections;
- using UnityEngine;
- using UnityEngine.Rendering.Universal;
- using UnityEngine.Rendering;
- [TestFixture]
- class RuntimeTests
- {
- GameObject go;
- Camera camera;
- RenderPipelineAsset currentAsset;
- [SetUp]
- public void Setup()
- {
- go = new GameObject();
- camera = go.AddComponent<Camera>();
- currentAsset = GraphicsSettings.renderPipelineAsset;
- }
- [TearDown]
- public void Cleanup()
- {
- GraphicsSettings.renderPipelineAsset = currentAsset;
- Object.DestroyImmediate(go);
- }
- // When LWRP pipeline is active, lightsUseLinearIntensity must match active color space.
- [UnityTest]
- public IEnumerator PipelineHasCorrectColorSpace()
- {
- AssetCheck();
- camera.Render();
- yield return null;
- Assert.AreEqual(QualitySettings.activeColorSpace == ColorSpace.Linear, GraphicsSettings.lightsUseLinearIntensity,
- "GraphicsSettings.lightsUseLinearIntensity must match active color space.");
- }
- // When switching to LWRP it sets "UniversalPipeline" as global shader tag.
- // When switching to Built-in it sets "" as global shader tag.
- #if UNITY_EDITOR // TODO This API call does not reset in player
- [UnityTest]
- public IEnumerator PipelineSetsAndRestoreGlobalShaderTagCorrectly()
- {
- AssetCheck();
- camera.Render();
- yield return null;
- Assert.AreEqual("UniversalPipeline,LightweightPipeline", Shader.globalRenderPipeline, "Wrong render pipeline shader tag.");
- GraphicsSettings.renderPipelineAsset = null;
- camera.Render();
- yield return null;
- Assert.AreEqual("", Shader.globalRenderPipeline, "Render Pipeline shader tag is not restored.");
- }
- #endif
- void AssetCheck()
- {
- //Assert.IsNotNull(currentAsset, "Render Pipeline Asset is Null");
- // Temp fix, test passes if project isnt setup for Universal RP
- if(currentAsset == null)
- Assert.Pass("Render Pipeline Asset is Null, test pass by default");
- Assert.AreEqual(currentAsset.GetType(), typeof(UniversalRenderPipelineAsset),
- "Pipeline Asset is not Universal RP");
- }
- }
|