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

ParentCanvasIsSane.cs 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using UnityEngine;
  2. using UnityEngine.TestTools;
  3. using NUnit.Framework;
  4. using System.Collections;
  5. using UnityEngine.UI;
  6. public class ParentCanvasIsSane
  7. {
  8. GameObject rootCanvas;
  9. GameObject rootObject;
  10. GameObject child1;
  11. CanvasGroup c1CanvasGroup;
  12. GameObject child2;
  13. GameObject child3;
  14. [SetUp]
  15. public void TestSetup()
  16. {
  17. // root GO
  18. // root Canvas
  19. // L child1 GO (RectTransform, CanvasGroup)
  20. // L child2 GO (RectTransform)
  21. // L child3 GO (Image)
  22. rootCanvas = new GameObject("root Canvas");
  23. rootCanvas.AddComponent<Canvas>();
  24. rootCanvas.AddComponent<CanvasScaler>();
  25. rootObject = new GameObject("root GO");
  26. child1 = new GameObject("child1 GO");
  27. child1.AddComponent<RectTransform>();
  28. c1CanvasGroup = child1.AddComponent<CanvasGroup>();
  29. child2 = new GameObject("child2 GO");
  30. child2.AddComponent<RectTransform>();
  31. child3 = new GameObject("child3 GO");
  32. child3.AddComponent<Image>();
  33. child3.transform.SetParent(child2.transform);
  34. child2.transform.SetParent(child1.transform);
  35. child1.transform.SetParent(rootCanvas.transform);
  36. }
  37. [UnityTest]
  38. public IEnumerator RecalculatingAlphaOnReparentedInactiveObjectsDoesNotCrash()
  39. {
  40. Assert.IsNotNull(child3.GetComponent<CanvasRenderer>());
  41. c1CanvasGroup.alpha = 0.5f;
  42. child1.SetActive(false);
  43. child1.transform.SetParent(rootObject.transform, true);
  44. // This will crash if child3.GetComponent<CanvasRenderer>().m_ParentCanvas is not null.
  45. yield return null;
  46. }
  47. }