|
3 | 3 | using NUnit.Framework;
|
4 | 4 | using System.IO;
|
5 | 5 | using System.Collections.Generic;
|
| 6 | +using FbxExporters.Editor; |
6 | 7 |
|
7 | 8 | namespace FbxExporters.UnitTests
|
8 | 9 | {
|
@@ -54,6 +55,62 @@ public void BasicTest ()
|
54 | 55 | imported));
|
55 | 56 | }
|
56 | 57 |
|
| 58 | + [Test] |
| 59 | + public void RectTransformTest () |
| 60 | + { |
| 61 | + Vector3 scaleForward = new Vector3(1,2,3); |
| 62 | + Vector3 positionForward = new Vector3(100, 200, 300); |
| 63 | + Vector3 rotationForward = new Vector3(1,2,3); |
| 64 | + |
| 65 | + Vector3 scaleBackward = new Vector3(3, 2, 1); |
| 66 | + Vector3 positionBackward = new Vector3(300, 200, 100); |
| 67 | + Vector3 rotationBackward = new Vector3(3,2,1); |
| 68 | + |
| 69 | + //Create a hierarchy with a RectTransform |
| 70 | + var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); |
| 71 | + var capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule); |
| 72 | + capsule.AddComponent<RectTransform>(); |
| 73 | + |
| 74 | + capsule.GetComponent<RectTransform>().localScale = scaleForward; |
| 75 | + capsule.GetComponent<RectTransform>().localPosition = positionForward; |
| 76 | + capsule.GetComponent<RectTransform>().localRotation = Quaternion.Euler(rotationForward); |
| 77 | + |
| 78 | + capsule.transform.parent = cube.transform; |
| 79 | + |
| 80 | + string filePath = GetRandomFbxFilePath(); |
| 81 | + |
| 82 | + //instantiate our hierarchy as a prefab |
| 83 | + var oldInstance = ConvertToModel.Convert(cube, fbxFullPath: filePath); |
| 84 | + Assert.IsTrue(oldInstance); |
| 85 | + |
| 86 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localScale == scaleForward); |
| 87 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localPosition == positionForward); |
| 88 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localRotation == Quaternion.Euler(rotationForward)); |
| 89 | + |
| 90 | + //Create an "updated" hierarchy |
| 91 | + var cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube); |
| 92 | + var capsule2 = GameObject.CreatePrimitive(PrimitiveType.Capsule); |
| 93 | + capsule2.AddComponent<RectTransform>(); |
| 94 | + |
| 95 | + capsule2.GetComponent<RectTransform>().localScale = scaleBackward; |
| 96 | + capsule2.GetComponent<RectTransform>().localPosition = positionBackward; |
| 97 | + capsule2.GetComponent<RectTransform>().localRotation = Quaternion.Euler(rotationBackward); |
| 98 | + |
| 99 | + capsule2.transform.parent = cube2.transform; |
| 100 | + |
| 101 | + //export our updated hierarchy to the same file path as the original |
| 102 | + SleepForFileTimestamp(); |
| 103 | + FbxExporters.Editor.ModelExporter.ExportObject(filePath, cube2); |
| 104 | + AssetDatabase.Refresh(); |
| 105 | + |
| 106 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localScale == scaleBackward); |
| 107 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localPosition == positionBackward); |
| 108 | + Assert.IsTrue(oldInstance.transform.GetChild(0).GetComponent<RectTransform>().localRotation == Quaternion.Euler(rotationBackward)); |
| 109 | + |
| 110 | + GameObject.DestroyImmediate(cube); |
| 111 | + GameObject.DestroyImmediate(cube2); |
| 112 | + } |
| 113 | + |
57 | 114 | [Test]
|
58 | 115 | public void ReplaceTest ()
|
59 | 116 | {
|
|
0 commit comments