55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using UnityEngine;
|
|
using UnityEngine.TestTools;
|
|
using NUnit.Framework;
|
|
using System.Collections;
|
|
using UnityEngine.UI;
|
|
|
|
[TestFixture]
|
|
[Category("RegressionTest")]
|
|
[Description("CoveredBugID = 734299")]
|
|
public class CanvasScalerWithChildTextObjectDoesNotCrash
|
|
{
|
|
GameObject m_CanvasObject;
|
|
|
|
[SetUp]
|
|
public void TestSetup()
|
|
{
|
|
#if UNITY_EDITOR
|
|
UnityEditor.EditorApplication.ExecuteMenuItem("Window/General/Game");
|
|
#endif
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator CanvasScalerWithChildTextObjectWithTextFontDoesNotCrash()
|
|
{
|
|
//This adds a Canvas component as well
|
|
m_CanvasObject = new GameObject("Canvas");
|
|
var canvasScaler = m_CanvasObject.AddComponent<CanvasScaler>();
|
|
m_CanvasObject.GetComponent<Canvas>().renderMode = RenderMode.ScreenSpaceCamera;
|
|
|
|
//the crash only reproduces if the text component is a child of the game object
|
|
//that has the CanvasScaler component and if it has an actual font and text set
|
|
var textObject = new GameObject("Text").AddComponent<UnityEngine.UI.Text>();
|
|
textObject.font = Font.CreateDynamicFontFromOSFont("Arial", 14);
|
|
textObject.text = "New Text";
|
|
textObject.transform.SetParent(m_CanvasObject.transform);
|
|
canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
|
canvasScaler.referenceResolution = new Vector2(1080, 1020);
|
|
|
|
//The crash happens when setting the referenceResolution to a small value
|
|
canvasScaler.referenceResolution = new Vector2(9, 9);
|
|
|
|
//We need to wait a few milliseconds for the crash to happen, otherwise Debug.Log will
|
|
//get executed and the test will pass
|
|
yield return new WaitForSeconds(0.1f);
|
|
|
|
Assert.That(true);
|
|
}
|
|
|
|
[TearDown]
|
|
public void TearDown()
|
|
{
|
|
GameObject.DestroyImmediate(m_CanvasObject);
|
|
}
|
|
}
|