You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
58 lines
1.6 KiB
using UnityEngine; |
|
using UnityEngine.TestTools; |
|
using NUnit.Framework; |
|
using System.Collections; |
|
using UnityEngine.UI; |
|
|
|
public class ParentCanvasIsSane |
|
{ |
|
GameObject rootCanvas; |
|
GameObject rootObject; |
|
GameObject child1; |
|
CanvasGroup c1CanvasGroup; |
|
GameObject child2; |
|
GameObject child3; |
|
|
|
[SetUp] |
|
public void TestSetup() |
|
{ |
|
// root GO |
|
// root Canvas |
|
// L child1 GO (RectTransform, CanvasGroup) |
|
// L child2 GO (RectTransform) |
|
// L child3 GO (Image) |
|
|
|
rootCanvas = new GameObject("root Canvas"); |
|
rootCanvas.AddComponent<Canvas>(); |
|
rootCanvas.AddComponent<CanvasScaler>(); |
|
|
|
rootObject = new GameObject("root GO"); |
|
|
|
child1 = new GameObject("child1 GO"); |
|
child1.AddComponent<RectTransform>(); |
|
c1CanvasGroup = child1.AddComponent<CanvasGroup>(); |
|
|
|
child2 = new GameObject("child2 GO"); |
|
child2.AddComponent<RectTransform>(); |
|
|
|
child3 = new GameObject("child3 GO"); |
|
child3.AddComponent<Image>(); |
|
|
|
child3.transform.SetParent(child2.transform); |
|
child2.transform.SetParent(child1.transform); |
|
child1.transform.SetParent(rootCanvas.transform); |
|
} |
|
|
|
[UnityTest] |
|
public IEnumerator RecalculatingAlphaOnReparentedInactiveObjectsDoesNotCrash() |
|
{ |
|
Assert.IsNotNull(child3.GetComponent<CanvasRenderer>()); |
|
|
|
c1CanvasGroup.alpha = 0.5f; |
|
child1.SetActive(false); |
|
child1.transform.SetParent(rootObject.transform, true); |
|
|
|
// This will crash if child3.GetComponent<CanvasRenderer>().m_ParentCanvas is not null. |
|
yield return null; |
|
} |
|
}
|
|
|