|
4 | 4 | using NUnit.Framework; |
5 | 5 | using System.Collections; |
6 | 6 |
|
| 7 | +[TestFixture] |
7 | 8 | public class NavMeshSurfaceModifierTests |
8 | 9 | { |
| 10 | + NavMeshSurface surface; |
| 11 | + NavMeshModifier modifier; |
| 12 | + |
| 13 | + [SetUp] |
| 14 | + public void CreatePlaneWithModifier() |
| 15 | + { |
| 16 | + var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
| 17 | + surface = plane.AddComponent<NavMeshSurface>(); |
| 18 | + modifier = plane.AddComponent<NavMeshModifier>(); |
| 19 | + } |
| 20 | + |
| 21 | + [TearDown] |
| 22 | + public void DestroyPlaneWithModifier() |
| 23 | + { |
| 24 | + GameObject.DestroyImmediate(modifier.gameObject); |
| 25 | + } |
| 26 | + |
9 | 27 | [Test] |
10 | 28 | public void ModifierIgnoreAffectsSelf() |
11 | 29 | { |
12 | | - var go = GameObject.CreatePrimitive(PrimitiveType.Plane); |
13 | | - var surface = go.AddComponent<NavMeshSurface>(); |
14 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
15 | 30 | modifier.ignoreFromBuild = true; |
16 | 31 |
|
17 | 32 | surface.BuildNavMesh(); |
18 | 33 |
|
19 | 34 | Assert.IsFalse(NavMeshSurfaceTests.HasNavMeshAtOrigin()); |
20 | | - GameObject.DestroyImmediate(go); |
21 | 35 | } |
22 | 36 |
|
23 | 37 | [Test] |
24 | 38 | public void ModifierIgnoreAffectsChild() |
25 | 39 | { |
26 | | - var go = new GameObject(); |
27 | | - var surface = go.AddComponent<NavMeshSurface>(); |
28 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
29 | 40 | modifier.ignoreFromBuild = true; |
| 41 | + modifier.GetComponent<MeshRenderer>().enabled = false; |
30 | 42 |
|
31 | | - var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
32 | | - plane.transform.SetParent(modifier.transform); |
| 43 | + var childPlane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
| 44 | + childPlane.transform.SetParent(modifier.transform); |
33 | 45 |
|
34 | 46 | surface.BuildNavMesh(); |
35 | 47 |
|
36 | 48 | Assert.IsFalse(NavMeshSurfaceTests.HasNavMeshAtOrigin()); |
37 | | - GameObject.DestroyImmediate(go); |
38 | | - GameObject.DestroyImmediate(plane); |
| 49 | + GameObject.DestroyImmediate(childPlane); |
39 | 50 | } |
40 | 51 |
|
41 | 52 | [Test] |
42 | 53 | public void ModifierIgnoreDoesNotAffectSibling() |
43 | 54 | { |
44 | | - var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
45 | | - var go = new GameObject(); |
46 | | - var surface = go.AddComponent<NavMeshSurface>(); |
47 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
48 | 55 | modifier.ignoreFromBuild = true; |
| 56 | + modifier.GetComponent<MeshRenderer>().enabled = false; |
| 57 | + |
| 58 | + var siblingPlane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
49 | 59 |
|
50 | 60 | surface.BuildNavMesh(); |
51 | 61 |
|
52 | 62 | Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin()); |
53 | | - GameObject.DestroyImmediate(go); |
54 | | - GameObject.DestroyImmediate(plane); |
| 63 | + GameObject.DestroyImmediate(siblingPlane); |
55 | 64 | } |
56 | 65 |
|
57 | 66 | [Test] |
58 | 67 | public void ModifierOverrideAreaAffectsSelf() |
59 | 68 | { |
60 | | - var go = GameObject.CreatePrimitive(PrimitiveType.Plane); |
61 | | - var surface = go.AddComponent<NavMeshSurface>(); |
62 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
63 | 69 | modifier.area = 4; |
64 | 70 | modifier.overrideArea = true; |
65 | 71 |
|
66 | 72 | surface.BuildNavMesh(); |
67 | 73 |
|
68 | 74 | var expectedAreaMask = 1 << 4; |
69 | 75 | Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask)); |
70 | | - GameObject.DestroyImmediate(go); |
71 | 76 | } |
72 | 77 |
|
73 | 78 | [Test] |
74 | 79 | public void ModifierOverrideAreaAffectsChild() |
75 | 80 | { |
76 | | - var go = new GameObject(); |
77 | | - var surface = go.AddComponent<NavMeshSurface>(); |
78 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
79 | 81 | modifier.area = 4; |
80 | 82 | modifier.overrideArea = true; |
| 83 | + modifier.GetComponent<MeshRenderer>().enabled = false; |
81 | 84 |
|
82 | | - var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
83 | | - plane.transform.SetParent(modifier.transform); |
| 85 | + var childPlane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
| 86 | + childPlane.transform.SetParent(modifier.transform); |
84 | 87 |
|
85 | 88 | surface.BuildNavMesh(); |
86 | 89 |
|
87 | 90 | var expectedAreaMask = 1 << 4; |
88 | 91 | Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask)); |
89 | | - GameObject.DestroyImmediate(go); |
90 | | - GameObject.DestroyImmediate(plane); |
| 92 | + GameObject.DestroyImmediate(childPlane); |
91 | 93 | } |
92 | 94 |
|
93 | 95 | [Test] |
94 | 96 | public void ModifierOverrideAreaDoesNotAffectSibling() |
95 | 97 | { |
96 | | - var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
97 | | - var go = new GameObject(); |
98 | | - var surface = go.AddComponent<NavMeshSurface>(); |
99 | | - var modifier = go.AddComponent<NavMeshModifier>(); |
100 | 98 | modifier.area = 4; |
101 | 99 | modifier.overrideArea = true; |
| 100 | + modifier.GetComponent<MeshRenderer>().enabled = false; |
| 101 | + |
| 102 | + var siblingPlane = GameObject.CreatePrimitive(PrimitiveType.Plane); |
102 | 103 |
|
103 | 104 | surface.BuildNavMesh(); |
104 | 105 |
|
105 | 106 | var expectedAreaMask = 1; |
106 | 107 | Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask)); |
107 | | - GameObject.DestroyImmediate(go); |
108 | | - GameObject.DestroyImmediate(plane); |
| 108 | + GameObject.DestroyImmediate(siblingPlane); |
109 | 109 | } |
110 | 110 | } |
0 commit comments