| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- #if UNITY_2022_2_OR_NEWER
 
- using NUnit.Framework;
 
- using UnityEditor;
 
- using UnityEditor.SceneManagement;
 
- using UnityEngine;
 
- using UnityEngine.AI;
 
- using Unity.AI.Navigation.Updater;
 
- using NavMeshBuilder = UnityEditor.AI.NavMeshBuilder;
 
- namespace Unity.AI.Navigation.Editor.Tests
 
- {
 
-     [Description("Tests suite related to the systems used to convert editor data from the legacy NavMesh systems to the modern component-based navigation extension")]
 
-     class ConverterTests
 
-     {
 
-         const string k_RootFolder = "Assets";
 
-         const string k_TestFolder = "ConverterTests";
 
-         const string k_TestFolderPath = k_RootFolder + "/" + k_TestFolder;
 
-         const string k_TestScenePath = k_TestFolderPath + "/ConverterTestsScene.unity";
 
-         const string k_BuildHeightMeshPropertyName = "m_BuildSettings.buildHeightMesh";
 
-         bool m_BuildHeightMeshPreviousValue;
 
-         [OneTimeSetUp]
 
-         public void OneTimeSetUp()
 
-         {
 
-             if (!AssetDatabase.IsValidFolder(k_TestFolderPath))
 
-                 AssetDatabase.CreateFolder(k_RootFolder, k_TestFolder);
 
-             Assume.That(AssetDatabase.IsValidFolder(k_TestFolderPath));
 
-             var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
 
-             var planeGameObject = GameObject.CreatePrimitive(PrimitiveType.Plane);
 
- #pragma warning disable 618
 
-             GameObjectUtility.SetStaticEditorFlags(planeGameObject, StaticEditorFlags.NavigationStatic);
 
- #pragma warning restore 618
 
-             EditorSceneManager.SaveScene(scene, k_TestScenePath);
 
-             // Enable desired build settings (build HeightMesh)
 
-             var settingsObject = new SerializedObject(NavMeshBuilder.navMeshSettingsObject);
 
-             Assume.That(settingsObject, Is.Not.Null, "Unable to get the build settings object");
 
-             var buildHeightMeshProperty = settingsObject.FindProperty(k_BuildHeightMeshPropertyName);
 
-             Assume.That(buildHeightMeshProperty, Is.Not.Null, "Unable to get the buildHeightMesh property from the build settings object");
 
-             m_BuildHeightMeshPreviousValue = buildHeightMeshProperty.boolValue;
 
-             buildHeightMeshProperty.boolValue = true;
 
-             settingsObject.ApplyModifiedProperties();
 
-             Assume.That(buildHeightMeshProperty.boolValue, Is.True, "buildHeightMesh property from the build settings object should be true");
 
-             NavMeshBuilder.BuildNavMesh();
 
-             EditorSceneManager.SaveScene(scene, k_TestScenePath);
 
-             Assume.That(NavMeshUpdaterUtility.IsSceneReferencingLegacyNavMesh(k_TestScenePath));
 
-             NavMeshUpdaterUtility.ConvertScene(k_TestScenePath);
 
-         }
 
-         [Test]
 
-         public void Converter_AfterConversion_SceneNavMeshAssetIsGone()
 
-         {
 
-             var navMeshOwnedByScene = NavMeshUpdaterUtility.IsSceneReferencingLegacyNavMesh(k_TestScenePath);
 
-             Assert.IsFalse(navMeshOwnedByScene, "Converted scene should not own a NavMesh after conversion");
 
-         }
 
-         [Test]
 
-         public void Converter_AfterConversion_NavMeshSurfaceIsPresent()
 
-         {
 
-             var surface = Object.FindAnyObjectByType<NavMeshSurface>();
 
-             Assert.IsNotNull(surface, "Unable to find a NavMesh surface, it should have been created by the conversion");
 
-         }
 
-         [Test]
 
-         public void Converter_AfterConversion_NavMeshIsPresent()
 
-         {
 
-             var sampleSuccess = NavMesh.SamplePosition(Vector3.zero, out var hit, 1.0f, NavMesh.AllAreas);
 
-             Assert.IsTrue(sampleSuccess && hit.hit, "NavMesh should still be present after conversion");
 
-         }
 
-         [Test]
 
-         public void Converter_AfterConversion_NoNavigationStaticGameObjects()
 
-         {
 
-             var gameObjects = Object.FindObjectsByType<GameObject>(FindObjectsSortMode.None);
 
-             foreach (var gameObject in gameObjects)
 
-             {
 
- #pragma warning disable 618
 
-                 Assert.IsFalse(GameObjectUtility.AreStaticEditorFlagsSet(gameObject, StaticEditorFlags.NavigationStatic), "Objects should not be flagged as NavigationStatic after conversion");
 
- #pragma warning restore 618
 
-             }
 
-         }
 
-         [Test]
 
-         public void Converter_AfterConversion_HeightMeshIsPresent()
 
-         {
 
-             var surface = Object.FindAnyObjectByType<NavMeshSurface>();
 
-             Assume.That(surface, Is.Not.Null, "Unable to find a NavMesh surface, it should have been created by the conversion");
 
-             Assert.IsTrue(surface.buildHeightMesh, "A scene NavMesh built with HeightMesh should be converted to a surface with the buildHeightMesh option enabled");
 
-         }
 
-         [OneTimeTearDown]
 
-         public void OneTimeTearDown()
 
-         {
 
-             EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
 
-             if (AssetDatabase.IsValidFolder(k_TestFolderPath))
 
-                 AssetDatabase.DeleteAsset(k_TestFolderPath);
 
-             // Restore build settings value
 
-             var settingsObject = new SerializedObject(NavMeshBuilder.navMeshSettingsObject);
 
-             Assume.That(settingsObject, Is.Not.Null, "Unable to get the build settings object");
 
-             var buildHeightMeshProperty = settingsObject.FindProperty(k_BuildHeightMeshPropertyName);
 
-             Assume.That(buildHeightMeshProperty, Is.Not.Null, "Unable to get the buildHeightMesh property from the build settings object");
 
-             buildHeightMeshProperty.boolValue = m_BuildHeightMeshPreviousValue;
 
-             settingsObject.ApplyModifiedProperties();
 
-         }
 
-     }
 
- }
 
- #endif
 
 
  |