説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

SimpleScene2PlanesNavigationSetup.cs 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #if UNITY_EDITOR
  2. using UnityEditor;
  3. using UnityEditor.SceneManagement;
  4. #endif
  5. using UnityEngine;
  6. using UnityEngine.AI;
  7. using UnityEngine.SceneManagement;
  8. using UnityEngine.TestTools.Utils;
  9. namespace Unity.AI.Navigation.Tests
  10. {
  11. class SimpleScene2PlanesNavigationSetup : PrebuiltSceneSetup
  12. {
  13. protected override string GetSceneFile()
  14. {
  15. return "OffMeshLinkTwoPlanesScene.unity";
  16. }
  17. protected override void SceneSetup()
  18. {
  19. #if UNITY_EDITOR
  20. var myScene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive);
  21. SceneManager.SetActiveScene(myScene);
  22. var plane1 = Utils.CreatePrimitive(PrimitiveType.Plane);
  23. plane1.transform.position = new Vector3(10f, 0f, 0f);
  24. plane1.name = "plane1";
  25. GameObjectUtility.SetStaticEditorFlags(plane1, StaticEditorFlags.NavigationStatic);
  26. var plane2 = Utils.CreatePrimitive(PrimitiveType.Plane);
  27. plane2.transform.position = new Vector3(25f, 0f, 0f);
  28. plane2.name = "plane2";
  29. GameObjectUtility.SetStaticEditorFlags(plane2, StaticEditorFlags.NavigationStatic);
  30. var capsule = Utils.CreatePrimitive(PrimitiveType.Capsule);
  31. capsule.name = "Agent";
  32. capsule.transform.position = new Vector3(6, 0, 0);
  33. capsule.AddComponent<NavMeshAgent>();
  34. EditorSceneManager.SaveScene(SceneManager.GetActiveScene(), pathToTestScene);
  35. UnityEditor.AI.NavMeshBuilder.BuildNavMesh();
  36. EditorSceneManager.SaveScene(SceneManager.GetActiveScene(), pathToTestScene);
  37. EditorSceneManager.CloseScene(myScene, true);
  38. UnityEditor.AI.NavMeshBuilder.ClearAllNavMeshes();
  39. #endif
  40. }
  41. }
  42. }