56 lines
1.4 KiB
C#
56 lines
1.4 KiB
C#
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
using UnityEditor;
|
|
using System.Collections;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using NUnit.Framework;
|
|
using UnityEngine;
|
|
using Object = UnityEngine.Object;
|
|
|
|
namespace Unity.AI.Navigation.Editor.Tests
|
|
{
|
|
class TestUtility
|
|
{
|
|
[return: NotNull]
|
|
public static GameObject InstantiatePrefab(GameObject prefab, string name)
|
|
{
|
|
GameObject result;
|
|
|
|
if (EditorApplication.isPlaying)
|
|
result = Object.Instantiate(prefab);
|
|
else
|
|
result = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
|
|
|
|
Assume.That(result, Is.Not.Null);
|
|
|
|
result!.name = name;
|
|
return result!;
|
|
}
|
|
|
|
public static IEnumerator BakeNavMeshAsync(NavMeshSurface surface, int defaultArea)
|
|
{
|
|
surface.defaultArea = defaultArea;
|
|
NavMeshAssetManager.instance.StartBakingSurfaces(new Object[] { surface });
|
|
yield return new WaitWhile(() => NavMeshAssetManager.instance.IsSurfaceBaking(surface));
|
|
}
|
|
|
|
public static void EliminateFromScene(ref GameObject go, bool keepDeactivated = false)
|
|
{
|
|
if (go == null)
|
|
return;
|
|
|
|
if (keepDeactivated)
|
|
go.SetActive(false);
|
|
else
|
|
Object.DestroyImmediate(go);
|
|
}
|
|
}
|
|
|
|
enum RunMode
|
|
{
|
|
EditMode,
|
|
PlayMode
|
|
}
|
|
}
|
|
#endif
|