CanvasElementsMaintainValidPositionsWhenCameraOrthoSizeIsZero.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using NUnit.Framework;
  2. using System.Collections;
  3. using UnityEngine;
  4. using UnityEngine.TestTools;
  5. using UnityEngine.UI;
  6. public class CanvasElementsMaintainValidPositionsWhenCameraOrthoSizeIsZero
  7. {
  8. GameObject image;
  9. GameObject canvas;
  10. GameObject camera;
  11. [SetUp]
  12. public void TestSetup()
  13. {
  14. canvas = new GameObject("Canvas", typeof(Canvas));
  15. image = new GameObject("Image", typeof(Image));
  16. image.transform.SetParent(canvas.transform);
  17. camera = new GameObject("Camera", typeof(Camera));
  18. var cameraComponent = camera.GetComponent<Camera>();
  19. cameraComponent.orthographic = true;
  20. var canvasComponent = canvas.GetComponent<Canvas>();
  21. canvasComponent.worldCamera = camera.GetComponent<Camera>();
  22. canvasComponent.renderMode = RenderMode.ScreenSpaceCamera;
  23. }
  24. [TearDown]
  25. public void TearDown()
  26. {
  27. GameObject.DestroyImmediate(canvas);
  28. GameObject.DestroyImmediate(camera);
  29. }
  30. [UnityTest]
  31. public IEnumerator TestCanvasElementsMaintainValidPositionsWhenCameraOrthoSizeIsZero()
  32. {
  33. var cameraComponent = camera.GetComponent<Camera>();
  34. cameraComponent.orthographicSize = 0;
  35. yield return null;
  36. Assert.AreNotEqual(image.transform.position.x, float.NaN);
  37. Assert.AreNotEqual(image.transform.position.y, float.NaN);
  38. cameraComponent.orthographicSize = 2;
  39. yield return null;
  40. Assert.AreEqual(image.transform.position.x, 0.0f);
  41. Assert.AreEqual(image.transform.position.y, 0.0f);
  42. Assert.Pass();
  43. }
  44. }