RectMask2DWithNestedCanvasCullsUsingCorrectCanvasRect.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using UnityEngine;
  2. using UnityEngine.TestTools;
  3. using NUnit.Framework;
  4. using System.Collections;
  5. using UnityEngine.UI;
  6. namespace Graphics
  7. {
  8. [TestFixture]
  9. [Category("RegressionTest")]
  10. [Description(
  11. "CoveredBugID = 782957, CoveredBugDescription = \"Some element from scroll view are invisible when they're masked with RectMask2D and sub-canvases\"")]
  12. public class RectMask2DWithNestedCanvasCullsUsingCorrectCanvasRect
  13. {
  14. GameObject m_RootCanvasGO;
  15. GameObject m_MaskGO;
  16. GameObject m_ImageGO;
  17. [SetUp]
  18. public void TestSetup()
  19. {
  20. m_RootCanvasGO = new GameObject("Canvas");
  21. m_MaskGO = new GameObject("Mask", typeof(RectMask2D));
  22. m_ImageGO = new GameObject("Image");
  23. }
  24. [UnityTest]
  25. public IEnumerator RectMask2DShouldNotCullImagesWithCanvas()
  26. {
  27. //Root Canvas
  28. var canvas = m_RootCanvasGO.AddComponent<Canvas>();
  29. canvas.renderMode = RenderMode.ScreenSpaceOverlay;
  30. // Rectmaskk2D
  31. var maskRect = m_MaskGO.GetComponent<RectTransform>();
  32. maskRect.sizeDelta = new Vector2(200, 200);
  33. // Our image that will be in the RectMask2D
  34. var image = m_ImageGO.AddComponent<Image>();
  35. var imageRenderer = m_ImageGO.GetComponent<CanvasRenderer>();
  36. var imageRect = m_ImageGO.GetComponent<RectTransform>();
  37. m_ImageGO.AddComponent<Canvas>();
  38. imageRect.sizeDelta = new Vector2(10, 10);
  39. m_MaskGO.transform.SetParent(canvas.transform);
  40. image.transform.SetParent(m_MaskGO.transform);
  41. imageRect.position = maskRect.position = Vector3.zero;
  42. yield return new WaitForSeconds(0.1f);
  43. Assert.That(imageRenderer.cull, Is.False,
  44. "Expected image(with canvas) to not be culled by the RectMask2D but it was.");
  45. }
  46. [TearDown]
  47. public void TearDown()
  48. {
  49. GameObject.DestroyImmediate(m_RootCanvasGO);
  50. GameObject.DestroyImmediate(m_MaskGO);
  51. GameObject.DestroyImmediate(m_ImageGO);
  52. }
  53. }
  54. }