From b84686474891972eab403a072e0c37a2e9a0af9f Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 13 Apr 2018 11:57:28 +0200 Subject: [PATCH 01/82] * Open development branch to add support for the new prefab workflow. --- Assets/NavMeshComponents/Scripts/NavMeshSurface.cs | 2 +- {UnityPackageManager => Packages}/manifest.json | 0 ProjectSettings/ProjectVersion.txt | 2 +- README.md | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename {UnityPackageManager => Packages}/manifest.json (100%) diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs index 10ddf358..66377b03 100644 --- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs +++ b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs @@ -373,7 +373,7 @@ bool UnshareNavMeshAsset() return false; // An instance can share asset reference only with its prefab parent - var prefab = UnityEditor.PrefabUtility.GetPrefabParent(this) as NavMeshSurface; + var prefab = UnityEditor.PrefabUtility.GetCorrespondingObjectFromSource(this) as NavMeshSurface; if (prefab != null && prefab.navMeshData == navMeshData) return false; diff --git a/UnityPackageManager/manifest.json b/Packages/manifest.json similarity index 100% rename from UnityPackageManager/manifest.json rename to Packages/manifest.json diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index f0f965c4..99d48fd6 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 2018.1.0b1 +m_EditorVersion: 2018.2.0a8 diff --git a/README.md b/README.md index 6395ac0e..5aefea0b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> This branch requires **Unity 2018.1**. For older or future versions of Unity please use a matching branch ([master](../..), [5.6](../../tree/5.6), [2017.1](../../tree/2017.1)). +> ⚠️ The code in this branch is not fully compatible with any publicly-available Unity editor. It addresses changes in the prefab workflow. # Components for Runtime NavMesh Building From 9af3291fd1fce73016299e207bbb9326baf785b9 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 13 Apr 2018 12:40:01 +0200 Subject: [PATCH 02/82] Fix compilation errors and warnings caused by prefabs-related changes in the API. --- .../Examples/Editor/NavMeshPrefabInstanceEditor.cs | 4 ++-- .../Editor/NavMeshSurfaceEditor.cs | 5 ++--- Assets/NavMeshComponents/Scripts/NavMeshSurface.cs | 14 +++++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs b/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs index 60b31d39..12d320d7 100644 --- a/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs +++ b/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs @@ -45,7 +45,7 @@ void OnInspectorGUIPrefab(GameObject go) { if (GUILayout.Button("Select the Prefab asset to bake or clear the navmesh", EditorStyles.helpBox)) { - Selection.activeObject = PrefabUtility.GetPrefabParent(go); + Selection.activeObject = PrefabUtility.GetCorrespondingObjectFromSource(go); EditorGUIUtility.PingObject(Selection.activeObject); } } @@ -71,7 +71,7 @@ NavMeshData Build(NavMeshPrefabInstance instance) var sources = new List(); var markups = new List(); - NavMeshBuilder.CollectSources(root, ~0, NavMeshCollectGeometry.RenderMeshes, 0, markups, sources); + NavMeshBuilder.CollectSources(root, ~0, NavMeshCollectGeometry.RenderMeshes, 0, markups, instance.gameObject.scene, sources); var settings = NavMesh.GetSettingsByID(0); var bounds = new Bounds(Vector3.zero, 1000.0f * Vector3.one); var navmesh = NavMeshBuilder.BuildNavMeshData(settings, sources, bounds, root.position, root.rotation); diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 395273fe..b0104fef 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -110,11 +110,10 @@ static void CreateNavMeshAsset(NavMeshSurface surface) static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) { - var prefabType = PrefabUtility.GetPrefabType(navSurface); - if (prefabType == PrefabType.PrefabInstance || prefabType == PrefabType.DisconnectedPrefabInstance) + if (PrefabUtility.IsPartOfPrefabInstance(navSurface) && !PrefabUtility.IsPartOfModelPrefab(navSurface)) { // Don't allow deleting the asset belonging to the prefab parent - var parentSurface = PrefabUtility.GetPrefabParent(navSurface) as NavMeshSurface; + var parentSurface = PrefabUtility.GetCorrespondingObjectFromSource(navSurface) as NavMeshSurface; if (parentSurface && navSurface.navMeshData == parentSurface.navMeshData) return null; } diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs index 66377b03..2e8e0a39 100644 --- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs +++ b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using UnityEditor; +using UnityEditor.SceneManagement; namespace UnityEngine.AI { @@ -252,6 +254,7 @@ List CollectSources() modifiers = NavMeshModifier.activeModifiers; } + var scene = gameObject.scene; foreach (var m in modifiers) { if ((m_LayerMask & (1 << m.gameObject.layer)) == 0) @@ -268,17 +271,17 @@ List CollectSources() if (m_CollectObjects == CollectObjects.All) { - NavMeshBuilder.CollectSources(null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); + NavMeshBuilder.CollectSources(null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, scene, sources); } else if (m_CollectObjects == CollectObjects.Children) { - NavMeshBuilder.CollectSources(transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); + NavMeshBuilder.CollectSources(transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, scene, sources); } else if (m_CollectObjects == CollectObjects.Volume) { Matrix4x4 localToWorld = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one); var worldBounds = GetWorldBounds(localToWorld, new Bounds(m_Center, m_Size)); - NavMeshBuilder.CollectSources(worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); + NavMeshBuilder.CollectSources(worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, scene, sources); } if (m_IgnoreNavMeshAgent) @@ -368,8 +371,9 @@ bool UnshareNavMeshAsset() return false; // Prefab parent owns the asset reference - var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); - if (prefabType == UnityEditor.PrefabType.Prefab) + var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(this); + var isPersistentObject = EditorUtility.IsPersistent(this); + if (isInPreviewScene || isPersistentObject) return false; // An instance can share asset reference only with its prefab parent From fe571d2c3b4fe6a9eca52afe5a15d2a5991a8843 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 13 Apr 2018 13:16:41 +0200 Subject: [PATCH 03/82] Added tests for prefabs with NavMeshSurface components. --- Assets/Tests/Editor.meta | 8 + .../Editor/NavMeshSurfaceInPrefabTests.cs | 669 ++++++++++++++++++ .../NavMeshSurfaceInPrefabTests.cs.meta | 11 + 3 files changed, 688 insertions(+) create mode 100644 Assets/Tests/Editor.meta create mode 100644 Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs create mode 100644 Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs.meta diff --git a/Assets/Tests/Editor.meta b/Assets/Tests/Editor.meta new file mode 100644 index 00000000..4482b6ff --- /dev/null +++ b/Assets/Tests/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 276ab4071255d9f49931e6a8373248e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs new file mode 100644 index 00000000..8b7f6fcb --- /dev/null +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -0,0 +1,669 @@ +#define NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + +using System; +using UnityEngine; +using UnityEngine.TestTools; +using NUnit.Framework; +using System.Collections; +using System.IO; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine.AI; +using Object = UnityEngine.Object; + +[Category("PrefabsWithNavMeshComponents")] +public class NavMeshSurfaceInPrefabTests +{ + const string k_AutoSaveKey = "AutoSave"; + const string k_TempFolder = "Assets/Tests/Editor/TempPrefabs"; + string m_PrefabPath = ""; + int m_TestCounter; + + const int k_BlueArea = 0; + const int k_PinkArea = 3; + const int k_GreenArea = 4; + const int k_GrayArea = 7; + const int k_BrownArea = 10; + const int k_RedArea = 18; + const int k_OrangeArea = 26; + const int k_YellowArea = 30; + + const int k_PrefabDefaultArea = k_YellowArea; + + [OneTimeSetUp] + public void OneTimeSetup() + { + //if (System.IO.Directory.Exists(k_TempFolder)) + AssetDatabase.DeleteAsset(k_TempFolder); + + //if (!System.IO.Directory.Exists(k_TempFolder)) + AssetDatabase.CreateFolder("Assets/Tests/Editor", "TempPrefabs"); + + SessionState.SetBool(k_AutoSaveKey, StageManager.instance.autoSave); + StageManager.instance.autoSave = false; + StageManager.instance.GoToMainStage(); + } + + [OneTimeTearDown] + public void OneTimeTearDown() + { + StageManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageManager.instance.autoSave); + StageManager.instance.GoToMainStage(); + + if (System.IO.Directory.Exists(k_TempFolder)) + AssetDatabase.DeleteAsset(k_TempFolder); + } + + [UnitySetUp] + public IEnumerator Setup() + { + var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); + plane.name = "NavMeshSurfacePrefab" + (++m_TestCounter); + var surface = plane.AddComponent(); + surface.defaultArea = k_PrefabDefaultArea; + surface.collectObjects = CollectObjects.Children; + surface.BuildNavMesh(); + CreateNavMeshAsset(surface); + + m_PrefabPath = Path.Combine(k_TempFolder, plane.name + ".prefab"); + PrefabUtility.CreatePrefab(m_PrefabPath, plane); + + Object.DestroyImmediate(plane); + + NavMesh.RemoveAllNavMeshData(); + + yield return null; + } + + [UnityTearDown] + public IEnumerator TearDown() + { + //if (System.IO.File.Exists(m_PrefabPath)) + //{ + // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + // AssetDatabase.OpenAsset(prefab); + // var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + // if (prefabScene != null && prefabScene.prefabInstanceRoot != null) + // { + // var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + // if (prefabSurface != null) + // { + // DeleteNavMeshAsset(prefabSurface); + // } + // } + + // AssetDatabase.DeleteAsset(m_PrefabPath); + //} + + StageManager.instance.GoToMainStage(); + + yield return null; + } + + static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) + { + var expectedAreaMask = 1 << expectedArea; + + var areaExists = HasNavMeshAtPosition(pos, expectedAreaMask); + var otherAreasExist = HasNavMeshAtPosition(pos, ~expectedAreaMask); + Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); + if (otherAreasExist) + { + for (int i = 0; i < 32; i++) + { + if (i == expectedArea) + continue; + + var thisOtherAreaExists = HasNavMeshAtPosition(pos, 1 << i); + if (thisOtherAreaExists) + { + Debug.Log(" _another area that exists here " + i); + } + } + } + + Assert.IsTrue(HasNavMeshAtPosition(pos, expectedAreaMask), "Expected NavMesh with area {0} at position {1}.", expectedArea, pos); + Assert.IsFalse(HasNavMeshAtPosition(pos, ~expectedAreaMask), "A NavMesh with an area other than {0} exists at position {1}.", expectedArea, pos); + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() + { + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero)); + + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + Assert.IsNotNull(prefabScene); + Assert.IsNotNull(prefabScene.prefabInstanceRoot); + + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var initialPrefabNavMeshData = prefabSurface.navMeshData; + prefabSurface.defaultArea = k_RedArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + + Assert.AreNotSame(prefabSurface.navMeshData, initialPrefabNavMeshData); + + prefabScene.SavePrefab(); + StageManager.instance.GoToMainStage(); + + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, NavMesh.AllAreas, 0, 1000.0f)); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + var instanceNavMeshData = instanceSurface.navMeshData; + + var clonePosition = new Vector3(20, 0, 0); + var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); + Assert.IsNotNull(instanceClone); + instanceClone.name = "PrefabInstanceClone"; + + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsTrue(HasNavMeshAtPosition(clonePosition, expectedAreaMask)); + Assert.IsFalse(HasNavMeshAtPosition(clonePosition, ~expectedAreaMask)); + + var instanceCloneSurface = instanceClone.GetComponent(); + Assert.IsNotNull(instanceCloneSurface); + var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + Assert.IsNotNull(prefabScene); + Assert.IsNotNull(prefabScene.prefabInstanceRoot); + + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurface.navMeshData; + Assert.AreSame(prefabNavMeshData, instanceNavMeshData); + Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); + + StageManager.instance.GoToMainStage(); + + Object.DestroyImmediate(instance); + Object.DestroyImmediate(instanceClone); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_HasEmptyNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface.navMeshData); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + DeleteNavMeshAsset(prefabSurface); +#endif + prefabSurface.navMeshData = null; + prefabScene.SavePrefab(); + + StageManager.instance.GoToMainStage(); + Assert.IsNull(instanceSurface.navMeshData); + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); + + Object.DestroyImmediate(instance); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instanceOne); + instanceOne.name = "PrefabInstanceOne" + m_TestCounter; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + var initialNavMeshData = prefabSurface.navMeshData; +#endif + prefabSurface.defaultArea = k_RedArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + + prefabScene.SavePrefab(); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialNavMeshData)); +#endif + StageManager.instance.GoToMainStage(); + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + + var instanceOneSurface = instanceOne.GetComponent(); + instanceOneSurface.defaultArea = k_BrownArea; + instanceOneSurface.BuildNavMesh(); + CreateNavMeshAsset(instanceOneSurface); + + var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instanceTwo); + instanceTwo.name = "PrefabInstanceTwo" + m_TestCounter; + // reactivate the object to apply the change of position immediately + instanceTwo.SetActive(false); + instanceTwo.transform.position = new Vector3(20, 0, 0); + instanceTwo.SetActive(true); + + TestNavMeshExistsAloneAtPosition(k_BrownArea, Vector3.zero); + TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); + + Object.DestroyImmediate(instanceOne); + Object.DestroyImmediate(instanceTwo); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + + var clonePosition = new Vector3(20, 0, 0); + var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); + Assert.IsNotNull(instanceClone); + instanceClone.name = "PrefabInstanceClone"; + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + instanceSurface.defaultArea = k_RedArea; + instanceSurface.BuildNavMesh(); + var instanceNavMeshData = instanceSurface.navMeshData; + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsTrue(HasNavMeshAtPosition(clonePosition, expectedAreaMask)); + Assert.IsFalse(HasNavMeshAtPosition(clonePosition, ~expectedAreaMask)); + + var instanceCloneSurface = instanceClone.GetComponent(); + Assert.IsNotNull(instanceCloneSurface); + var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurface.navMeshData; + Assert.AreNotSame(prefabNavMeshData, instanceNavMeshData); + Assert.AreNotSame(instanceCloneNavMeshData, instanceNavMeshData); + Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); + + StageManager.instance.GoToMainStage(); + + Object.DestroyImmediate(instance); + Object.DestroyImmediate(instanceClone); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + + var clonePosition = new Vector3(20, 0, 0); + var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); + Assert.IsNotNull(instanceClone); + instanceClone.name = "PrefabInstanceClone"; + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + instanceSurface.RemoveData(); + instanceSurface.navMeshData = null; + + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); + + Assert.IsTrue(HasNavMeshAtPosition(clonePosition, expectedAreaMask)); + Assert.IsFalse(HasNavMeshAtPosition(clonePosition, ~expectedAreaMask)); + + var instanceCloneSurface = instanceClone.GetComponent(); + Assert.IsNotNull(instanceCloneSurface); + var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurface.navMeshData; + Assert.AreNotSame(prefabNavMeshData, instanceSurface.navMeshData); + Assert.AreNotSame(instanceCloneNavMeshData, instanceSurface.navMeshData); + Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); + + StageManager.instance.GoToMainStage(); + + Object.DestroyImmediate(instance); + Object.DestroyImmediate(instanceClone); + + yield return null; + } + + // this would be not much more than NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavMeshData + //[UnityTest] + //public IEnumerator NavMeshSurfacePrefab_WhenInstanceDeleted_PrefabKeepsNavMeshData() + //{ + // yield return null; + //} + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotChangeInstance() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + instanceSurface.defaultArea = k_RedArea; + instanceSurface.BuildNavMesh(); + var instanceNavMeshData = instanceSurface.navMeshData; + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var initialPrefabNavMeshData = prefabSurface.navMeshData; + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + prefabScene.SavePrefab(); + StageManager.instance.GoToMainStage(); + + AssetDatabase.OpenAsset(prefab); + var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurfaceReopened.navMeshData; + Assert.IsNotNull(prefabNavMeshData); + Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); + Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); + Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); + + StageManager.instance.GoToMainStage(); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + Object.DestroyImmediate(instance); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheInitialNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var initialPrefabNavMeshData = prefabSurface.navMeshData; + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; + Assert.IsNotNull(rebuiltPrefabNavMeshData); + Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); + + StageManager.instance.GoToMainStage(); + + AssetDatabase.OpenAsset(prefab); + var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurfaceReopened.navMeshData; + Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); + Assert.AreNotSame(rebuiltPrefabNavMeshData, prefabNavMeshData); + + StageManager.instance.GoToMainStage(); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_HasTheNewNavMeshData() + { + var wasAutoSave = StageManager.instance.autoSave; + StageManager.instance.autoSave = true; + + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var initialPrefabNavMeshData = prefabSurface.navMeshData; + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; + Assert.IsNotNull(rebuiltPrefabNavMeshData); + Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); + EditorSceneManager.MarkSceneDirty(prefabScene.scene); + + StageManager.instance.GoToMainStage(); + + AssetDatabase.OpenAsset(prefab); + var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurfaceReopened.navMeshData; + Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); + Assert.AreSame(rebuiltPrefabNavMeshData, prefabNavMeshData); + + StageManager.instance.GoToMainStage(); + + StageManager.instance.autoSave = wasAutoSave; + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenModifiedInstanceAppliedBack_UpdatesAccordingToInstance() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instanceOne); + instanceOne.name = "PrefabInstanceOne"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instanceTwo); + instanceTwo.name = "PrefabInstanceTwo"; + // reactivate the object to apply the change of position immediately + instanceTwo.SetActive(false); + instanceTwo.transform.position = new Vector3(20, 0, 0); + instanceTwo.SetActive(true); + + var instanceOneSurface = instanceOne.GetComponent(); + Assert.IsNotNull(instanceOneSurface); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + var initialPrefabNavMeshData = instanceOneSurface.navMeshData; +#endif + instanceOneSurface.defaultArea = k_RedArea; + instanceOneSurface.BuildNavMesh(); + CreateNavMeshAsset(instanceOneSurface); + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, instanceTwo.transform.position); + + PrefabUtility.ApplyPrefabInstance(instanceOne); + + TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + prefabScene.SavePrefab(); + StageManager.instance.GoToMainStage(); + + TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); + TestNavMeshExistsAloneAtPosition(k_GrayArea, instanceTwo.transform.position); + + Object.DestroyImmediate(instanceOne); + Object.DestroyImmediate(instanceTwo); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePrefab() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + instanceSurface.defaultArea = k_RedArea; + instanceSurface.BuildNavMesh(); + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + + PrefabUtility.RevertPrefabInstance(instance); + + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + Object.DestroyImmediate(instance); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenDeleted_InstancesMakeCopiesOfData() + { + Assert.IsTrue(false); + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPreviewSceneObjects() + { + var mainScenePlane = GameObject.CreatePrimitive(PrimitiveType.Plane); + mainScenePlane.transform.localScale = new Vector3(100, 1, 100); + + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + var initialPrefabNavMeshData = prefabSurface.navMeshData; +#endif + prefabSurface.collectObjects = CollectObjects.All; + prefabSurface.defaultArea = k_RedArea; + prefabSurface.BuildNavMesh(); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + CreateNavMeshAsset(prefabSurface); + + prefabScene.SavePrefab(); + StageManager.instance.GoToMainStage(); + + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + + TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); + + var posNearby = new Vector3(20,0,0); + Assert.IsFalse(HasNavMeshAtPosition(posNearby, 1 << k_RedArea), + "NavMesh with the prefab's area {0} exists at position {1}, outside the prefab's plane.", + k_RedArea, posNearby); + + Object.DestroyImmediate(instance); + Object.DestroyImmediate(mainScenePlane); + + yield return null; + } + + public static bool HasNavMeshAtPosition(Vector3 pos, int areaMask = NavMesh.AllAreas, int agentTypeId = 0, float range = 0.1f) + { + NavMeshHit hit; + var filter = new NavMeshQueryFilter + { + areaMask = areaMask, + agentTypeID = agentTypeId + }; + return NavMesh.SamplePosition(pos, out hit, range, filter); + } + + // copied from NavMeshSurfaceEditor and adapted to better fit the purpose of the tests + static void CreateNavMeshAsset(NavMeshSurface surface) + { + var targetPath = GetAndEnsureTargetPath(surface); + var date = "" + DateTime.Now.Millisecond.ToString("000") + DateTime.Now.Second.ToString("00") + + DateTime.Now.Minute.ToString("00") + DateTime.Now.Hour.ToString("00") + DateTime.Now.Day.ToString("00"); + //var agentName = NavMesh.GetSettingsNameFromID(surface.agentTypeID); + var navMeshAssetName = "NavMesh-" + surface.name + "-" /*+ agentName + "-" */ + + "A" + surface.defaultArea.ToString("00") + "_" + date + ".asset"; + var combinedAssetPath = Path.Combine(targetPath, navMeshAssetName); + combinedAssetPath = AssetDatabase.GenerateUniqueAssetPath(combinedAssetPath); + + Debug.LogFormat("NavMeshData renamed from {0} to {1}", surface.navMeshData.name, navMeshAssetName); + + AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath); + } + + // copied from NavMeshSurfaceEditor + static string GetAndEnsureTargetPath(NavMeshSurface surface) + { + // Create directory for the asset if it does not exist yet. + var activeScenePath = surface.gameObject.scene.path; + + var targetPath = k_TempFolder; + if (!string.IsNullOrEmpty(activeScenePath)) + targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath)); + if (!Directory.Exists(targetPath)) + Directory.CreateDirectory(targetPath); + return targetPath; + } + + void DeleteNavMeshAsset(NavMeshSurface s) + { + if (s.navMeshData) + { + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(s.navMeshData)); + + // this will require the scene to be saved when closing + //EditorSceneManager.MarkSceneDirty(s.gameObject.scene); + } + } +} diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs.meta b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs.meta new file mode 100644 index 00000000..4c023f4d --- /dev/null +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e570ad5b9d660a4bbeebf9f8b872eb4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 35106d579499acc78583b7cad28ca20a861464e4 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Mon, 16 Apr 2018 12:09:13 +0200 Subject: [PATCH 04/82] Added tests with NavMeshData cleared in instances. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 86 +++++++++++++++++-- 1 file changed, 77 insertions(+), 9 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 8b7f6fcb..4621eb50 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -198,7 +198,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes } [UnityTest] - public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_HasEmptyNavMeshData() + public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmptyNavMeshData() { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; @@ -213,6 +213,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_HasEmptyNavMesh #if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE DeleteNavMeshAsset(prefabSurface); #endif + prefabSurface.RemoveData(); prefabSurface.navMeshData = null; prefabScene.SavePrefab(); @@ -367,12 +368,40 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM yield return null; } - // this would be not much more than NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavMeshData - //[UnityTest] - //public IEnumerator NavMeshSurfacePrefab_WhenInstanceDeleted_PrefabKeepsNavMeshData() - //{ - // yield return null; - //} + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + var initialPrefabNavMeshData = instanceSurface.navMeshData; + + instanceSurface.RemoveData(); + instanceSurface.navMeshData = null; + + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabNavMeshData = prefabSurface.navMeshData; + Assert.IsNotNull(prefabNavMeshData); + Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); + + StageManager.instance.GoToMainStage(); + + Object.DestroyImmediate(instance); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + yield return null; + } [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotChangeInstance() @@ -448,7 +477,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti } [UnityTest] - public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_HasTheNewNavMeshData() + public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNewNavMeshData() { var wasAutoSave = StageManager.instance.autoSave; StageManager.instance.autoSave = true; @@ -486,7 +515,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_HasTheNewNavMesh } [UnityTest] - public IEnumerator NavMeshSurfacePrefab_WhenModifiedInstanceAppliedBack_UpdatesAccordingToInstance() + public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_UpdatedAccordingToInstance() { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; @@ -534,6 +563,45 @@ public IEnumerator NavMeshSurfacePrefab_WhenModifiedInstanceAppliedBack_UpdatesA Object.DestroyImmediate(instanceOne); Object.DestroyImmediate(instanceTwo); +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); +#endif + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmptyData() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + +#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE + var initialPrefabNavMeshData = instanceSurface.navMeshData; +#endif + instanceSurface.RemoveData(); + instanceSurface.navMeshData = null; + + var expectedAreaMask = 1 << k_PrefabDefaultArea; + Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); + + PrefabUtility.ApplyPrefabInstance(instance); + + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + + Assert.IsNull(prefabSurface.navMeshData); + + StageManager.instance.GoToMainStage(); + + Object.DestroyImmediate(instance); + #if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); #endif From 8a8453dac3a05e1806b95af4daa0be2eadaaeaf4 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Mon, 16 Apr 2018 14:02:16 +0200 Subject: [PATCH 05/82] Added tests for checking that a prefab baking a new NavMeshData.asset file replaces the old one only when the prefab gets saved. When the prefab's NavMeshData changes get discarded the .asset file should be deleted. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 4621eb50..ab3dda22 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -296,6 +296,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD Assert.IsNotNull(instanceSurface); instanceSurface.defaultArea = k_RedArea; instanceSurface.BuildNavMesh(); + //CreateNavMeshAsset(instanceSurface); var instanceNavMeshData = instanceSurface.navMeshData; TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -415,6 +416,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh Assert.IsNotNull(instanceSurface); instanceSurface.defaultArea = k_RedArea; instanceSurface.BuildNavMesh(); + //CreateNavMeshAsset(instanceSurface); var instanceNavMeshData = instanceSurface.navMeshData; TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -458,6 +460,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var initialPrefabNavMeshData = prefabSurface.navMeshData; prefabSurface.defaultArea = k_GrayArea; prefabSurface.BuildNavMesh(); + //CreateNavMeshAsset(prefabSurface); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); @@ -476,6 +479,56 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti yield return null; } + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNoLongerExists() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + var assetFolderPath = GetAndEnsureTargetPath(prefabSurface); + var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; + var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + + StageManager.instance.GoToMainStage(); + + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} still exists after discarding the changes.", combinedAssetPath); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var assetFolderPath = GetAndEnsureTargetPath(prefabSurface); + var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; + var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + + prefabSurface.defaultArea = k_GrayArea; + prefabSurface.BuildNavMesh(); + CreateNavMeshAsset(prefabSurface); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + + prefabScene.SavePrefab(); + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} still exists after saving.", combinedAssetPath); + + StageManager.instance.GoToMainStage(); + + yield return null; + } + [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNewNavMeshData() { @@ -621,6 +674,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr Assert.IsNotNull(instanceSurface); instanceSurface.defaultArea = k_RedArea; instanceSurface.BuildNavMesh(); + //CreateNavMeshAsset(instanceSurface); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); From 51e3946a86a0b7eb88d887961a58b3dc815467c1 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Mon, 16 Apr 2018 14:36:08 +0200 Subject: [PATCH 06/82] Added test to check that the prefab's NavMeshData .asset file is deleted when an instance pushes a new asset to the prefab. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 48 ++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index ab3dda22..5fc8f1f2 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -493,11 +493,11 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); StageManager.instance.GoToMainStage(); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} still exists after discarding the changes.", combinedAssetPath); + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", combinedAssetPath); yield return null; } @@ -513,16 +513,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); prefabSurface.defaultArea = k_GrayArea; prefabSurface.BuildNavMesh(); CreateNavMeshAsset(prefabSurface); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} exists.", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); prefabScene.SavePrefab(); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file {0} still exists after saving.", combinedAssetPath); + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after saving. ({0})", combinedAssetPath); StageManager.instance.GoToMainStage(); @@ -567,6 +567,42 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe yield return null; } + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldAssetNoLongerExists() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + + var assetFolderPath = GetAndEnsureTargetPath(instanceSurface); + var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; + var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file exists. ({0})", combinedAssetPath); + + instanceSurface.defaultArea = k_RedArea; + instanceSurface.BuildNavMesh(); + CreateNavMeshAsset(instanceSurface); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), + "Prefab's NavMeshData file exists after instance has changed. ({0})", combinedAssetPath); + + PrefabUtility.ApplyPrefabInstance(instance); + + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), + "Prefab's NavMeshData file still exists after the changes from the instance have been applied back to the prefab. ({0})", + combinedAssetPath); + + Object.DestroyImmediate(instance); + + yield return null; + } + [UnityTest] public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_UpdatedAccordingToInstance() { @@ -727,7 +763,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var posNearby = new Vector3(20,0,0); Assert.IsFalse(HasNavMeshAtPosition(posNearby, 1 << k_RedArea), - "NavMesh with the prefab's area {0} exists at position {1}, outside the prefab's plane.", + "NavMesh with the prefab's area exists at position {1}, outside the prefab's plane. ({0})", k_RedArea, posNearby); Object.DestroyImmediate(instance); From b390b078fb4c4abdf2c3b710d3fd9c64f5211644 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Mon, 16 Apr 2018 14:55:21 +0200 Subject: [PATCH 07/82] Added test to check that instance's NavMeshData .asset file gets deleted when the instance reverts back to prefab structure. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 5fc8f1f2..b8b4b44c 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -493,7 +493,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); StageManager.instance.GoToMainStage(); @@ -513,13 +513,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); prefabSurface.defaultArea = k_GrayArea; prefabSurface.BuildNavMesh(); CreateNavMeshAsset(prefabSurface); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file exists. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", combinedAssetPath); prefabScene.SavePrefab(); Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after saving. ({0})", combinedAssetPath); @@ -583,14 +583,14 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file exists. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file must exist. ({0})", combinedAssetPath); instanceSurface.defaultArea = k_RedArea; instanceSurface.BuildNavMesh(); CreateNavMeshAsset(instanceSurface); Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), - "Prefab's NavMeshData file exists after instance has changed. ({0})", combinedAssetPath); + "Prefab's NavMeshData file exists after the instance has changed. ({0})", combinedAssetPath); PrefabUtility.ApplyPrefabInstance(instance); @@ -723,6 +723,36 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr yield return null; } + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAssetNoLongerExists() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "PrefabInstance"; + TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); + + var instanceSurface = instance.GetComponent(); + Assert.IsNotNull(instanceSurface); + instanceSurface.defaultArea = k_RedArea; + instanceSurface.BuildNavMesh(); + CreateNavMeshAsset(instanceSurface); + + var assetFolderPath = GetAndEnsureTargetPath(instanceSurface); + var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; + var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + + Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Instance's NavMeshData file must exist. ({0})", combinedAssetPath); + + PrefabUtility.RevertPrefabInstance(instance); + + Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", combinedAssetPath); + + Object.DestroyImmediate(instance); + + yield return null; + } + [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenDeleted_InstancesMakeCopiesOfData() { From 72e1ebd2cfc1615d5b96d9650cce5a01f4aa9768 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 18 Apr 2018 14:42:31 +0200 Subject: [PATCH 08/82] Make public the methods in NavMeshSurfaceEditor for baking and clearing the NavMeshData asset file. --- .../Editor/NavMeshSurfaceEditor.cs | 62 +++++++++++++------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index b0104fef..4f8fe28e 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -86,7 +86,7 @@ void OnDisable() NavMeshVisualizationSettings.showNavigation--; } - static string GetAndEnsureTargetPath(NavMeshSurface surface) + public static string GetAndEnsureTargetPath(NavMeshSurface surface) { // Create directory for the asset if it does not exist yet. var activeScenePath = surface.gameObject.scene.path; @@ -120,7 +120,7 @@ static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) return navSurface.navMeshData; } - void ClearSurface(NavMeshSurface navSurface) + static void ClearSurface(NavMeshSurface navSurface) { var assetToDelete = GetNavMeshAssetToDelete(navSurface); navSurface.RemoveData(); @@ -232,7 +232,7 @@ public override void OnInspectorGUI() if (!m_OverrideTileSize.hasMultipleDifferentValues) { if (m_OverrideTileSize.boolValue) - EditorGUILayout.HelpBox("Tile size controls the how local the changes to the world are (rebuild or carve). Small tile size allows more local changes, while potentially generating more data in overal.", MessageType.None); + EditorGUILayout.HelpBox("Tile size controls the how local the changes to the world are (rebuild or carve). Small tile size allows more local changes, while potentially generating more data overall.", MessageType.None); } EditorGUI.indentLevel--; } @@ -292,27 +292,13 @@ public override void OnInspectorGUI() GUILayout.Space(EditorGUIUtility.labelWidth); if (GUILayout.Button("Clear")) { - foreach (NavMeshSurface s in targets) - ClearSurface(s); + ClearSurfaces(targets); SceneView.RepaintAll(); } if (GUILayout.Button("Bake")) { - // Remove first to avoid double registration of the callback - EditorApplication.update -= UpdateAsyncBuildOperations; - EditorApplication.update += UpdateAsyncBuildOperations; - - foreach (NavMeshSurface surf in targets) - { - var oper = new AsyncBakeOperation(); - - oper.bakeData = InitializeBakeData(surf); - oper.bakeOperation = surf.UpdateNavMesh(oper.bakeData); - oper.surface = surf; - - s_BakeOperations.Add(oper); - } + StartBakingSurfaces(targets); } GUILayout.EndHorizontal(); @@ -352,6 +338,24 @@ public override void OnInspectorGUI() } } + public static void StartBakingSurfaces(UnityEngine.Object[] surfaces) + { + // Remove first to avoid double registration of the callback + EditorApplication.update -= UpdateAsyncBuildOperations; + EditorApplication.update += UpdateAsyncBuildOperations; + + foreach (NavMeshSurface surf in surfaces) + { + var oper = new AsyncBakeOperation(); + + oper.bakeData = InitializeBakeData(surf); + oper.bakeOperation = surf.UpdateNavMesh(oper.bakeData); + oper.surface = surf; + + s_BakeOperations.Add(oper); + } + } + static NavMeshData InitializeBakeData(NavMeshSurface surface) { var emptySources = new List(); @@ -386,6 +390,26 @@ static void UpdateAsyncBuildOperations() if (s_BakeOperations.Count == 0) EditorApplication.update -= UpdateAsyncBuildOperations; } + + public static bool IsSurfaceBaking(NavMeshSurface surface) + { + foreach (var oper in s_BakeOperations) + { + if (oper.surface == null || oper.bakeOperation == null) + continue; + + if (oper.surface == surface && !oper.bakeOperation.isDone) + return true; + } + + return false; + } + + public static void ClearSurfaces(UnityEngine.Object[] surfaces) + { + foreach (NavMeshSurface s in surfaces) + ClearSurface(s); + } [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)] static void RenderBoxGizmoSelected(NavMeshSurface navSurface, GizmoType gizmoType) From d3f5904fd1c0103fd2bd55fb578c88d94dcb03d0 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 18 Apr 2018 15:55:17 +0200 Subject: [PATCH 09/82] Report that surface is baking as long as an async bake operation exists. --- Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 4f8fe28e..57588d6c 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -393,12 +393,15 @@ static void UpdateAsyncBuildOperations() public static bool IsSurfaceBaking(NavMeshSurface surface) { + if (surface == null) + return false; + foreach (var oper in s_BakeOperations) { if (oper.surface == null || oper.bakeOperation == null) continue; - if (oper.surface == surface && !oper.bakeOperation.isDone) + if (oper.surface == surface) return true; } From 9fc666dd5d8a025b66bae3f3d7fd18b11255118b Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 18 Apr 2018 16:18:56 +0200 Subject: [PATCH 10/82] Change prefab tests to use the NavMeshSurfaceEditor methods for baking and clearing the NavMesh data. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 221 +++++------------- 1 file changed, 61 insertions(+), 160 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index b8b4b44c..bbdcf8d3 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -1,4 +1,4 @@ -#define NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE +//#define NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS using System; using UnityEngine; @@ -7,6 +7,7 @@ using System.Collections; using System.IO; using UnityEditor; +using UnityEditor.AI; using UnityEditor.SceneManagement; using UnityEngine.AI; using Object = UnityEngine.Object; @@ -30,6 +31,10 @@ public class NavMeshSurfaceInPrefabTests const int k_PrefabDefaultArea = k_YellowArea; +#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS + string m_InitialPrefabNavMeshDataPath; +#endif + [OneTimeSetUp] public void OneTimeSetup() { @@ -60,11 +65,12 @@ public IEnumerator Setup() var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); plane.name = "NavMeshSurfacePrefab" + (++m_TestCounter); var surface = plane.AddComponent(); - surface.defaultArea = k_PrefabDefaultArea; surface.collectObjects = CollectObjects.Children; - surface.BuildNavMesh(); - CreateNavMeshAsset(surface); + yield return BakeNavMeshAsync(() => surface, k_PrefabDefaultArea); +#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS + m_InitialPrefabNavMeshDataPath = AssetDatabase.GetAssetPath(surface.navMeshData); +#endif m_PrefabPath = Path.Combine(k_TempFolder, plane.name + ".prefab"); PrefabUtility.CreatePrefab(m_PrefabPath, plane); @@ -88,7 +94,7 @@ public IEnumerator TearDown() // var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); // if (prefabSurface != null) // { - // DeleteNavMeshAsset(prefabSurface); + // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); // } // } @@ -97,6 +103,9 @@ public IEnumerator TearDown() StageManager.instance.GoToMainStage(); +#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS + AssetDatabase.DeleteAsset(m_InitialPrefabNavMeshDataPath); +#endif yield return null; } @@ -139,11 +148,9 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; - prefabSurface.defaultArea = k_RedArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); - Assert.AreNotSame(prefabSurface.navMeshData, initialPrefabNavMeshData); + Assert.AreNotSame(initialPrefabNavMeshData, prefabSurface.navMeshData); prefabScene.SavePrefab(); StageManager.instance.GoToMainStage(); @@ -159,7 +166,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); @@ -169,7 +176,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone"; + instanceClone.name = "PrefabInstanceClone" + m_TestCounter; var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsTrue(HasNavMeshAtPosition(clonePosition, expectedAreaMask)); @@ -203,18 +210,14 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface.navMeshData); AssetDatabase.OpenAsset(prefab); var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - DeleteNavMeshAsset(prefabSurface); -#endif - prefabSurface.RemoveData(); - prefabSurface.navMeshData = null; + NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); prefabScene.SavePrefab(); StageManager.instance.GoToMainStage(); @@ -241,26 +244,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - var initialNavMeshData = prefabSurface.navMeshData; -#endif - prefabSurface.defaultArea = k_RedArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); prefabScene.SavePrefab(); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialNavMeshData)); -#endif StageManager.instance.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); var instanceOneSurface = instanceOne.GetComponent(); - instanceOneSurface.defaultArea = k_BrownArea; - instanceOneSurface.BuildNavMesh(); - CreateNavMeshAsset(instanceOneSurface); + yield return BakeNavMeshAsync(() => instanceOneSurface, k_BrownArea); var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceTwo); @@ -285,18 +278,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone"; + instanceClone.name = "PrefabInstanceClone" + m_TestCounter; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - instanceSurface.defaultArea = k_RedArea; - instanceSurface.BuildNavMesh(); - //CreateNavMeshAsset(instanceSurface); + yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); var instanceNavMeshData = instanceSurface.navMeshData; TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -313,8 +304,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; - Assert.AreNotSame(prefabNavMeshData, instanceNavMeshData); - Assert.AreNotSame(instanceCloneNavMeshData, instanceNavMeshData); + Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); + Assert.AreNotSame(instanceNavMeshData, instanceCloneNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); StageManager.instance.GoToMainStage(); @@ -331,17 +322,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone"; + instanceClone.name = "PrefabInstanceClone" + m_TestCounter; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - instanceSurface.RemoveData(); - instanceSurface.navMeshData = null; + NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -375,14 +365,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); var initialPrefabNavMeshData = instanceSurface.navMeshData; - - instanceSurface.RemoveData(); - instanceSurface.navMeshData = null; + NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -398,9 +386,6 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa Object.DestroyImmediate(instance); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif yield return null; } @@ -410,13 +395,11 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - instanceSurface.defaultArea = k_RedArea; - instanceSurface.BuildNavMesh(); - //CreateNavMeshAsset(instanceSurface); + yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); var instanceNavMeshData = instanceSurface.navMeshData; TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -425,9 +408,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabScene.SavePrefab(); StageManager.instance.GoToMainStage(); @@ -442,9 +423,6 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh StageManager.instance.GoToMainStage(); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif Object.DestroyImmediate(instance); yield return null; @@ -458,9 +436,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - //CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); @@ -486,10 +462,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo AssetDatabase.OpenAsset(prefab); var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); - var assetFolderPath = GetAndEnsureTargetPath(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); + var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -509,15 +483,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving AssetDatabase.OpenAsset(prefab); var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); - var assetFolderPath = GetAndEnsureTargetPath(prefabSurface); + var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", combinedAssetPath); @@ -540,9 +512,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); @@ -561,9 +531,6 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe StageManager.instance.autoSave = wasAutoSave; -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif yield return null; } @@ -573,21 +540,19 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - var assetFolderPath = GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file must exist. ({0})", combinedAssetPath); - instanceSurface.defaultArea = k_RedArea; - instanceSurface.BuildNavMesh(); - CreateNavMeshAsset(instanceSurface); + yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file exists after the instance has changed. ({0})", combinedAssetPath); @@ -609,12 +574,12 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceOne); - instanceOne.name = "PrefabInstanceOne"; + instanceOne.name = "PrefabInstanceOne" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceTwo); - instanceTwo.name = "PrefabInstanceTwo"; + instanceTwo.name = "PrefabInstanceTwo" + m_TestCounter; // reactivate the object to apply the change of position immediately instanceTwo.SetActive(false); instanceTwo.transform.position = new Vector3(20, 0, 0); @@ -623,12 +588,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated var instanceOneSurface = instanceOne.GetComponent(); Assert.IsNotNull(instanceOneSurface); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - var initialPrefabNavMeshData = instanceOneSurface.navMeshData; -#endif - instanceOneSurface.defaultArea = k_RedArea; - instanceOneSurface.BuildNavMesh(); - CreateNavMeshAsset(instanceOneSurface); + yield return BakeNavMeshAsync(() => instanceOneSurface, k_RedArea); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, instanceTwo.transform.position); @@ -640,9 +600,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated AssetDatabase.OpenAsset(prefab); var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); - prefabSurface.defaultArea = k_GrayArea; - prefabSurface.BuildNavMesh(); - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabScene.SavePrefab(); StageManager.instance.GoToMainStage(); @@ -652,9 +610,6 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated Object.DestroyImmediate(instanceOne); Object.DestroyImmediate(instanceTwo); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif yield return null; } @@ -664,17 +619,13 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - var initialPrefabNavMeshData = instanceSurface.navMeshData; -#endif - instanceSurface.RemoveData(); - instanceSurface.navMeshData = null; + NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -691,9 +642,6 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty Object.DestroyImmediate(instance); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif yield return null; } @@ -703,14 +651,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - instanceSurface.defaultArea = k_RedArea; - instanceSurface.BuildNavMesh(); - //CreateNavMeshAsset(instanceSurface); + yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -729,16 +675,14 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance"; + instance.name = "PrefabInstance" + m_TestCounter; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - instanceSurface.defaultArea = k_RedArea; - instanceSurface.BuildNavMesh(); - CreateNavMeshAsset(instanceSurface); + yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - var assetFolderPath = GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -771,17 +715,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var prefabScene = StageManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - var initialPrefabNavMeshData = prefabSurface.navMeshData; -#endif prefabSurface.collectObjects = CollectObjects.All; - prefabSurface.defaultArea = k_RedArea; - prefabSurface.BuildNavMesh(); - -#if !NAVMESHSURFACE_PREFAB_CLEANUP_ALL_ONCE - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(initialPrefabNavMeshData)); -#endif - CreateNavMeshAsset(prefabSurface); + yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); prefabScene.SavePrefab(); StageManager.instance.GoToMainStage(); @@ -813,45 +748,11 @@ public static bool HasNavMeshAtPosition(Vector3 pos, int areaMask = NavMesh.AllA return NavMesh.SamplePosition(pos, out hit, range, filter); } - // copied from NavMeshSurfaceEditor and adapted to better fit the purpose of the tests - static void CreateNavMeshAsset(NavMeshSurface surface) - { - var targetPath = GetAndEnsureTargetPath(surface); - var date = "" + DateTime.Now.Millisecond.ToString("000") + DateTime.Now.Second.ToString("00") + - DateTime.Now.Minute.ToString("00") + DateTime.Now.Hour.ToString("00") + DateTime.Now.Day.ToString("00"); - //var agentName = NavMesh.GetSettingsNameFromID(surface.agentTypeID); - var navMeshAssetName = "NavMesh-" + surface.name + "-" /*+ agentName + "-" */ + - "A" + surface.defaultArea.ToString("00") + "_" + date + ".asset"; - var combinedAssetPath = Path.Combine(targetPath, navMeshAssetName); - combinedAssetPath = AssetDatabase.GenerateUniqueAssetPath(combinedAssetPath); - - Debug.LogFormat("NavMeshData renamed from {0} to {1}", surface.navMeshData.name, navMeshAssetName); - - AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath); - } - - // copied from NavMeshSurfaceEditor - static string GetAndEnsureTargetPath(NavMeshSurface surface) - { - // Create directory for the asset if it does not exist yet. - var activeScenePath = surface.gameObject.scene.path; - - var targetPath = k_TempFolder; - if (!string.IsNullOrEmpty(activeScenePath)) - targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath)); - if (!Directory.Exists(targetPath)) - Directory.CreateDirectory(targetPath); - return targetPath; - } - - void DeleteNavMeshAsset(NavMeshSurface s) + static IEnumerator BakeNavMeshAsync(Func getSurface, int defaultArea) { - if (s.navMeshData) - { - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(s.navMeshData)); - - // this will require the scene to be saved when closing - //EditorSceneManager.MarkSceneDirty(s.gameObject.scene); - } + var surface = getSurface(); + surface.defaultArea = defaultArea; + NavMeshSurfaceEditor.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshSurfaceEditor.IsSurfaceBaking(surface)); } } From 2473af7af3d32418549e5abf90d39082f4a9984e Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 19 Apr 2018 14:37:08 +0200 Subject: [PATCH 11/82] Create a temporary scene for running the tests, in order to better contain the created game objects and assets. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index bbdcf8d3..2595f5cf 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -10,14 +10,17 @@ using UnityEditor.AI; using UnityEditor.SceneManagement; using UnityEngine.AI; +using UnityEngine.SceneManagement; using Object = UnityEngine.Object; [Category("PrefabsWithNavMeshComponents")] public class NavMeshSurfaceInPrefabTests { const string k_AutoSaveKey = "AutoSave"; - const string k_TempFolder = "Assets/Tests/Editor/TempPrefabs"; - string m_PrefabPath = ""; + string m_TempFolder = "Assets/Tests/Editor/TempPrefabs"; + string m_PrefabPath; + string m_PreviousScenePath; + string m_TempScenePath; int m_TestCounter; const int k_BlueArea = 0; @@ -38,15 +41,24 @@ public class NavMeshSurfaceInPrefabTests [OneTimeSetUp] public void OneTimeSetup() { - //if (System.IO.Directory.Exists(k_TempFolder)) - AssetDatabase.DeleteAsset(k_TempFolder); + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); - //if (!System.IO.Directory.Exists(k_TempFolder)) - AssetDatabase.CreateFolder("Assets/Tests/Editor", "TempPrefabs"); + //if (!System.IO.Directory.Exists(m_TempFolder)) + //{ + var folderGUID = AssetDatabase.CreateFolder("Assets/Tests/Editor", "TempPrefabs"); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); + //} SessionState.SetBool(k_AutoSaveKey, StageManager.instance.autoSave); StageManager.instance.autoSave = false; StageManager.instance.GoToMainStage(); + + m_PreviousScenePath = SceneManager.GetActiveScene().path; + m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshSurfacePrefabTestsScene.unity"); + var tempScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + EditorSceneManager.SaveScene(tempScene, m_TempScenePath); + EditorSceneManager.OpenScene(m_TempScenePath); } [OneTimeTearDown] @@ -55,8 +67,16 @@ public void OneTimeTearDown() StageManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageManager.instance.autoSave); StageManager.instance.GoToMainStage(); - if (System.IO.Directory.Exists(k_TempFolder)) - AssetDatabase.DeleteAsset(k_TempFolder); + EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + + if (m_PreviousScenePath == "") + { + EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + } + + //File.Delete(m_TempScenePath); + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); } [UnitySetUp] @@ -71,7 +91,7 @@ public IEnumerator Setup() #if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS m_InitialPrefabNavMeshDataPath = AssetDatabase.GetAssetPath(surface.navMeshData); #endif - m_PrefabPath = Path.Combine(k_TempFolder, plane.name + ".prefab"); + m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); PrefabUtility.CreatePrefab(m_PrefabPath, plane); Object.DestroyImmediate(plane); From 1a4bbfd76ac703b0250787b1746c1911fa659e4c Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 19 Apr 2018 17:28:28 +0200 Subject: [PATCH 12/82] Stage manager got renamed in the latest API. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 92 +++++++++---------- ProjectSettings/ProjectVersion.txt | 2 +- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 2595f5cf..d1e17a6f 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -50,9 +50,9 @@ public void OneTimeSetup() m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); //} - SessionState.SetBool(k_AutoSaveKey, StageManager.instance.autoSave); - StageManager.instance.autoSave = false; - StageManager.instance.GoToMainStage(); + SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageNavigationManager.instance.autoSave = false; + StageNavigationManager.instance.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshSurfacePrefabTestsScene.unity"); @@ -64,8 +64,8 @@ public void OneTimeSetup() [OneTimeTearDown] public void OneTimeTearDown() { - StageManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageManager.instance.autoSave); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageNavigationManager.instance.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); @@ -108,7 +108,7 @@ public IEnumerator TearDown() //{ // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); // AssetDatabase.OpenAsset(prefab); - // var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + // var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); // if (prefabScene != null && prefabScene.prefabInstanceRoot != null) // { // var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); @@ -121,7 +121,7 @@ public IEnumerator TearDown() // AssetDatabase.DeleteAsset(m_PrefabPath); //} - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); #if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS AssetDatabase.DeleteAsset(m_InitialPrefabNavMeshDataPath); @@ -162,7 +162,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); Assert.IsNotNull(prefabScene); Assert.IsNotNull(prefabScene.prefabInstanceRoot); @@ -173,7 +173,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() Assert.AreNotSame(initialPrefabNavMeshData, prefabSurface.navMeshData); prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, NavMesh.AllAreas, 0, 1000.0f)); @@ -207,7 +207,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); Assert.IsNotNull(prefabScene); Assert.IsNotNull(prefabScene.prefabInstanceRoot); @@ -216,7 +216,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes Assert.AreSame(prefabNavMeshData, instanceNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -235,12 +235,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt Assert.IsNotNull(instanceSurface.navMeshData); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Assert.IsNull(instanceSurface.navMeshData); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -260,7 +260,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); @@ -268,7 +268,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -321,14 +321,14 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(instanceNavMeshData, instanceCloneNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -364,14 +364,14 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(prefabNavMeshData, instanceSurface.navMeshData); Assert.AreNotSame(instanceCloneNavMeshData, instanceSurface.navMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -396,13 +396,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(prefabNavMeshData); Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); @@ -425,15 +425,15 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.IsNotNull(prefabNavMeshData); @@ -441,7 +441,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); @@ -453,7 +453,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); @@ -461,16 +461,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreNotSame(rebuiltPrefabNavMeshData, prefabNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); yield return null; } @@ -480,7 +480,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); @@ -489,7 +489,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", combinedAssetPath); @@ -501,7 +501,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; @@ -516,7 +516,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving prefabScene.SavePrefab(); Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after saving. ({0})", combinedAssetPath); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); yield return null; } @@ -524,12 +524,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNewNavMeshData() { - var wasAutoSave = StageManager.instance.autoSave; - StageManager.instance.autoSave = true; + var wasAutoSave = StageNavigationManager.instance.autoSave; + StageNavigationManager.instance.autoSave = true; var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); @@ -538,18 +538,18 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); EditorSceneManager.MarkSceneDirty(prefabScene.scene); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageManager.instance.GetCurrentPrefabScene(); + var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(rebuiltPrefabNavMeshData, prefabNavMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); - StageManager.instance.autoSave = wasAutoSave; + StageNavigationManager.instance.autoSave = wasAutoSave; yield return null; } @@ -618,11 +618,11 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_GrayArea, instanceTwo.transform.position); @@ -653,12 +653,12 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty PrefabUtility.ApplyPrefabInstance(instance); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); Assert.IsNull(prefabSurface.navMeshData); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); Object.DestroyImmediate(instance); @@ -732,14 +732,14 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageManager.instance.GetCurrentPrefabScene(); + var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); prefabSurface.collectObjects = CollectObjects.All; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); prefabScene.SavePrefab(); - StageManager.instance.GoToMainStage(); + StageNavigationManager.instance.GoToMainStage(); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 99d48fd6..bdced9f2 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 2018.2.0a8 +m_EditorVersion: 2018.2.0b1 From c6d661a1c8f6c85774b44e33c5ec912825af293e Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 20 Apr 2018 19:04:00 +0200 Subject: [PATCH 13/82] Prefab scene got replaced by Stage in the latest API. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index d1e17a6f..2093ff67 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -108,10 +108,10 @@ public IEnumerator TearDown() //{ // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); // AssetDatabase.OpenAsset(prefab); - // var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - // if (prefabScene != null && prefabScene.prefabInstanceRoot != null) + // var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + // if (prefabStage != null && prefabStage.prefabInstanceRoot != null) // { - // var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + // var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); // if (prefabSurface != null) // { // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); @@ -162,17 +162,17 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - Assert.IsNotNull(prefabScene); - Assert.IsNotNull(prefabScene.prefabInstanceRoot); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + Assert.IsNotNull(prefabStage); + Assert.IsNotNull(prefabStage.prefabInstanceRoot); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); Assert.AreNotSame(initialPrefabNavMeshData, prefabSurface.navMeshData); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, NavMesh.AllAreas, 0, 1000.0f)); @@ -207,11 +207,11 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - Assert.IsNotNull(prefabScene); - Assert.IsNotNull(prefabScene.prefabInstanceRoot); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + Assert.IsNotNull(prefabStage); + Assert.IsNotNull(prefabStage.prefabInstanceRoot); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreSame(prefabNavMeshData, instanceNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); @@ -235,10 +235,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt Assert.IsNotNull(instanceSurface.navMeshData); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); Assert.IsNull(instanceSurface.navMeshData); @@ -260,13 +260,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); @@ -321,8 +321,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(instanceNavMeshData, instanceCloneNavMeshData); @@ -364,8 +364,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(prefabNavMeshData, instanceSurface.navMeshData); Assert.AreNotSame(instanceCloneNavMeshData, instanceSurface.navMeshData); @@ -396,8 +396,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(prefabNavMeshData); Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); @@ -425,16 +425,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.IsNotNull(prefabNavMeshData); Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); @@ -453,8 +453,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; @@ -464,8 +464,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreNotSame(rebuiltPrefabNavMeshData, prefabNavMeshData); @@ -480,8 +480,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; @@ -501,8 +501,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -513,7 +513,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", combinedAssetPath); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after saving. ({0})", combinedAssetPath); StageNavigationManager.instance.GoToMainStage(); @@ -529,20 +529,20 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); - EditorSceneManager.MarkSceneDirty(prefabScene.scene); + EditorSceneManager.MarkSceneDirty(prefabStage.scene); StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabSceneReopened = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurfaceReopened = prefabSceneReopened.prefabInstanceRoot.GetComponent(); + var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(rebuiltPrefabNavMeshData, prefabNavMeshData); @@ -618,10 +618,10 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); @@ -653,8 +653,8 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty PrefabUtility.ApplyPrefabInstance(instance); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); Assert.IsNull(prefabSurface.navMeshData); @@ -732,13 +732,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabScene = StageNavigationManager.instance.GetCurrentPrefabScene(); - var prefabSurface = prefabScene.prefabInstanceRoot.GetComponent(); + var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); prefabSurface.collectObjects = CollectObjects.All; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); - prefabScene.SavePrefab(); + prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; From 0ab73bc2ff9bb4b8d4fc057da41c68a6700fb128 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 20 Apr 2018 20:39:14 +0200 Subject: [PATCH 14/82] NavMeshSurfaces in prefabs save the NavMeshData .asset file in the prefab's folder. --- .../Editor/NavMeshSurfaceEditor.cs | 13 +++++++++++++ Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 57588d6c..72982303 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -93,7 +93,20 @@ public static string GetAndEnsureTargetPath(NavMeshSurface surface) var targetPath = "Assets"; if (!string.IsNullOrEmpty(activeScenePath)) + { targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath)); + } + else + { + var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject); + var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefab(surface.gameObject); + if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.prefabAssetPath)) + { + var prefabDirectoryName = Path.GetDirectoryName(prefabStage.prefabAssetPath); + if (!string.IsNullOrEmpty(prefabDirectoryName)) + targetPath = prefabDirectoryName; + } + } if (!Directory.Exists(targetPath)) Directory.CreateDirectory(targetPath); return targetPath; diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 2093ff67..923a10f8 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -69,7 +69,7 @@ public void OneTimeTearDown() EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); - if (m_PreviousScenePath == "") + if (string.IsNullOrEmpty(m_PreviousScenePath)) { EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); } From d0d9614319fe83ae757449d3cd214fe7b7c43e61 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 20 Apr 2018 20:59:17 +0200 Subject: [PATCH 15/82] Disable tests that verify the automatic deletion of the NavMeshData .asset file. --- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 923a10f8..bafbf223 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -475,6 +475,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti yield return null; } + [Ignore("Deletion of the old asset is expected to be done manually for the time being.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNoLongerExists() { @@ -503,18 +504,16 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); - var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); - var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; - var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + var initialAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "NavMeshData file must exist. ({0})", initialAssetPath); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", initialAssetPath); prefabStage.SavePrefab(); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after saving. ({0})", combinedAssetPath); + Assert.IsFalse(System.IO.File.Exists(initialAssetPath), "NavMeshData file still exists after saving. ({0})", initialAssetPath); StageNavigationManager.instance.GoToMainStage(); @@ -554,6 +553,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe yield return null; } + [Ignore("Deletion of the old asset is expected to be done manually for the time being.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldAssetNoLongerExists() { @@ -689,6 +689,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr yield return null; } + [Ignore("Deletion of the old asset is expected to be done manually for the time being.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAssetNoLongerExists() { @@ -717,6 +718,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset yield return null; } + [Ignore("Undefined expected behaviour for the time being.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenDeleted_InstancesMakeCopiesOfData() { From 7b4648139bbc22546fab7fe8cf3cf3c40c35adc5 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 20 Apr 2018 21:03:55 +0200 Subject: [PATCH 16/82] Update project to the latest build. --- .../Prefabs/DungeonTiles/Tile0.prefab | Bin 16192 -> 16508 bytes .../Prefabs/DungeonTiles/Tile1.prefab | Bin 17032 -> 15459 bytes .../Prefabs/DungeonTiles/Tile10.prefab | Bin 17888 -> 14395 bytes .../Prefabs/DungeonTiles/Tile11.prefab | Bin 18728 -> 13345 bytes .../Prefabs/DungeonTiles/Tile12.prefab | Bin 17888 -> 14412 bytes .../Prefabs/DungeonTiles/Tile13.prefab | Bin 18728 -> 13362 bytes .../Prefabs/DungeonTiles/Tile14.prefab | Bin 18696 -> 13346 bytes .../Prefabs/DungeonTiles/Tile15.prefab | Bin 19504 -> 12296 bytes .../Prefabs/DungeonTiles/Tile2.prefab | Bin 17064 -> 15443 bytes .../Prefabs/DungeonTiles/Tile3.prefab | Bin 17888 -> 14393 bytes .../Prefabs/DungeonTiles/Tile4.prefab | Bin 17064 -> 15460 bytes .../Prefabs/DungeonTiles/Tile5.prefab | Bin 17872 -> 14410 bytes .../Prefabs/DungeonTiles/Tile6.prefab | Bin 17888 -> 14394 bytes .../Prefabs/DungeonTiles/Tile7.prefab | Bin 18728 -> 13344 bytes .../Prefabs/DungeonTiles/Tile8.prefab | Bin 17064 -> 15459 bytes .../Prefabs/DungeonTiles/Tile9.prefab | Bin 17872 -> 14409 bytes 16 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab index 24c4abd7644a7385d08f42e2ba7725140b51c2b7..8c31521dcbd7649ed5ca26c475549bc41a75c45e 100644 GIT binary patch literal 16508 zcmeHOTT|n>5`O1bcprA2fU+!Gws{L-E;$7=6k(`3b!v-}Z6)}uFO=;tuv`1zw_BG) zF-ewU2Zk_sYGN$Qx^#bPeUiF={qNx9*dhC5=hySWN9UK>FHXm&2eT^g?r653*5$6} z5^}J!x3`CHiSv#S76#GIM_!6A$^S*#9qc$xd8z*XlxN~Y!Kdwk05{>xT0IWO`*M0O#XHm|D# zhw17|s9RLBk$VpGM?Wq~_dSmV5jJ7~t@@9Jhr z5uLj_5+#E-PhTMS9y^&0@U%p-=uCn z@a_sVI@gXLdqE)aQeK|bb@!#o@V(OTF*g1EtPsthniit{lmj+peM>#~%jk$w=bc92 z4l4UYUUX2Jtoeryxd*5T+iS^%xSs3nI@4L6fsT5Y=soW`-Q6{40&IgeJuGnE>7llB zSl-+!%F7{dyYUsz>TfXZpwwX8iBy2G>!lvu zRlLm8FKJrLG9gVNWe}AzjqP3<$xEXc`!m_luE+ zbyUd@N`7th1am$>{6>7emw@&<@P_i<#B z#$65~Fg1(?FXt>|EKq48Q}dz%JN6tJN|j#nDlccHtV<0oU#1UcUH$dqgx?M6uEwh(C;b3MXd z5e*Be7fbo9qhTS9s3cLVGq8XJLAap=k1{tPlBboIOQdN*!y>7P=ci$^^IJi~BW`FWV^{C4m#gxz=HVUl}U zn+SHP)_xeQdzN;@^bXgf_ruh}>v23xLU2oX*g{WF!NcTO+ZG;XiQ+}_Flm>zhKDVr z`NqTEc-T+B9~ODUdrilZe#FRzQ%6eOh-@NiaHtvRbEwrDX28Q}Wn03) zY*D;S28I@CTNs!n&DY1kJR(mW&6yn%>-BVE z9V@<_N&Y-%l2OEh*R&Tl_vBg4pa}7CkPzZg0{O*nGZ*uU+e8J9S(w-l{4Z;Tzc#CtyC%VBc4}J+3?HU6MTGkI5j{64tZH;ORfi zT|TDrH*yml-l3i`k;0WErZAb!OB5VPCMF zRMjhgy$EjjzjyWf-Fqz`?Xuu+V!ko;;1VR%AL1Rw!1P@w|I-aLj0XarIE2*5zt?IU zGsoA)RXyv$ub^eux-lt0UsK}i}d zgSm_n@fnr9Djm~|lI{HK(&y!@0s~qFW`V#|X!^Nmnt8LhKLiZMGT>LnG9Vxxcs<54 zFxcy0fnY)Eu`~=AA!L$>P{8I$m}VRUTsDJYZQJ@nG0)}$0|Ik5>2P0I29wyg3=ac? zZ2_<(quhSFsRi$SkjQr{!JxlFKs=>oz-o+Tcw#X45kzM4P{5H+NJ$zK#uFk);wAyO zX)+Z^ty#q345DAhqQmed$tE^TLl8Arb?4xjV?vx9M<$)|ET3U$mJFoQiJt_<+o>p7 zoir|Li~#i!jXG&qP$=_ zfN#(UZYnH!HRHul6orcZQstzJ=Y0Z_fGgA$V0NTbcJ^-m>;)(_Xmpy+8d#s67CaRt zhM~)_JIBdHGMk!-9Ciimka^V?2$BOC=@?^`gcCJzIFtBgGQpJNy!w5Ss6y-yA;d4! q`hob!_2HmWT9@x{JK44s@uEmN9vI@YD##l4T`?eA?JW(K0r58@08wKA literal 16192 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab index 6d23b0f31d1327bdd448ff8c663c10ef47fc999e..aa32896a7d4d95f38af0e5a887c0a0aa3b63f84a 100644 GIT binary patch literal 14395 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 L&z5?6Nl1SIgP5{b literal 17888 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab index 39ff14c865805ee38afe8da3e31b1745ddd53717..b0ab49b04a5bd0baae73d264e758a9acaab95c2d 100644 GIT binary patch literal 13345 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 WMMgY+WOmuQQ#eSq5%o;g0r4O44P%i2 literal 18728 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 TZ0U1aX?OF;E;V1See}NphkUD( diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab index ba6bdad565d4a735321d882c82937e18ceab8a13..0784e3c0ed811a88fb1eb950db2741d79ffaa251 100644 GIT binary patch literal 14412 zcmeHOTT|P}5`O1bXdgCDK+WhbzZnRLPeDRq!l|vTQ`ATr+d8WYCCLPKYybP{o{Ke> zm!gvg7K}$dcD1`OAR@Xj{GL*mz(pO~rj8qUo-4b1#vXXBhxq}dF|ux}x@Ea5 zTE1fQXUp=e&8Jfz64wZX04aGDY&ft3vtVmzT zU^`v}Q&p;Q4N;}d%<`(Lg(bW^MvKAk1V#(9Q!?C!(F)Y|Er4bPqXGvzt46Tx0U%<8 z$YtQMt3cZmD5)0MXCtzlN>4>($Fbfh!8F{0kXzFZv4id8dtlu$@i=`YL@LCRrkkLo`YMrE202YMQ6|uhd`U+X3|{M8Ter< zr)_QF8gL4K%z zXK?W40(Z$14!&qF_2i*sMV5R_l6;wR;i=-hKd*2hyoU9#s#i6fW%EUQQCBhl)Uf#~ z?4n1Bx8 z*DKLa=4Dm$55N{!-ketT@d8|<6W&U>>wZswGy$#E-|8!C&-b3 zrsn2}kuwU2qEQTV$V0pj{Tv81>UQNk(uxgJAVH!mz5fR9+wpsxFcM)Q`5KLvSO<33YRrR@m+FR0ZTi> zWjks1mf2UpWhrq8oO2BC^USvI^B@&B$mkCy`_Eyrk>~p1D`K*drW(UelxDIHoZN+x zZ%3MhZ8BMTcpHk1g_rlJ#5i`sqY@VM6^}}}NaA1sj?^R)Q4~L%=Ne@P4+_-L?SWQR z&%^o>w|(l_t=xEes&}4MXG)#J( z&~wDR9fo7y3&PMB)M+?_?Eq<(taxy{5lQdgwc9B6zjgzn(d-PE9g44c%Gs@ia|#65 zsMH|6^7xi2$_o@&W_$JluGH{TVObsEq6O{-=@sZ8MfEL6ub65(LV8V6e3ztGz|yXe zUPGF_1^x%=g^Bx4)e>;R5{`D?B&h@UY zXEN)8-&B{;?O@=lE{}HX#-NK0DLo|4 zpplsAYf6X8bUkb7T1gwmpjvkgqtN5j7=OBZV5YCws2fpun$t-r0 z#J1ho54T2{*AE9hzT-M-xkRvT&Tf^(}^EvGfX+l%HO&~`N`Z7gpsC7KM;kxJ?I!a37_EHx1w(Y XQOWrFk=sFooAdfJCakCTZO#7xh>p2< literal 17888 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab index 9c8e841c0d0ea2638ff42685d1b1be98517cd3b3..1b8e3e28c7f1b6af88505b2ee0f4c2810043f214 100644 GIT binary patch literal 13362 zcmeHOTW{Mq7JkpK&^%0^VuKWQ^_$})trtlf#Az0b#Uh|6%F&K4fh4ENEat!OAt}nV zEN9Y8o2|1IV9Pq<{TzPh!sB26F+D%C@E9NbdNqA-{j&PSYUpyZD$?eW#A8JNuL5?h#Py4uT-3hTD$RP~BCxkcz2V#uF1w7aFZU2cDY+_^Vw6i>;kG#^W^AQ$t zVkKEwR&uykbh&6MSgDEixd28ic`WI3CZ^P1u#fcqoY%J-EiM|`r0gV4o3h$q#Jrxe zCcTI5ux6%Xy;GAvxTv?EB%J1Lh z_ZOI^QTC#&(;a1vQVVER$Q?B2sOHA*p#=>(s?h8<&Ekp!C;s^_$(B>v+zMuPjB!HZ zxSlF~S(eSGDqb^Nj{0Pk@oHKuGhTm4K`do&8-xEtvxgAtT`PPCg3qUE)|wOpk!u%~zN-t(c=Jl+8xV8gVic>vRF$@>N1oRS+Xr4+tFMq6>80oI8Ig%A&m zl?`ImB9auVOJ2ZQ?#pU!EKz%xc{N|D~4mj7N9zPZ|PuVBNvQ^9_ z3W~z#rGSNN&|+oPwQ!a$Z<~v%jQHo8F1xaqJjtLSlplI077>73g7G=6e*@I8Lnrin zJ9Oo^&RaRC#SR{=F~i1E{`Kx4G>%*^A_Un!aaa%s+@(11!VoAt06~>xxrD)r-lC*+lSw(6W3PlX!q#kGGN}!HX&PHW{R@)LPCpsU6EV1>1P6l%f)MF>@FwQJhJOG+*ViFSWTGNuREo z^7HjMeK=0*)+Rw?#mw%Ngz||MgtCV2|AJPa*3sY=NR4t>NVPFlZu9uouN-ch^c?B{B&dioz z9h{d%dBkt&eG1;nk8EwN8Q4>b3h1_6u?4HrI}_wFb~jXy$9d$&4B1{1Cr;!9LBxE@ z5hekRd>m@kLljHZev{~>dYomnuIDjWAZd~cBSfL-5(rmd(HUUZ0IFY2fmC_%=2vbCf-*+)6fwk-^oj9#H6##62 zE!gxSdP@$kc2b7@S-mH~?{z$|I(!Wi+n(zcc<@*$(bvaX>1*u;)=B{~aPZ}>D<(ao zUKp_w`JRcbuq6%K(~Ny|c8Y@>A4!+jENN)ybxGH@w@X5}#BN1q%Rz2!pug-JZ-Dn& zQ1=GB4T<Tq1cO~Fown93{mcJjJQKx&tnk;G?d@)b>Q8Gm<%h{CINCn2YZeU z+QY?OYl@wMQ(k^q2a+}+6m*I6mh4qyiwwmS2?;{?sgR)OlF(I4Hw?ly@dUIn{tsAcTCMxzGus<0t$!-n82s$wq=94cewYb{$9IFu5& zAAv)IP2VGMD7V_41P;xm_#p#_5|;KQaA>S%PtCr8z#&EifsZ{LR8OR5xBk-VUk9P& zG11Sk;s06K&<}`jzadZ7@IQvkFzv}=-y_H&!4qe&Dr~6YzOQdl$$9LBMI|N3Fn)$y zSqS00ByKo*^}wNuTzsv0wc&fNMQd+-PlJU$rT8;&D8rWDEN~bGVeppVwu|fx`>Y+@ zdc=2dV5_Veh)-j=uhBQIi>1!2B25jd=QrjZ8*6x>aHW* zMsh%VN;A@t29a4~IJDpLm_{krzlOG*WbF;w8XWwIw%_fT2BMN8tEC^BJZR&W$F!k8 z#8I9)GlNm(kRS!D79k@7PX%j{uSq19InOLspK#bRMRO$#qN$=|XK3zZ_p957t z>jHNBL*L~ilivY~+RQBVEQpYfMxsbJCW|4497N>>0ca+EkbXuN`ZIc0zt@hY%bvv8 z#W;!TSAK(zK}dXhm!9Y5P&W&iZNYD>>*#*O;i#@J?qV4r`9R*`_M8hiEDmTsP{@Xp zzjtz66qLm*H?cz;*&@8|qbP7g!g=C_33fvt&Sr(pIue;nJB2|HOv{9R?wGG9r6;Tl zXd%#dO^5roFgQDfL021MIzwboNKE<$)1fil&IVmGX-gQ|-W@|I^gQ*v^#INLbA&;c z7wv@bc?DsJ?AZ0V4H;ox=p_llu=&Cexg>^s$k-Rz!A}drmJsMk^cO`x>-Sm+^j*^X z$e;`NkwLArKn8tjCW_|(gkXp+Xqw4p`Cas`ogrZmsNfkwpgYv_Tn|mZS>K-{3}$_e z3_>8DdA$S~2t%Ax68WCzxh#ns#%$Y(Jl|zu?1aLaep(oIj;+5a`dL@dLZI)O4)--O zXks53o+k_@0*ID0bNh7Ni@5iNM7|pohPIXvi0_FEq8p72-&q(qVLXKYC4joMeLIOf z*lmnpW=9;7wa2NwX}?Bbhm-h>+sEm7H#@*rzaP##WU` z4az9vIV^|B2NEx09<7#Ik>@uX|F2MUf$UaTqxSCsiX;>@*l?QoDMRp6V)GM xjvzNTZutYL&Cv0VOl~oj{O07Lkz+HwIWyyKC^835V*mdUgI=N8&U8~C{tKrGYjXeq literal 18728 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 EKUCzD;Q#;t diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab index 133d16f316603d5cf4f2d65d57f19ada4eb17211..a53f798ecdcb7fadc37a197074c54a30c0219270 100644 GIT binary patch literal 12296 zcmeHN+iu%P5`EWKa2_U4mcZtndXr^4(ZWs)%kg5dSQt&RC2@xrgQOgL7W400)fcKo zQHkS;JtHFoM2f|}SM}*r)&1+gCKu-h8Ii%S*OT|gFY8~7hAzkJB5fY+WE7YAk!2Dx z9t?*={7Q^>g!ooq4c^n7eTx3e;$}QBjQm#o|Bxo^EThYMY?xd;Evt&vcV&^J#d2P* zt61eS{3*zPmC`Kzoh3J{s?)L<8=kB_ zhq_t88#y$fKk{``y5qa1wpR5w4uXpD`!vTA5% z@tUvca^6(X>9O&-fH7UNgv)0!wyxXvkM#b6)vK*C=M8Pr_%unIvf3KcSv`rH^d2fC zN-vJ_PV{4NUD2XmlvVyWP)mNRS;?l)!h(d-&&!x*S0#3pkIMs$=#lZr@4xf=7wD#z z_Oh(gowOtS$bi(AmTnH^q7gxXgck^RNFs}xuF@>27--_(|KVymqscMm`dM^$hK{~lg2l|mG>;o8h{aQ zD1RxH*|%nD8p8H!D-|&<(^9y~K~}pl?LYoixC*L~sN=cDJ2}e+$K}Jc%rYQxhcXm^ zs!08`;gCi*tFNmRSXWEYwid1)!YEeuIgm)PlJ~I&SY5C{Bo+M&y#;0^5s91C6)RvY z4`npBhA6+C(z=O@Wc$v(Go}(9f1dS+S4c8_=viE34@WsL=^)#JH<=&%i|jH>POb&y;B1 zq%Z`khB>2o>)*{8s*NRr2MTk?oP1+L})~J*yhl5Whfd4)TC{ngiO-e?lpMqL@4R?*%a@_L9i)qKtF^{f!Cya!&;ddpXytwlz$5|M}tEL zP*2hEcIr5`7kZL{Z-iP@WFriHJK)x#mkHz{l>B?gi$9|3jE#pucuv&Itd&D=b5L9p3o+DLy z20XF+vWYfryRp7&Id2Ib1eYEBMI1IE!3;G7y0>VCr z+YVoy+=?jQpMqPfHLb&e+l>l;!tIN}EyNyhJEa?d7|1Ba32o@#V#iK+_Ry*vcIJR= z?%iFI4aYF5+^K+F63D}QVz?flD{~yNXJML)&Lt=p+*Ja8o=EQP?u67zN51HfoS^=0#XiZST<6*8bvJn?!CGBC#s;v@+p--%p2B53*W0)h5L z23qHF>!oT$z zgUp2n@sh}Z)hJ|mVPkMDD~{|ivSLC)(@&_GETSlgm=$`kZXhz`w~|F1ui*^qoHe-N z&Dq3PmLWK4v3)SoFu3T7Cg~bC^ZC}h6nlafcEw0!S4vC1UCLY0o4$@*xvnk6mab7@_ z6K~!}1das4^A8D&)=RaJ=eJu&twmqp zSOtucJSi+hxKIO!Q^HS+1xn7-;s;ce?VV}!cz Vi_Afct$S3uHwdSn$?Key{Xgbg8gu{v literal 19504 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab index da8f611b4b310628e69514f136c5fb4674c56bec..edca0c999be7b7bc7a55817a311151a2dea541ee 100644 GIT binary patch literal 15443 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 Xw)I5Yir4oHQD2<7*ig>OnUVhk^6~!L literal 17064 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 KufXNCt^XUyv3$G$ diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab index 013dc22a156c9f10aa0ccf5d9d020617e0c7d1d4..0042c820f3e4f82c08c5e997e5a968ef1852f4d9 100644 GIT binary patch literal 14393 zcmeHOTT|n>5`O1bcprA2fU+!K^A-X#lT$E55r$KzwzeqQRuZ4}g|Zz6c5DCpcIy%= zCdo3KfhC-A6*z9|+WqNMOKSi8pW)f5MGnc{&zHjw)=!I{td`9Ni!y8PX?mDc#lB+` zGT1vfIKa2WdPj&CIriQMR`Ad9e|gdl_AINomcKt{DSw}{Su?O~As$tA&6}I5OtW$} zsTOsjb6I~(vz(8QA?2SU>3PkkEFPCl%gTfgHoPA;4R8A|8(wED&wl6W6|bADDhHOY zsxP2!UW!H@SkNE!*p==^BqA<0Vf}kb9qLD068IiiR5UCy{bmB`m+Fu&Y8Zcc9OG>t6i- zUHtzF-89mkS54NXJs^jHC(@IB3)34ZCr~nC4~slhiSQ1|1O$rf(LBr3nu9%l`BfO_ zJ!|J^(xrLakl2wU3%#hS_H&)$dm>Vcwx29=UJuJz&YO=JfK%3IcHvKLBucG!3W9rR z?e|&ULTRF`e{{?}!cN#;LodX3Y-it^EwU7}+q-!0dEaX9Z@>~@9K}7pXT4KnZSSbM z8&!D@Y_lt>U|==iC_^0zcH`!<&S0c3N#Ueqan3)xRffxZPLpRwjQ zU=1g7BOmzR6J|S8IB0MLA9S2SY--a@V`I8`Y+&;x=O3{)nUBk9g(X|oG^;@=i&&09 zoQwfX@^MrxkaOe&ZDdBSdWcWa&0(3$E0g0iXD*d=Rpkrt2yS^@!>D{%j3Cx=DYRO! z8*L|;^a0|x{L9r+@#9%p)%+98Ml5gMSM_Ml>h_qoQtP_iW0=Wn@D$n)V=bDr8K^+l zFyX9Nx*-#eM&qfR7$w-T=g?3p?UI#Qu_#1ca%jmJdAMk+FIQ*m?l^0dUjp-j$g+GT zh)w3g)9z8q}?(q zO)nQPg1uyoqntI(I0gSBn`Y>Oh6E@a*@}Mb1lbA%8HBl(Yz>m#yna<{T}7^H zp(&`(SiOEva+R*o|3t1GkamV#4TJq4*JmZyz$KphhRD?h=xp(1DfNA|LA0KIeJ`N4 zvt`TCp}51ONB+Yd#c5tuwU~Kdo{>f8cY=`x?7k->Z*z8CUv1_7V+k_U86Cu$SnNl_eczY3%tig()SVZW5*; z_ZSKNC;|x&fso`*yP8gn4Z$C~iT^*li2qVB&<=DAiaOOFxXLGhNurm&u-dsw+1> zp5}=O2=0g{*4gPfJTWoWcEuAjRPj1JG32G4@x(f9zCBOu$Eog*Q{8Vo)eRk&_-|-0 zY#9r+-iy+QZ?+rRK5<=t^FhNUgbT`JzL($B61~_7hf3hbaDASB%s^LS>Wm@{Z))2q z1Ngp1fQxHviY~(;%-G9LXt?g3(1;G`gv(Q`;`%`po(i=v0`Q);X|{4k+`)8bjxh{C z^d{J+o)Nn&o-*R6ag>5`cw#f|b7FIsdA^^-;9<)Rg>O3}R?)0Ru#7{)kOV#rffq;s z|HYmMGgs;^zlYIjl#IWVlPpKVW-eau?+Do*p|$tkp|fCxz#CmW;uRKt<_RKyrW zt3e*o6U*~m&_5_g?DyFAw09{n1kI>lBG3VT>t~(7Q9txuJSO6QXvZovQ$C}R!WGB5 zFp3O<>nh$7~}LlG6;tizc*SO6N+S35`^4Oosg5n@jTn1 zQ9Sjd)J>V6&?LfT=K+Q;ZUlpFj>d$3UK(F3MR!;y&>+xvErSw$s zHeCx6Q@&z!$fL_yk!vG80E4Q{H9(>Jsr#*xtlS<02Au)H5W(LIfPtr}?|TspuaqS& z;h`Hu9`$UGF+boG&*!&;;QXRHu2A>0Ynp!3-5&!6%?y}JGXsL+k=Ik0!E^1%17Zk$;?sx$ zCxjeO0qbZxj2LX<{v8-Lwym!e{j4)+5a_#>!@Xk$E$lPH7EaXFRnmUfXUINGLyHxA1fVTh}Ldt!Uet UZ#~fVk6izCA&?u&>4k9q1*(*PBk#zBWn0v2m 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 literal 17064 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 TJI|Ckr=8ZPGrF_C@$0_;P*RYH diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab index 1a7d0f8aaccbaf67dba0c2ac64516a643c6e40ab..484ac7510d1c8da24119214fdb1b0def430c3a14 100644 GIT binary patch literal 14410 zcmeHOZExE+68@fFq5ZJ^)EJ~lz4@DyG_4Ow8^mc2hr=PDDB9MoUIIx@lReyjzac5g zv@EA-Zkw&M6%b1rQ4~3R_;7|Z`Sl-@^D_sJ@WHQFllRUqt6!XkEyk-NZ5~K6;${BU zMHr6{4i69IQ|!FKE=Dvwc+Yb2DgL+M&G^7^@*92qAx*?-#uoM1K}vjFR+Xr4%OXjO z#jIRa+`Q%dXP#zadIBZ?tBPJ!V$R}eQ8%pMV!Y$|q^?ENe^`quWm)>WNUlXyr)4pA z{Py!Xd|MQ%k%tcSr@dX*PJ;kZDw{C;9Ak>$z^+fIPrZoxy18fUK~$!jA3+;q=L$OH zsqbE~#jL5I%VXzr0UBM1M9HUIwyodukL>PT)XR+;XANso{w_(Ivf9w-w4U%Ly@StT zGb+@1qkD01Rk5O;msS1)3`%}uVPxHBjh|MBC1=@XDZ8rlau51^>pZC6-_`FI=%!Wn zqO8+(S#P7TRcr>;N(4cDSk(u=P+wcq@iNVlN)%E@hwFw>7lkC0wb()wdXd`~Mji?j z4D6B=xpb>!NL;Lh`OPV7mJ%`j(Z4Lq=2Mld!E`3I@@|!hYEmpRQGZAQzp696{+daN z0RY=DJvc9m@<=S%T?+GVKLGKrU~wiAiET+L8va|PGUHWxYm)%Ro}8ngp2aGKw<(L~ z4EsqOC7>6<5fi?^NKoeaK9A{Jr+K&qfDnxtJ$tP$9%rnsrwQ;zI#1=msAugowMNh- zVStG5MIix#2x-((*=d<&<(Ktj1Tr*Z1taB=&_%C^Ks$^-PM{2dO`x}B z)v$~zZNEH)s($PRg(?KKTHHmUhiDX_03$zC+y`?5xYWo3>*Y;OJ#;kzkBENFD)>ZJ zb^iG;HGo@uw_a)U8;kVxaQ|PVw}#fULd0Iek?YTsIgM!;#ynsGVG^=9 zz|r$aZ?XUuyaKjVmYNz^FiooFq8wb60Cj2!1@11A9c8*Ae@~NU30yxi##-H+mq|;x zhk6M(N|Uq#D-#R^mYH>7vTDlDw+U;+8ob)xoK%7V%x${$eLr|j_Nrxk4B4}UU>u;< zju|T8do(2eBL!UIx}m2`;{0aADAfz)7nWt=pTyCs^LxS33U(HIKHtpMR-ZOu5Ai7Q ztXeHj2CD`vXFT#WagW+!owfU|yzHtW{#ITl#Cg*~@IX2>r)k!J1*PixQ+>o;?ua!` zvb~mdhmnh5HPj}hvM;S4VO`5h!>(Wfwx*u%Id9szc5qbQAA?N@-toSu0=QNB)RsD0 z+jd%CRVg^Mo$tG`d<}Tw8b>qm&b1RWPokH(OTh&=^*!myL&5Ttf8sn_B|^FU(k(hK<#Kopt72Jo zHJqi3Wph!LvG`oGMOXGx%rm`w4n31fgk1_n^5?An4O}NTqLClCk>1ESZ*frfoMns% z0t<0?Zp?Sj4cUCXwQ~_g zsk%8S__7@Ewbx3zF0&QvVBLwTf?2s;jUv`*pY< zX@)6U+8Z-$t<9finA-Jj+0e42ewtx_9WyMVB=BER^uY?d4VhtGT#Qf}B0mb+?a2Xq zN=F~`di(MgmFmY{SX2r@U$dy56?}N{*n@VazSXz_Oj!Zf4p@5=d$0zuwY{N#+jymXFzHen@9d%IP+YfhF5rZC~ z@8RyMS+*zcuC0n6(%n^zv@hj{tBWFkb0_PZ948iSQ2}FObBuVLV1{k!ecn} zqX;A-1VYkjUTwnBPlwlpQ2sJ;2T0J9al?L=-a(tncfuO>LxiSvVg*+s^)x|f-aERuoGGAEn?Y*sO#!#PFlTkk)o+O6HukOW zrI5f8$EGq>3~@veQwQW?a(O}eF>~}axko)X;Qd}bMy|dj+b-Kl^mo;-8^THc^$yd| z&8BV^vg?9tY~C^7k*TKU{Q$0|8vOPQr>7h+!qSrZz#!j1UGE%mSx^;oA{=`-hyoY; zEMh$IknhI{;XIBBN{~#UI)plRgTXY+V8YyYgKs)zI&2CU5SX)(!+9GFbSD_hYeR$1 z5g7!DE#DY)sLa%}Avc4x1%~$Pum{u~rk|$Y-2?05DPSxPin%w>4G7Fx$@|P;3ip{oYg#gcIm{r+`w&1d zB$u*219atj%pm1mJwsrStl(Q9Fcq18uA63_tj|vYgZ;i?1__8K9?xM0!jTY+!~vu- zd3+vI&LQ#~`+>)!ghnz|?{P5fY+GL`=H9$uKw!>B4(By97-63oo(2Y+0c1^PaQkxe z6?wKn)yW6J&_0!b_@2xlKVz8TJA*+GE+T?MSZ>|GoyR`RHcl{iV*&Ia^zL?RMI5c* zA7N&qk+~hpns{Uxf|R1oJYdIBqDz*fE19>VvP@dx2O*P@#*WNRXhpNEl>c!-WiCo9 zI?mEOmTv}H2>ApY)5$LE*jMpN$P=gI;grDYfDLG4v-_}C?4|7M5|CF@j1Ic5%bLC_s bA@TaYQEeMYrjw7KnE$X&tlm*iFERXoJB_zt literal 17872 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 F{s-d=8=U|E diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab index 15eed9b6a4957fc3ead9b5aa438062b704c48e71..6378fb003c6c533f2c2fd2c5ed3ebf4953b1af9b 100644 GIT binary patch literal 14394 zcmeHOS#R4&5`Oou;5E$e?-Uhv5Yl>AE+y{LJ{;z`-GtW5Z5%lC29@V5W4;dRc6{7;@<^Sa5aa%B0c z`vvsPOEJg;3+AI5Qj>K1pzN{keZ&cjvsBueCXCS(_)PY2H@#8c!$9IBD}c=#Xl; zxYipvkG-p!l}%RFiyuHNiyK2rR&$mbB!&LIN?37O;Zy}*?t!EG*2Bm;Acp}7faBr5 z^`{_yhQEpy7?m%oCSO%PutjZh=*VhD!722FY6V?TQ3(D*%TyLQp65kcbCAuy|04u- z#@aawxD%D@Q9^xL`m(Cpk9CUQrMSgBPL~C*$K|Zx&AS|QPV^4x* zP_4c5s;rLqoZaQHR(3;#rzMLEo}xCQA&?5YVF;#4o!^=Zmr@Vc6)h_`<6cA`#DBC|R(=BDXBERKnJBMi>YFpE^=T)kDKakuw%G10CBMI8g3eBSN zvaLSdrmW>F<(1}gTyq9$(rF3kh#h!-_=?PJXyZKZ~oaJo(w2J$U`x534?zdmVz5C}cHks{7qu|D-QEVZQf5i0)g>>1m%GBvH5S2=WKBDr zv$XmQC|@qKOP+85q&@1%L&+9-@-az@Wy%FyMSyT#;cj>hn_^XWExgZX^Y)^yV*aUN zv##tV&kDJF4t+x=0>T!k`J6R>fYq=gH}V5J@`TvVl^!&>f)7?ujuM9eKpb8h+4i-8 z!Zh3IxJ>31Dpb!y zS~2OmDwg1X-SN7HRk>MG7}iNCDlFKomJ_&GpyGG@({;!A$*inu{s9~YRy1c-eLM$r zbi!N7bv^D0_)Xy3lBabAXtzzlA_J_Ke{fwD9Pb66UCe(X5J4jeZL(~x_NhJF+Qg@<5}Iyzvk}TrOfaGt&jV{~QH+(E z?o1TJSt&$si+yes!)0;CsGr7B3e4dNVch4GaF=<$pTvN$pA*GU;X%W-1@Fy`B1&!7 ziQu0fsIbKuoYPgGS3$t_Sb|G}R~1VzR>M$e*8%yGNN{G@!unnSr@fC9uz|CYr%=a$ z6N|Bg@NaTr#pHLw?h3X0CU#evT^YDNpb%IvTHSDDsR|{)5t1zS>|laC1b&_?D^zed zTvWzcV)#qb^=lf4Kl#bPzs%jLVqDWLwT|)VNOHcUUtS~ zzUNCH{ZOk8jRlHh~W&oUxkqI<3f7u4^yqv@h2 z96OE^!qeSlL&6`y|Gi7kbA71mh0M0#nd&;aA52r#^#gcDHu&lex2IenVT`xFW00XG zp0`RI3yNY^L}QNzQD9S_MJ!1@;`?#xBuN}QBqey-djM^2R|Y*WtrPma6TY65p0F;U zl|bJ$9qyaT;BHk0U2RC{A#nzk#H6nY9U9Z^tkJcQHk3j2?ixy==c(td2WZ}(q71q` zDg!FQ3n&8*VmI;QERKj1xV9gYG+=HT2b{R6m*MH{18-Y#mgeDf(Sk&`O~1nhy7s zWzfXFWq6u0m=*wA(!%Z2buV}~m8zo;Dueop3h_NH19qb=!}nGO-%D5wyH@1KZsbLF zmNCywISJy#A$|tRu((ku;%EuKahdWKv*84qcw`%bB+T_6PFR*8U9vP^Vy2(S%TvU6 z9Md;P7W!?9G%YIpwT6q?dx~^i~O)#B`c13QOIOM*-o;0KLmFhFI*bf0TxF{WfpI{ciY3w6$YIo z%Nh>&)FXcZ}xsk^M629vjPAB literal 17888 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 Y#Fgg1N4K9Nb51)=@UXAI<+Zi{2g-jEg8%>k diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab index 91e647de7fbc1063011cc5dc754803d1147cdc3d..b1a00b67d62803fe40c7f591b1b974699558730c 100644 GIT binary patch literal 13344 zcmeHOS#R4&5`NdO;5SjwV zipn^i#1nZ#Af{OCvyP8dU6o(|F}XOm$cPMny`H?Yep&ruHEc0n6>0NGlMyfTw~kH7 zcrY9e@h!355IYE+aPW@h;$!@8!JF~GvhrK?`+b^-vy3h3v1Lp0aamQOzAK9)Ef%wK zRdL@eoHhWeY)N--pEW0XktCBAdz|ptXBm5l!zlrUKZ>`@Y z?em5f7=16xI^Fbj+P+lvGTO~x9#krrfXGJh7X~J($?-DHl1hMN{`oH{rZd(oQM_wG zxy1HJtEpFI*?g=LeDBEC=eUd0RVJ!QvB*UIJ_U`FbG4h%%h6^;Kw!IyHMl5?@<=S% zeF~Ox7y>*kSe%IjbrE4esp}35%y^aFnPy9fhgJpbS*%j%?F$im3AY`8p3L3Y4a1lR zOn}*iEDlKY)@mN_Kz>xoOWB(-<8j97dYXWxr}GpABi~IHK)8mE5@sX`tg31*%U%Hu z?NMvor$w@-&AQ3o)1+C#wnrLi>gJ+M+S!MS8%Jr9RsfNp+bq*8nyi}g(_O+EvC&-x zmXk^_&~k0m2)3|)&wfQ62?-7bsgjQB|$CGbfT+-AZT#1<~|e4oee z^Ps!+h>S0=L&M0o9owephqzCzddGkGh4Ex{0!$KDnhstTtFz_p`JVz zEKm7I&a+h_WT21k)-#WwjpRJY6iC%c_jUrUQ;|pCJ7gl9O-OjZ zVD)cf%XK0*@&hOGq{&{idQhVU8{U{hr2cE`pe%_!Kc>`n0_yTG35CZ<=tmJyLu6j-2VmIJNGo;6ox?(@l1y5p z`6`!lDdTb_U51r67wq9At=khcd!&T9ekD&Q##R`~9(w*uR>AQV7$Pj9%eEOTT`P(a zL>tugo)oP;7ugD8T}mV86$PVE;kmXO?B5 zl;O+AzH;*i;e$!F`-VQ4Ix!rQQQ#S)8sV?BZ~aN^|w80=3bsLZX3SYO_ylKVIamr81o;ru*5ozRB+BbBLb zr89>;0h%Q+UzIb7b68E2j+qG&P4%}`; z_!DlwTVV`jf-x)5O$QI!obd^3*bk9-QiUq8svHtba9p=HNzyJHOIq3kcR1{aK5{3P z=ev+sccB7JUGvVhj`ef{S+EFH{j3{6?p$8_E+4r38`^Q3*;3C)q;SQt9!xf~x$W9a zUXb+X_=9#cV)h@=J=cQ^`gg|BbU72Q9oI?Kyz;LT!VUj*F1^p~rEWJe$AaHP_tEoU zIhyVtz;9%O-`?T&lnW$`!S#Cv*+lt!uf(yTY-U9y_6XEDImBlXCD33cHVvv@Qay+jWou>FaU& zlmSt}HrZg?x2-G-!&cX8)VSLE;2k#8B7Ggk+g8TbUh2+O{H4XdzGPmiwf~Q zkpZXC$nc$&!HIOXfSUpy@@Y; zhM-_zyFl8qBPe2fJds90FwX{dV_n zrf2r8w2H|esnXQWo9@r_{QB3w?*8>Lvr1k3xKiEolu|R5x_CdXYQg-rCFixBH-Df_ z{rC9zc;*aUJ|XBO!7IGb_qRw}#@CmtC`6d^vA zQ4cn%@R5uPn}8_BoLZoI5&T%NhKM()*YM=;BhK`VnumC%L7fLVA4Pn+y@yA^GwP-W z6+UU@P!A(NDW_!;InyGZQ7=M1?LhsRM|((F4VgCR!;}0d@+^6y*7GDhLp_fs$4R~j z*K3fT<)Y~fZ&GuiX9wcsJPmJ7l=lM;cgy?1h#PzMAkKV`!^wkoSOs0a2|G~F8HC|P z{ZYp%lQnwM&Z7T^$o1K%E(fRnj2|CyBflSU%KtE~_2mB^(`P5jXMNU_|B;Ai)Dy7J z7Q|_r6L9iiy}Rw<4>SukckOdx#EpH15T|`k(wuS({}t>*elkv_vYNw|;Wosm-zoOm z+gl5kuE-Z^m0-n=nqRIKD&=LWw0UKr=y!J^(CgKPb)d6S8mW~1a!o~{Uat_ST*OP8 zd%Q6}z(f7sP+u)5l!p-R&Q;2|to637@vFmLZoroT}>@`e4gV3e)t9K-&{E&pZ(3{BA@+DjTrkg`&&JK$NpB&-?6{7 zozVXRt+#152!a~k zX}NYGcu;u1<=TZfe9&@t$fkT5dW;K+<=kx3YZsC=oKvYk1*a{I3o)Es`7goPm9+~A z$&*tT?LxBT$*GHRA%?GTy0UR0*~bHc`&(h-Vbr+sRfAT?mh~9O`B4V5Y2MpScmw=%MLC$f13V3t_$))q`?%gX2$e zs26*ZUt#$fDZayU4uNj^n=C(*JR9PkagARGXTE1S>1l^YEkE1g_kllSIm;pP$zQkp zT!;S>>?l<3v0&%nR65_JozIWbC+#yo;zrL|kV8G&9Nvodb3Qo!)B??^Q$~?5vwR_W z7CsKss`Y*u4iYYM>i)UYtJeC4y?kYR72bBepYt&ti$T{|*(()t>vFl`Xx^u9UQ?mR z-stBrSL7o-g`weEZ%`TVH&neLrdaO}7I7P?QkcqNHmE0mYrN`KO7m)9Ua_kBI7H++ zyjpI!yF6IIy)+pt1kiPKfF)H`bM35*!u2Q8a-aawdAFBy!xc_NV=XsUilZfe-8Mf6 z3VEul2c7P+PEqnk^rL>&54QOmHnM=-L*+`~udM_nsJXHdbPjt#t;?^OA~FGH#6is~ z*Dmd*xLN^45NUnBSE7(UpCr6Oml zW2wkVkEJ5#Xz10hbiLfj8!q!J z&VMqf8>Z(HY763&ZRS6%pk_)w1V($Nmrw=E(@UtWmZz6cC2-2u^B*-)etHQd^3zKw zkx91)YyXiU%N zGa=JA==B&YpT;weh}=vb*HrSvk~`joPGd(UUvT^BB!T+-phb$!CoI&3gYV zK%9E&Mji5AOF~aJ>P(h=nwBqm>PF3b;Fm*3>PbD=sEs~G{vRPu`E1li|D=32>U#27 zKSoYcJ{z^jryXuYoMmF8HauwuHfmGeq#f9(4L9}m6~w8hp45lD*O;(_p44Z_ll2u( z>YH@E&<@lmp46NDPN^3&sShEiIZ-e1q~0tRzX2JPV?*9<5khm(5IpNjx#hpiDe zllMmvr<~cEPn5&DjO`FOrw?^>WX(aeqsl7@LdIwlO9#saOh;FI;x7Cqwq|- z)+za7f)2=Vvr8bOo_0XEA+w9sun~1*Q}mtTq)IUSJUW;W7|80FIe zx#>kd9gxdKKHHJYMSg3<&8oj2appT)b5pLJa9E#2ob7-Phz*G4B`;b&$KhP9UynHD z%q7P$^#yMG5S&l{*ob+Lfi+i9>#cCVP-Yq{%6S7yo3AM3;ay6bI|}(iVAgkD5plg7 z8_8qZ;_O(q2fn9{xQoawu$rXX9&r~(+{Jxp4@cZZ^nxRH7a4Wy$G`i=Ba8p>q{g$$ zOW(QdUzZx67XQ*qUxAYz^2qEW9vzO%E)IWo!I{M+I62D4vkSAF5O?jqvv6lw@$$xu z&g{-?lX`a1KJ`&pkJfYTyZL`r5sjZ!bOWoNF7N*)`|$pzT;kH}E!&!&#!!Sx&Y@=aPj>5r~E} z3~`zz@!5!TY0Z0vAAE@}a?(q5k>f7W-EZBPM=81( z`4*6SOI+fz>@&lO^0`Exxo@I;F46V!8u@l2%snv5;S$}*Y0`V5eTb8DkI?Yu#1fh^ zW@ahh?BU5?BbVq#ev4irQa%SE?hzW^q&6Wuh?BCpL^r%yr{{(^({qXL@@>k|SUxAk-?p4fbf#~B6&qp56L4OD_-Qz2gtV<0*3JiK zUpbu|r)+IpV)+>LGsr9Y#&>a)KIu2$FRgtV)rTR2{f=#aNyMA<3$0Uek3Qof&0CRcv;N@Y zY;e}^#VLNS<(!nxP;q*G=)m+`4H<6s)Z46l?s1#?GJEQ$BF^;7aL!br&X94C1XWQc#GuQPItf4j=c?}~WRzj5+x>LuylR+8hS z-{T8H%BMZKrDp6fEn&}9DK7TxPI0m4Wf3=e4q81|lZVVVsb>#)*671_D}HzlIZpA< z)RXpK8*#=|I0E@>C+i~KtjmS>HM*VjYTl~l+=ukiPA*SzDcAZGmvV7Dk@iEo-C*VS zN4zCrw+$&S@;9cq$iE`u#%{M*yIn~hPPE&{$+NM2#BQG;$4R?=2{LH6R>ZH0_%v;w z2dw^|)SUL2p3wj56c_zBrMT$7IpRkCLstHlh$rQHDK7E{Qe5QcB5vLd?uLA}fV}1` zui@Xa+>f~Fj}L>hKk9KiWcuWMW{Byt_@mCwG+3! zZB210Z!yKCyqrgfUt)WE)ygkNJn8o;DK7FyQe5O;8}TMx?>~lo+B49cc4*Qc6ut?L zKUH=3PU!O+zzkR|#ox7jG~!GJAJb_1={Cl2aQtPtq@Qlrv{l>RwcCyqmvW7zxRmR< zh#UFRPd^p$#zZ^+!xR_!pH6X+|Cxy6l?GlZq2KBL#(A7l)Ze@^5kC{AxX8ag#YO%N zDSkTSvtIr<;^tM#JaD$R&qh3%?~N%g`QDV`lJDmtZe9^BwE1!#%EQ@CIgHmK_NjjS zV@Fj)Fv49KY{l?PA{|`iRfpRaECFIj4UEQ(cvwt+SYEReuL2`rMp1rk^+feR(D zL;@E{pe+_1$!?2;w?)$1BJpjIZwu2giqFOS{2IS+<162~7~dvF?}2o9y_YYHR+SE~ z^7$2`3HKH87TN?mi-ppFD*E{$zYFi5ZK{&DW$u# zS043>oqn;XziP=zz;GH|^O^*_Ty8Yr`=z3n^GkeP?iQlU9~d2q3Yce%+h#>i7uTqT zPZz5y3hFu>k`yukdl+oDO?T?I4BG-PBqUr;ab$a5vz-pxIrLlP2)lrB0B2@V*y45#7^XDIId+1ZQv!F^n z@Xm=ZeeIO?=XaK8?SH_3YPF&FKki@B7kPP0sI^%0bB#Ws@r4r z{LyluHnw>H9tz%Rv%jMjcyT&zoybuv36lDUhRI#;p1JRt3dNyUx~)7JV+=3<++@rH8E!>4(sGMT_RXw%7#bbiu? znO^FWVYUH!LM}8}r@w1{YSwxo57F?H*wkG3Lpu zJ|sVh%k_}uvtyB@H&^C&Ye&qaY~gaYAs%iYaND8V_uY2k)|rt||MyV(y5lM8L)*pH zM|LXpA#GN2KU97)21|N#mHOay|6WrM`>2c7hiRlf((==BrgiII#&`1gF!|Z?W#hJH zIMYdfW*~{5JXC(t-ZJLU3uZn;IjzUE#)7643YW{Xw%x-Xk2vip7IG-P#O`UmD0lh1 zSkBZ!@1I^`FZP31&WLlLYI***&&4?*q%&jP%NgH2lpdmg{KVnOOUpkVk7K?*TCG(| zc159Q+LX`v&%SwE(~t0$K4c!u1oaZR{X+b(q~lfQSw>p&_qk_#_6k9G`E$=ctJ|h9 zkt1Y3 zYn4>Ef5V2ol7?YQZ_r*0vO^VWG5BGg%sW0zss{TCssXbk-k*l8mKMF;5~q~V?R!3Q z=j?0ld9HWx@ukmv`vWa*Ihke(Y5EoS lnDmPF&tk>hfs3vS%fXcT=B~3$pOZq{n}>G^UAg+v{{dfgs&W7T diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile8.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile8.prefab index edfdc4bc4e6053b3a23916bf5ebeda8fbeff5dcb..c1ab860693d409a4532088d9c90cb2d706166ae1 100644 GIT binary patch literal 15459 zcmeHOTT|P}5`O1bXdgCDn9}GjzZnCGPeDRq!l|vTQ`ATr8=cjKl4JtAwg3He&qW#w znGjA$FpH`{R;x9a?pDvI?w((No17dQWRL9pdOmq?{IdGRXy|ghD$?f8PWIw5-?dCa z#yg|Y2=5Z(9WgD>c6Q#=oPCP^%i?CdV;K3R`28VG*ilB8_1G{ud0JK#tFOxhRHR@G@)j15nA zpF`iQ;Da0)Fduo@weDDU;0HK_;rq7jI*xB`X7F4maLEG2lswAgQtOxd25hS;FbF7^l=1*hhME!s@HF7UvCZ()ch*o3dI{#H^mg zO?m^}5v5GWcqb;mb6(M+UX)e-0(6;QYNplAS(u%$l;bj{*;$EG<#M?NdF~o_{QsZ) z{}-61#(P@UX~#Pvd%ny0$*zI?8s{8ZM%%+C_aqaZfz1(Y)2lQ~DhB%a{XbkeN3^*@ zmA2|}EX%fKqi1E=e5w+>Z*y)w_QO@is!6fTSp6Xd;}rerQ}|mc$+nGm(gb%<+ec~E zKx@3MpZd-{LQgneO)j89)7mwbt26=W_72v&-Zh%LYtRJ9QTiUwHQvd0ZD+r{ot9Y! z-ey}wK|yQaqcm|y3z^mDRSIu<>l6+P8f6SbL_o;{p3UOApM$p(b^}HXrY}rc8vPVJ z9yZ9$c+jjYFe~YoxLKXC0%W-@(p(c!emSLeGryuq`32S;lv;jy#$pEEu17t%D`=j^ zpW--MC5-z*WIid;Ib6V6R#t5b$LaE_IjzcweXi-Ublb=pG6Y+&6d0C$#

D^dtem8LV!sqYPCcc^#ixOKlj73_3P*#z6 z2XQe5V-lCsa)mxeEYRA+=&SDAC!gk|h_6cB$0?uL3hAQER)7d@SXIGWdA}L%SZ4*7 zYEG|}o?y`j6Te}fFIvIRmPJ{ykFXlitUfBM=@qS-1J($st8vd@C9eP}H1B7MG;dN6 zf$Cw-Xx_q*IYXtfL@bQL*m34CP~nzO(jv`QIqyrnT4F_>teW!k#R)Q z3rs6`07cohO&s$9pys(|K*YK`jN~laH;K)=$S>DWlfYq%tSl?8i64){_~f?(hoRYN zi0SD#Yz?z%EovCd5sTM%LSVw|z>^4uVBJq{0s87w;th$}-W0~icrVd4Y#$73))`R%}9Xm%Q6 z`hPK)3?4vOOl$NW3?mYT!3U6FdvYjDX!vPBj9cKA0I^O@&jG~vtF|pbOcTY61Y+DR zZ4D6Xr1|=Q*jp&_Aj3X=QxENkbaEXsX$MQ>8b-oN0yqo%>$nka()_evAyag|={2@gWt zwGe>ESmY)#)H^Jag%deJ5XC-a5JL`VE2 zy~z>?=aAdf0{;zUI8MvKOfVRlw5`J;*}&7X{5wq=$heX{RsB#mCuJggABoJ^eww6} z$faO9QV@AA<2nIk))}vemQE^0F&Uv1fVhrpzow7gHeLU)w{=Vh64)ULRrLFQCC52b zwEQez%V)6_zLwjM<}ZhQEqKjGRB{B5NFhArS>c7$aHG}w0uG^u}f)X!@!UTlFVv{nD5tBI- z@KPK>T1iB2zs+^af-5bb3o19mz%?N^2~}X07f2*_1jQ-km#(a8-GPQaFuo$Vs=XpZ z6?V35K~RuOX4u0*RgVqt8NMaM43N1EEO)ct#i*fJ$bNj(kWYRq{4O`U@8WlVP63_J z@VDYxQ9#Ena66)gnwp*?YRF%;Er}ZHqIi)}L++NgC2FWiv$xE?70^M^^jiVlKd68X zfEyOT_R-spgm?$Ep)VrVA%Y4psvK&m0UvFw2bKfJFHl)q3U#gU44;Vs@C#tD18Da83(uu7N7WA* zgBp~w33c5nUkOD`STQIgP-jJl^L=A*HX4I^Y)I*WX%8BSPG3_xG^W~FqbnudGX~i^ zeEheEnx~p~dqey27-LZE*bW-P4=@G>2JQsR^ld-%B9l5!sa_Swzfd;5hv_p;*TL zurX{LTVE*ZT0NkQK%EsG&Yfpa#J*>EoH6Jg09#VZ?bB5+c-D=or4Jf|yo(0$oSp%@ zQJ&$Mjll_^W{CO>3K@Ny#3Au$L>P(8$c2(FPh<=vir8Pl9=ADbaFYT@6Avsyus3Es zpJ5oBbVieOg&Q#Vb_q%Rz;MIJ*uVlHNt$OR?(=fc8YO9(rFn!;`hp0%p_c5RDzDY! z=*D23q__WC<=2zAD(hO?pCN9h#Ti?|HXV_`5FO^USkY|CvP|sp5bea>^&SC9z~Rdd zkR2hF&fc`w5Rwvuj^kB@xs!~>EC+Fj-5Z9HuxPbZ3weIIwjoo@1-8O~jO0#2K|QPK!S}qS#5h4;y(BsUO${1s!kL^u?uhd3f9Ku?_4BL(uWaFnpIF+R#of G!Sz4k$php7 literal 17064 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 VjCpYPX)@-t(c#V6UD)3E@!tplh#&v} diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab index b15e894739ebe0b86b1291683eaaba1893f9c5d2..579069b0a9a6f698a0ecc4725c7d7fc0ba89bb1a 100644 GIT binary patch literal 14409 zcmeHOS#z7n7Jm1yU>+tV|KdpbVTDsg{msxv@lWANPuN@nq z{k_R#!tWyM6+$HR+`V_SU>~DDS={dLSypi=f4|QX_BN->X5X@f_^_&L)?8I(l9kIv zwXS3Rl=V-VkD`{D@7wG7W7A5_O-j7<70<6Vf;Qqt_=sm1mnOBa7bixkLfL|bvHl2XzW|((4kPg z_na;lZ4F)Cw?36HqDz(t`8?)r8}|GIy*^>hYNN(QOWQ1dlVojGZ;a@?nZ<2(4X;Cb zR$S|q?8V-BP0J>&>f$??l;YCBNZ)6PA2o(mO!KpfcU6qb4UFe&>sEaKExtcPH;uBV zRg?8)!;Qj5u?1Ai5d`%iQ6GFmeX6FzRhB0;EBP2r`i8lfxJUt^n<1At*mHT+X35a8 z-C#@Tg|@(kS<)r8ukihrwkwX9u5KkitE%>6o%CQj=A-gvowIsYE_2qr&j7!oGlTx> zMTr0a+c4cbsmkhrt>|?I>uxsy@us9v&JvDoPAU@qTcomx>+H%T0faohMqzlC>kOWD zX_Qh#k|<1ITv%*VMi{c0OFcs3$bD_Kw^slVEHNWjukpsioHoro0p7^cj8BZXrgBdG)zpj6jBZu3)B|5PS9uBG3-w_Y3sCFQ}A01BPhQ?Wj5L>%BQqGx~;%_gNPhM8hP zm=i&VFjc(Z14-5T{SPsJTXffNw8f>td9En^KXG1AWNaBiKzn3q;5~E(M<_}rm*#sVcg{aRjj9>vQTTdx!Z_qa{-Hp^R3phR8&R}=9r zYs8o*-d;nwL$+f(TBDTPXaCLmpW>HhSC|~dJ;bwKskOFuP~9AYN(jdBt_%fmD>tc) z;ZU%fH|KQ*_H1YRZfsv8hPcGh0*rHM!;BeZu*dKUxxJx2o5pIb#I72ggoU{|c_ zu7=}mxoS`ADq^1+y6noHu{4+4=h!_yh~T6UB!5DizkoGBmkNpRgq~QkCkhA6z*a^! zwn0Ud*4AJt*y%uEtPS3L>Df4-ZM>S7X~k={tTd}(P}Y%LgM2f$tVUiQR%>qm$_?Il znCp<+_!QlomGPjK|Ipk5>ADEE0CTl{r*#0gAWUq zAv9v>p;$oEHB1aW(2#b0lCsX7Vd!DR1?%GlS-pn0XiUulXQ2-s0j>dzt69V&;54|W zfP+IX4E1im?QKl+s;b4*KEEC&I=>Ton1J0k(ZdEi6Q{DF4hD`T?!5d)8kl6fueFS& z1}4C_8yc7~Lr`do(2X+K0mY$hG`OcB*NH+XqFoX zNx(dc0uqKGVF8$g(&MchdWIVHLkIi!=wQB&k@JFdFrcIRTwOXQ2EjVuf&d(WN)gyr zrex$n8e`9|PKkc(ggPY<^d)s_>f1i}AOpj_WhNQ4lu)+U` zJ3vO|kGR9XDDD9Hc|2}7Ow!v^nS4jIrQbzpT4ujNs|pA~gG>L;Fsf=ePc&8`IS2>B zGomM!2MMe$b6x2gvh8$mba6RdKx8(9RA1`?j{2d`;xZQBfgP#Xx4h;;2>9bD(v^u~ zc5J)0=X!8JDrQXKz{8li{Utenib5*qupTWJZ{ls|?ZooE;@b(}#6N>W_j9wUn}y7} z;5X9G==bnUQ^+V12d{?@1Lz&%EQDYFf*Iz~gZC8j4aDy|XPg%l#Vq6}7<(S%clq%4 z08`sf9iL&J(v)~KhI%GY=iOk?&C;0A*WKjnLD3!71vCisSm4FzCm|COx+C zC`e5C#-u}Kx}FWWo}?`>sJFWYD0Dw{zjXu6^FzR(%kz3d_&fs`A}8?(bHL+ELXxI7 zg2e}+LJudz^Aex`*Wi9IY=J;`VmK)JTHn_o&}ShZGJ`HWWCl6XoEh|?Cy`$V0D>_& zmkk*}mm8CJ^^AdmvjQ7VFav>3@?iENHo=`60`5 znHnSOiTmp*f;9t&FY6G+xk_agZ@X*9Pl=izNFKX8SB^Il{xfsa Yinfg;)A8F6bO&wv=0{Q=W}ATcFQ@IciU0rr literal 17872 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 L>9p?bZ}j?ai`^1U From dd466fe740ce4dea623927b39ae35d1ee9afcb4b Mon Sep 17 00:00:00 2001 From: Adrian T Date: Mon, 7 May 2018 19:15:31 +0200 Subject: [PATCH 17/82] Updated README with link to 2017.2 branch. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6395ac0e..1ed79399 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> This branch requires **Unity 2018.1**. For older or future versions of Unity please use a matching branch ([master](../..), [5.6](../../tree/5.6), [2017.1](../../tree/2017.1)). +> This branch requires **Unity 2018.1**. For older or future versions of Unity please use a matching branch ([master](../..), [5.6](../../tree/5.6), [2017.1](../../tree/2017.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS). # Components for Runtime NavMesh Building From ef7f4e9f643ebc0cc1fe96d9a99fc62b1c4e36d6 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Tue, 8 May 2018 14:22:37 +0200 Subject: [PATCH 18/82] API update: prefabInstanceRoot got renamed to prefabContentsRoot and IsPartOfPrefab got renamed to IsPartOfPrefabContents. --- .../Editor/NavMeshSurfaceEditor.cs | 2 +- .../Editor/NavMeshSurfaceInPrefabTests.cs | 44 +++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 72982303..8b128540 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -99,7 +99,7 @@ public static string GetAndEnsureTargetPath(NavMeshSurface surface) else { var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject); - var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefab(surface.gameObject); + var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surface.gameObject); if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.prefabAssetPath)) { var prefabDirectoryName = Path.GetDirectoryName(prefabStage.prefabAssetPath); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index bafbf223..08f28f22 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -109,9 +109,9 @@ public IEnumerator TearDown() // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); // AssetDatabase.OpenAsset(prefab); // var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - // if (prefabStage != null && prefabStage.prefabInstanceRoot != null) + // if (prefabStage != null && prefabStage.prefabContentsRoot != null) // { - // var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); // if (prefabSurface != null) // { // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); @@ -164,9 +164,9 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); Assert.IsNotNull(prefabStage); - Assert.IsNotNull(prefabStage.prefabInstanceRoot); + Assert.IsNotNull(prefabStage.prefabContentsRoot); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); @@ -209,9 +209,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); Assert.IsNotNull(prefabStage); - Assert.IsNotNull(prefabStage.prefabInstanceRoot); + Assert.IsNotNull(prefabStage.prefabContentsRoot); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreSame(prefabNavMeshData, instanceNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); @@ -236,7 +236,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); prefabStage.SavePrefab(); @@ -263,7 +263,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); prefabStage.SavePrefab(); @@ -322,7 +322,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(instanceNavMeshData, instanceCloneNavMeshData); @@ -365,7 +365,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(prefabNavMeshData, instanceSurface.navMeshData); Assert.AreNotSame(instanceCloneNavMeshData, instanceSurface.navMeshData); @@ -397,7 +397,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(prefabNavMeshData); Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); @@ -426,7 +426,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabStage.SavePrefab(); @@ -434,7 +434,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh AssetDatabase.OpenAsset(prefab); var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); + var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.IsNotNull(prefabNavMeshData); Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); @@ -454,7 +454,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; @@ -465,7 +465,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti AssetDatabase.OpenAsset(prefab); var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); + var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreNotSame(rebuiltPrefabNavMeshData, prefabNavMeshData); @@ -482,7 +482,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; @@ -503,7 +503,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "NavMeshData file must exist. ({0})", initialAssetPath); @@ -529,7 +529,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; @@ -541,7 +541,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe AssetDatabase.OpenAsset(prefab); var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurfaceReopened = prefabStageReopened.prefabInstanceRoot.GetComponent(); + var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(rebuiltPrefabNavMeshData, prefabNavMeshData); @@ -619,7 +619,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); @@ -654,7 +654,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); Assert.IsNull(prefabSurface.navMeshData); @@ -735,7 +735,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); - var prefabSurface = prefabStage.prefabInstanceRoot.GetComponent(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); prefabSurface.collectObjects = CollectObjects.All; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); From c285fbe4cfba0850763500803d5e9b85ba498c14 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Tue, 8 May 2018 15:02:17 +0200 Subject: [PATCH 19/82] Remove unneeded marking of dirty scene in a PrefabTest because it is already handled by the NavMeshSurfaceEditor code. --- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 08f28f22..9958aa70 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -535,7 +535,6 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(rebuiltPrefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); - EditorSceneManager.MarkSceneDirty(prefabStage.scene); StageNavigationManager.instance.GoToMainStage(); From 6bfeeaa660495d6c78add9a3d1c56cff90f65e54 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 9 May 2018 16:38:43 +0200 Subject: [PATCH 20/82] PrefabStageUtility has been moved to the Experimental namespace. --- Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 8b128540..f03dc15d 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using UnityEditor.Experimental.SceneManagement; using UnityEditor.IMGUI.Controls; using UnityEditor.SceneManagement; using UnityEditorInternal; From c603f77f5325ff795eb84c5302e5090e4db10961 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 18 May 2018 11:12:25 +0200 Subject: [PATCH 21/82] Use the public PrefabStageUtility.GetCurrentPrefabStage() instead of the internal StageNavigationManager. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 9958aa70..d2c664fc 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -8,6 +8,7 @@ using System.IO; using UnityEditor; using UnityEditor.AI; +using UnityEditor.Experimental.SceneManagement; using UnityEditor.SceneManagement; using UnityEngine.AI; using UnityEngine.SceneManagement; @@ -108,7 +109,7 @@ public IEnumerator TearDown() //{ // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); // AssetDatabase.OpenAsset(prefab); - // var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + // var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); // if (prefabStage != null && prefabStage.prefabContentsRoot != null) // { // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); @@ -162,7 +163,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); Assert.IsNotNull(prefabStage); Assert.IsNotNull(prefabStage.prefabContentsRoot); @@ -207,7 +208,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); Assert.IsNotNull(prefabStage); Assert.IsNotNull(prefabStage.prefabContentsRoot); @@ -235,7 +236,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt Assert.IsNotNull(instanceSurface.navMeshData); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); prefabStage.SavePrefab(); @@ -260,7 +261,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); @@ -321,7 +322,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); @@ -364,7 +365,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var instanceCloneNavMeshData = instanceCloneSurface.navMeshData; AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.AreNotSame(prefabNavMeshData, instanceSurface.navMeshData); @@ -396,7 +397,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; Assert.IsNotNull(prefabNavMeshData); @@ -425,7 +426,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); @@ -433,7 +434,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.IsNotNull(prefabNavMeshData); @@ -453,7 +454,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); @@ -464,7 +465,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); @@ -481,7 +482,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); @@ -502,7 +503,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); @@ -528,7 +529,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); @@ -539,7 +540,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe StageNavigationManager.instance.GoToMainStage(); AssetDatabase.OpenAsset(prefab); - var prefabStageReopened = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); @@ -617,7 +618,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabStage.SavePrefab(); @@ -652,7 +653,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty PrefabUtility.ApplyPrefabInstance(instance); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); Assert.IsNull(prefabSurface.navMeshData); @@ -733,7 +734,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); - var prefabStage = StageNavigationManager.instance.GetCurrentPrefabStage(); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); prefabSurface.collectObjects = CollectObjects.All; From 09710ee46eeded2fb16015e95fa33d1f606c8a87 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 18 May 2018 16:07:24 +0200 Subject: [PATCH 22/82] Updated test to check that baking a NavMeshSurface inside a prefab does not delete the original NavMeshData until the prefab is saved, after which the original asset should definitely be deleted. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index d2c664fc..a29259c4 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -499,23 +499,37 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo } [UnityTest] - public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving() + public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSavingAndNotAfter() { var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + var initialNavMeshData = prefabSurface.navMeshData; var initialAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); + // Assert.IsNull cannot verify correctly that an UnityEngine.Object is null + Assert.IsTrue(initialNavMeshData != null, "Prefab must have some NavMeshData."); Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "NavMeshData file must exist. ({0})", initialAssetPath); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "The initial NavMeshData file must exist after prefab rebake. ({0})", initialAssetPath); + Assert.IsTrue(initialNavMeshData != null, "The initial NavMeshData must still exist immediately after prefab re-bake."); + Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "The initial NavMeshData file must exist after prefab re-bake. ({0})", initialAssetPath); + + Assert.IsTrue(prefabSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); + var unsavedRebakedNavMeshData = prefabSurface.navMeshData; + + yield return BakeNavMeshAsync(() => prefabSurface, k_OrangeArea); + + Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); + Assert.IsTrue(prefabSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); prefabStage.SavePrefab(); Assert.IsFalse(System.IO.File.Exists(initialAssetPath), "NavMeshData file still exists after saving. ({0})", initialAssetPath); + Assert.IsTrue(initialNavMeshData == null, "The initial NavMeshData must no longer exist after saving the prefab."); + // ReSharper disable once HeuristicUnreachableCode - initialNavMeshData is affected by BakeNavMeshAsync() StageNavigationManager.instance.GoToMainStage(); yield return null; From c6938c9626675c7d05a3d65c03cee62d92e69b98 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 18 May 2018 16:10:17 +0200 Subject: [PATCH 23/82] Modified prefab test setup to build the NavMesh from inside the prefab. This way the asset is saved in the same folder as the prefab. --- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index a29259c4..4be27574 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -87,16 +87,21 @@ public IEnumerator Setup() plane.name = "NavMeshSurfacePrefab" + (++m_TestCounter); var surface = plane.AddComponent(); surface.collectObjects = CollectObjects.Children; - yield return BakeNavMeshAsync(() => surface, k_PrefabDefaultArea); #if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS m_InitialPrefabNavMeshDataPath = AssetDatabase.GetAssetPath(surface.navMeshData); #endif m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); - PrefabUtility.CreatePrefab(m_PrefabPath, plane); - + var planePrefab = PrefabUtility.CreatePrefab(m_PrefabPath, plane); Object.DestroyImmediate(plane); + AssetDatabase.OpenAsset(planePrefab); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); + prefabStage.SavePrefab(); + StageNavigationManager.instance.GoToMainStage(); + NavMesh.RemoveAllNavMeshData(); yield return null; From a26e777897f6edc5151acd5ba00bbe0e7006cef8 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 18 May 2018 16:22:35 +0200 Subject: [PATCH 24/82] Added test to check that the variant of a prefab containing a NavMeshSurface does not delete the asset of the original prefab. --- .../NavMeshSurfaceInPrefabVariantTests.cs | 286 ++++++++++++++++++ ...NavMeshSurfaceInPrefabVariantTests.cs.meta | 11 + 2 files changed, 297 insertions(+) create mode 100644 Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs create mode 100644 Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs.meta diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs new file mode 100644 index 00000000..cb14a4a6 --- /dev/null +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections; +using System.IO; +using NUnit.Framework; +using UnityEditor; +using UnityEditor.AI; +using UnityEditor.Experimental.SceneManagement; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.AI; +using UnityEngine.SceneManagement; +using UnityEngine.TestTools; +using Object = UnityEngine.Object; + +[Category("PrefabsWithNavMeshComponents")] +public class NavMeshSurfaceInPrefabVariantTests +{ + const string k_AutoSaveKey = "AutoSave"; + const string k_ParentFolder = "Assets/Tests/Editor"; + const string k_TempFolderName = "TempPrefabVariants"; + string m_TempFolder = k_ParentFolder + "/" + k_TempFolderName; + string m_PrefabPath; + string m_PrefabVariantPath; + string m_PreviousScenePath; + string m_TempScenePath; + int m_TestCounter; + + const int k_BlueArea = 0; + const int k_PinkArea = 3; + const int k_GreenArea = 4; + const int k_GrayArea = 7; + const int k_BrownArea = 10; + const int k_RedArea = 18; + const int k_OrangeArea = 26; + const int k_YellowArea = 30; + + const int k_PrefabDefaultArea = k_YellowArea; + + [OneTimeSetUp] + public void OneTimeSetup() + { + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); + + //if (!System.IO.Directory.Exists(m_TempFolder)) + //{ + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); + //} + + SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageNavigationManager.instance.autoSave = false; + StageNavigationManager.instance.GoToMainStage(); + + m_PreviousScenePath = SceneManager.GetActiveScene().path; + m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshSurfacePrefabVariantTestsScene.unity"); + var tempScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + EditorSceneManager.SaveScene(tempScene, m_TempScenePath); + EditorSceneManager.OpenScene(m_TempScenePath); + } + + [OneTimeTearDown] + public void OneTimeTearDown() + { + StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageNavigationManager.instance.GoToMainStage(); + + EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + + if (string.IsNullOrEmpty(m_PreviousScenePath)) + { + EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + } + + //File.Delete(m_TempScenePath); + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); + } + + [UnitySetUp] + public IEnumerator Setup() + { + var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); + plane.name = "NavMeshSurfacePrefab" + (++m_TestCounter); + var surface = plane.AddComponent(); + surface.collectObjects = CollectObjects.Children; + + m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); + m_PrefabVariantPath = Path.Combine(m_TempFolder, plane.name + "Variant.prefab"); + + var planePrefab = PrefabUtility.CreatePrefab(m_PrefabPath, plane); + Object.DestroyImmediate(plane); + + AssetDatabase.OpenAsset(planePrefab); + var theOriginalPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var theOriginalPrefabSurface = theOriginalPrefabStage.prefabContentsRoot.GetComponent(); + yield return BakeNavMeshAsync(() => theOriginalPrefabSurface, k_PrefabDefaultArea); + theOriginalPrefabStage.SavePrefab(); + StageNavigationManager.instance.GoToMainStage(); + + PrefabUtility.CreateVariant(planePrefab, m_PrefabVariantPath); + + NavMesh.RemoveAllNavMeshData(); + + yield return null; + } + + [UnityTearDown] + public IEnumerator TearDown() + { + //if (System.IO.File.Exists(m_PrefabPath)) + //{ + // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + // AssetDatabase.OpenAsset(prefab); + // var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + // if (prefabStage != null && prefabStage.prefabContentsRoot != null) + // { + // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + // if (prefabSurface != null) + // { + // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); + // } + // } + + // AssetDatabase.DeleteAsset(m_PrefabPath); + //} + + StageNavigationManager.instance.GoToMainStage(); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefabVariant_WhenFreshAndRebaked_ParentAssetUnchanged() + { + var theOriginalPrefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(theOriginalPrefab); + var theOriginalPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var theOriginalPrefabSurface = theOriginalPrefabStage.prefabContentsRoot.GetComponent(); + var theOriginalPrefabNavMeshData = theOriginalPrefabSurface.navMeshData; + var theOriginalPrefabAssetPath = AssetDatabase.GetAssetPath(theOriginalPrefabSurface.navMeshData); + + Assert.IsTrue(theOriginalPrefabNavMeshData != null, "Original prefab must have some NavMeshData."); + Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file must exist for the original prefab. ({0})", theOriginalPrefabAssetPath); + + var prefabVariant = AssetDatabase.LoadAssetAtPath(m_PrefabVariantPath); + AssetDatabase.OpenAsset(prefabVariant); + var prefabVariantStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabVariantSurface = prefabVariantStage.prefabContentsRoot.GetComponent(); + var initialVariantNavMeshData = prefabVariantSurface.navMeshData; + var initialVariantAssetPath = AssetDatabase.GetAssetPath(prefabVariantSurface.navMeshData); + + Assert.AreEqual(theOriginalPrefabNavMeshData, initialVariantNavMeshData, "Fresh variant must have the same NavMeshData as the original prefab."); + + Assert.IsTrue(initialVariantNavMeshData != null, "Prefab must have some NavMeshData."); + Assert.IsTrue(File.Exists(initialVariantAssetPath), "NavMeshData file must exist. ({0})", initialVariantAssetPath); + + yield return BakeNavMeshAsync(() => prefabVariantSurface, k_GrayArea); + + Assert.IsTrue(initialVariantNavMeshData != null, "The initial NavMeshData (from original prefab) must still exist immediately after prefab variant re-bake."); + Assert.IsTrue(File.Exists(initialVariantAssetPath), "The initial NavMeshData file (from original prefab) must exist after prefab variant re-bake. ({0})", initialVariantAssetPath); + + Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); + var unsavedRebakedNavMeshData = prefabVariantSurface.navMeshData; + + yield return BakeNavMeshAsync(() => prefabVariantSurface, k_BrownArea); + + Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); + Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); + + prefabVariantStage.SavePrefab(); + + var theNewVariantNavMeshData = prefabVariantSurface.navMeshData; + var theNewVariantAssetPath = AssetDatabase.GetAssetPath(theNewVariantNavMeshData); + + Assert.IsTrue(File.Exists(theNewVariantAssetPath), "Variant's own NavMeshData exists in a file after saving. ({0})", theNewVariantAssetPath); + Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file of the original prefab still exists after saving the variant. ({0})", theOriginalPrefabAssetPath); + Assert.IsTrue(theOriginalPrefabNavMeshData != null, "Original prefab must still have NavMeshData."); + + StageNavigationManager.instance.GoToMainStage(); + + yield return null; + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefabVariant_WhenCustomizedAndRebaked_OldAssetDiscardedAndParentAssetUnchanged() + { + var prefabVariant = AssetDatabase.LoadAssetAtPath(m_PrefabVariantPath); + var theOriginalPrefab = PrefabUtility.GetOriginalSourceOrVariantRoot(prefabVariant); + + AssetDatabase.OpenAsset(theOriginalPrefab); + var theOriginalPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var theOriginalPrefabSurface = theOriginalPrefabStage.prefabContentsRoot.GetComponent(); + var theOriginalPrefabNavMeshData = theOriginalPrefabSurface.navMeshData; + var theOriginalPrefabAssetPath = AssetDatabase.GetAssetPath(theOriginalPrefabSurface.navMeshData); + + Assert.IsTrue(theOriginalPrefabNavMeshData != null, "Original prefab must have some NavMeshData."); + Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file must exist for the original prefab. ({0})", theOriginalPrefabAssetPath); + + AssetDatabase.OpenAsset(prefabVariant); + var prefabVariantStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabVariantSurface = prefabVariantStage.prefabContentsRoot.GetComponent(); + + yield return BakeNavMeshAsync(() => prefabVariantSurface, k_GrayArea); + prefabVariantStage.SavePrefab(); + + var modifiedVariantNavMeshData = prefabVariantSurface.navMeshData; + var modifiedVariantAssetPath = AssetDatabase.GetAssetPath(prefabVariantSurface.navMeshData); + + Assert.IsTrue(modifiedVariantNavMeshData != null, "Prefab must have some NavMeshData."); + Assert.IsTrue(File.Exists(modifiedVariantAssetPath), "NavMeshData file for modifier variant must exist. ({0})", modifiedVariantAssetPath); + Assert.AreNotEqual(theOriginalPrefabNavMeshData, modifiedVariantNavMeshData, "Modified variant must have a NavMeshData different than that of the original prefab."); + + yield return BakeNavMeshAsync(() => prefabVariantSurface, k_OrangeArea); + + Assert.IsTrue(modifiedVariantNavMeshData != null, "The initial NavMeshData of a modified variant must still exist immediately after prefab variant re-bake."); + Assert.IsTrue(File.Exists(modifiedVariantAssetPath), "The initial NavMeshData file of a modified variant must exist after prefab variant re-bake. ({0})", modifiedVariantAssetPath); + + Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); + var unsavedRebakedNavMeshData = prefabVariantSurface.navMeshData; + + yield return BakeNavMeshAsync(() => prefabVariantSurface, k_RedArea); + Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); + Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); + + prefabVariantStage.SavePrefab(); + var theNewVariantNavMeshData = prefabVariantSurface.navMeshData; + var theNewVariantAssetPath = AssetDatabase.GetAssetPath(theNewVariantNavMeshData); + + Assert.IsTrue(modifiedVariantNavMeshData == null, "Initial NavMeshData of the modified variant must no longer exist after saving the variant."); + // ReSharper disable once HeuristicUnreachableCode - modifiedVariantNavMeshData is affected by BakeNavMeshAsync() + Assert.IsFalse(File.Exists(modifiedVariantAssetPath), "Initial NavMeshData file of the modified and saved variant must no longer exist after saving the variant. ({0})", modifiedVariantAssetPath); + Assert.IsTrue(File.Exists(theNewVariantAssetPath), "Variant's own NavMeshData exists in a file after saving. ({0})", theNewVariantAssetPath); + Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file of the original prefab still exists after saving the variant. ({0})", theOriginalPrefabAssetPath); + Assert.AreNotEqual(theOriginalPrefabNavMeshData, theNewVariantNavMeshData, "Re-baked modified variant must have a NavMeshData different than that of the original prefab."); + + StageNavigationManager.instance.GoToMainStage(); + + yield return null; + } + + static IEnumerator BakeNavMeshAsync(Func getSurface, int defaultArea) + { + var surface = getSurface(); + surface.defaultArea = defaultArea; + NavMeshSurfaceEditor.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshSurfaceEditor.IsSurfaceBaking(surface)); + } + + //static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) + //{ + // var expectedAreaMask = 1 << expectedArea; + + // var areaExists = HasNavMeshAtPosition(pos, expectedAreaMask); + // var otherAreasExist = HasNavMeshAtPosition(pos, ~expectedAreaMask); + // Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); + // if (otherAreasExist) + // { + // for (int i = 0; i < 32; i++) + // { + // if (i == expectedArea) + // continue; + + // var thisOtherAreaExists = HasNavMeshAtPosition(pos, 1 << i); + // if (thisOtherAreaExists) + // { + // Debug.Log(" _another area that exists here " + i); + // } + // } + // } + + // Assert.IsTrue(HasNavMeshAtPosition(pos, expectedAreaMask), "Expected NavMesh with area {0} at position {1}.", expectedArea, pos); + // Assert.IsFalse(HasNavMeshAtPosition(pos, ~expectedAreaMask), "A NavMesh with an area other than {0} exists at position {1}.", expectedArea, pos); + //} + + //public static bool HasNavMeshAtPosition(Vector3 pos, int areaMask = NavMesh.AllAreas, int agentTypeId = 0, float range = 0.1f) + //{ + // NavMeshHit hit; + // var filter = new NavMeshQueryFilter + // { + // areaMask = areaMask, + // agentTypeID = agentTypeId + // }; + // return NavMesh.SamplePosition(pos, out hit, range, filter); + //} +} diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs.meta b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs.meta new file mode 100644 index 00000000..ea1a4397 --- /dev/null +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84d904f3fbe3c1b4c8daab917453682f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From a01dd87d212414c8f5508a03d2c8bd1c23a92466 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Tue, 22 May 2018 17:59:15 +0200 Subject: [PATCH 25/82] When baking a new NavMesh surface inside a prefab do not delete the old asset until the prefab has been saved, because it will be needed again if the changes are discarded. --- .../Editor/NavMeshSurfaceEditor.cs | 152 +++++++++++++++++- 1 file changed, 149 insertions(+), 3 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index f03dc15d..bab82b45 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -49,6 +49,14 @@ struct AsyncBakeOperation static List s_BakeOperations = new List(); + struct SavedPrefabNavMeshData + { + public NavMeshSurface surface; + public NavMeshData navMeshData; + } + + static List s_PrefabNavMeshDataAssets = new List(); + static Styles s_Styles; static bool s_ShowDebugOptions; @@ -131,21 +139,31 @@ static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) if (parentSurface && navSurface.navMeshData == parentSurface.navMeshData) return null; } + + // Do not delete the NavMeshData asset referenced from a prefab until the prefab is saved + var prefabStage = PrefabStageUtility.GetPrefabStage(navSurface.gameObject); + var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(navSurface.gameObject); + if (isPartOfPrefab && IsCurrentPrefabNavMeshDataStored(navSurface)) + return null; + return navSurface.navMeshData; } static void ClearSurface(NavMeshSurface navSurface) { + var hadNavMeshData = navSurface.navMeshData != null; + StoreNavMeshDataIfInPrefab(navSurface); + var assetToDelete = GetNavMeshAssetToDelete(navSurface); navSurface.RemoveData(); navSurface.navMeshData = null; EditorUtility.SetDirty(navSurface); if (assetToDelete) - { AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(assetToDelete)); + + if (hadNavMeshData) EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); - } } Bounds GetBounds() @@ -360,6 +378,8 @@ public static void StartBakingSurfaces(UnityEngine.Object[] surfaces) foreach (NavMeshSurface surf in surfaces) { + StoreNavMeshDataIfInPrefab(surf); + var oper = new AsyncBakeOperation(); oper.bakeData = InitializeBakeData(surf); @@ -404,7 +424,7 @@ static void UpdateAsyncBuildOperations() if (s_BakeOperations.Count == 0) EditorApplication.update -= UpdateAsyncBuildOperations; } - + public static bool IsSurfaceBaking(NavMeshSurface surface) { if (surface == null) @@ -521,5 +541,131 @@ public static void CreateNavMeshSurface(MenuCommand menuCommand) if (view != null) view.MoveToView(go.transform); } + + static void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) + { + var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject); + var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surfaceToStore.gameObject); + if (!isPartOfPrefab) + return; + + // check if data has already been stored for this surface + foreach (var storedAssetInfo in s_PrefabNavMeshDataAssets) + if (storedAssetInfo.surface == surfaceToStore) + return; + + if (s_PrefabNavMeshDataAssets.Count == 0) + { + PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; + PrefabStage.prefabSaving += DeleteStoredNavMeshDataAssetsForOwnedSurfaces; + + PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; + PrefabStage.prefabStageClosing += ForgetUnsavedNavMeshDataChanges; + } + + var isDataOwner = true; + if (PrefabUtility.IsPartOfPrefabInstance(surfaceToStore) && !PrefabUtility.IsPartOfModelPrefab(surfaceToStore)) + { + var basePrefabSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceToStore) as NavMeshSurface; + isDataOwner = basePrefabSurface == null || surfaceToStore.navMeshData != basePrefabSurface.navMeshData; + } + s_PrefabNavMeshDataAssets.Add(new SavedPrefabNavMeshData { surface = surfaceToStore, navMeshData = isDataOwner ? surfaceToStore.navMeshData : null }); + } + + static bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) + { + if (surface == null) + return false; + + foreach (var storedAssetInfo in s_PrefabNavMeshDataAssets) + { + if (storedAssetInfo.surface == surface) + return storedAssetInfo.navMeshData == surface.navMeshData; + } + + return false; + } + + static void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab) + { + // Debug.LogFormat("DeleteStoredNavMeshDataAsset() when saving prefab {0}", gameObjectInPrefab.name); + + var surfaces = gameObjectInPrefab.GetComponentsInChildren(true); + foreach (var surface in surfaces) + DeleteStoredPrefabNavMeshDataAsset(surface); + } + + static void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) + { + for (var i = s_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) + { + var storedAssetInfo = s_PrefabNavMeshDataAssets[i]; + if (storedAssetInfo.surface == surface) + { + var storedNavMeshData = storedAssetInfo.navMeshData; + if (storedNavMeshData != null && storedNavMeshData != surface.navMeshData) + { + var assetPath = AssetDatabase.GetAssetPath(storedNavMeshData); + AssetDatabase.DeleteAsset(assetPath); + } + + s_PrefabNavMeshDataAssets.RemoveAt(i); + break; + } + } + + if (s_PrefabNavMeshDataAssets.Count == 0) + { + PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; + PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; + } + } + + static void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) + { + // Debug.Log("On prefab closing - forget about this object's surfaces and stop caring about prefab saving"); + + if (prefabStage == null) + return; + + var allSurfacesInPrefab = prefabStage.prefabContentsRoot.GetComponentsInChildren(true); + NavMeshSurface surfaceInPrefab = null; + var index = 0; + do + { + if (allSurfacesInPrefab.Length > 0) + surfaceInPrefab = allSurfacesInPrefab[index]; + + for (var i = s_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) + { + var storedPrefabInfo = s_PrefabNavMeshDataAssets[i]; + if (storedPrefabInfo.surface == null) + { + // Debug.LogFormat("A surface from the prefab got deleted after it has baked a new NavMesh but it hasn't saved it. Now the unsaved asset gets deleted. ({0})", storedPrefabInfo.navMeshData); + + // surface got deleted, thus delete its initial NavMeshData asset + if (storedPrefabInfo.navMeshData != null) + { + var assetPath = AssetDatabase.GetAssetPath(storedPrefabInfo.navMeshData); + AssetDatabase.DeleteAsset(assetPath); + } + + s_PrefabNavMeshDataAssets.RemoveAt(i); + } + else if (surfaceInPrefab != null && storedPrefabInfo.surface == surfaceInPrefab) + { + //Debug.LogFormat("The surface {0} from the prefab was storing the original navmesh data and now will be forgotten", surfaceInPrefab); + + s_PrefabNavMeshDataAssets.RemoveAt(i); + } + } + } while (++index < allSurfacesInPrefab.Length); + + if (s_PrefabNavMeshDataAssets.Count == 0) + { + PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; + PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; + } + } } } From be45e46e523d297e2af288bb7d66df02e7f2eb6a Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 23 May 2018 12:53:09 +0200 Subject: [PATCH 26/82] Moved NavMeshSurfaceEditor.cs to NavMeshDataAssetManager.cs in order to turn it into a copy of the file. --- .../{NavMeshSurfaceEditor.cs => NavMeshDataAssetManager.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Assets/NavMeshComponents/Editor/{NavMeshSurfaceEditor.cs => NavMeshDataAssetManager.cs} (100%) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs similarity index 100% rename from Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs rename to Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs From c2f5400023b3fb73797cde69cc93a5bf4b110e7a Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 23 May 2018 12:56:51 +0200 Subject: [PATCH 27/82] Temporarily rename NavMeshSurfaceEditor.cs for the purpose of making a copy of the file. --- .../{NavMeshSurfaceEditor.cs => NavMeshSurfaceEditorTemp.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Assets/NavMeshComponents/Editor/{NavMeshSurfaceEditor.cs => NavMeshSurfaceEditorTemp.cs} (100%) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditorTemp.cs similarity index 100% rename from Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs rename to Assets/NavMeshComponents/Editor/NavMeshSurfaceEditorTemp.cs From 4f2b60d0842b8ef36dc0ca45e62be35b6484a278 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 23 May 2018 13:01:53 +0200 Subject: [PATCH 28/82] Restore the original name for NavMeshSurfaceEditor.cs . --- .../{NavMeshSurfaceEditorTemp.cs => NavMeshSurfaceEditor.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Assets/NavMeshComponents/Editor/{NavMeshSurfaceEditorTemp.cs => NavMeshSurfaceEditor.cs} (100%) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditorTemp.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs similarity index 100% rename from Assets/NavMeshComponents/Editor/NavMeshSurfaceEditorTemp.cs rename to Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs From 09a26f48c89dfd3e5045ebf8a5aa4b8eda9d3576 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 23 May 2018 15:45:00 +0200 Subject: [PATCH 29/82] Move the NavMeshData asset management code from NavMeshSurfaceEditor to NavMeshDataAssetManager in order to separate responsibilities. --- .../Editor/NavMeshDataAssetManager.cs | 402 +----------------- .../Editor/NavMeshDataAssetManager.cs.meta | 11 + .../Editor/NavMeshSurfaceEditor.cs | 307 +------------ .../Editor/NavMeshSurfaceInPrefabTests.cs | 20 +- .../NavMeshSurfaceInPrefabVariantTests.cs | 6 +- 5 files changed, 50 insertions(+), 696 deletions(-) create mode 100644 Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta diff --git a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs index bab82b45..3f9db548 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs @@ -1,53 +1,23 @@ using System.Collections.Generic; using System.IO; -using System.Linq; using UnityEditor.Experimental.SceneManagement; -using UnityEditor.IMGUI.Controls; using UnityEditor.SceneManagement; -using UnityEditorInternal; using UnityEngine.AI; using UnityEngine; namespace UnityEditor.AI { - [CanEditMultipleObjects] - [CustomEditor(typeof(NavMeshSurface))] - class NavMeshSurfaceEditor : Editor + class NavMeshDataAssetManager : ScriptableSingleton { - SerializedProperty m_AgentTypeID; - SerializedProperty m_BuildHeightMesh; - SerializedProperty m_Center; - SerializedProperty m_CollectObjects; - SerializedProperty m_DefaultArea; - SerializedProperty m_LayerMask; - SerializedProperty m_OverrideTileSize; - SerializedProperty m_OverrideVoxelSize; - SerializedProperty m_Size; - SerializedProperty m_TileSize; - SerializedProperty m_UseGeometry; - SerializedProperty m_VoxelSize; - - class Styles - { - public readonly GUIContent m_LayerMask = new GUIContent("Include Layers"); - - public readonly GUIContent m_ShowInputGeom = new GUIContent("Show Input Geom"); - public readonly GUIContent m_ShowVoxels = new GUIContent("Show Voxels"); - public readonly GUIContent m_ShowRegions = new GUIContent("Show Regions"); - public readonly GUIContent m_ShowRawContours = new GUIContent("Show Raw Contours"); - public readonly GUIContent m_ShowContours = new GUIContent("Show Contours"); - public readonly GUIContent m_ShowPolyMesh = new GUIContent("Show Poly Mesh"); - public readonly GUIContent m_ShowPolyMeshDetail = new GUIContent("Show Poly Mesh Detail"); - } - - struct AsyncBakeOperation + internal struct AsyncBakeOperation { public NavMeshSurface surface; public NavMeshData bakeData; public AsyncOperation bakeOperation; } - static List s_BakeOperations = new List(); + List s_BakeOperations = new List(); + internal List GetBakeOperations() { return s_BakeOperations; } struct SavedPrefabNavMeshData { @@ -55,47 +25,9 @@ struct SavedPrefabNavMeshData public NavMeshData navMeshData; } - static List s_PrefabNavMeshDataAssets = new List(); - - static Styles s_Styles; - - static bool s_ShowDebugOptions; - - static Color s_HandleColor = new Color(127f, 214f, 244f, 100f) / 255; - static Color s_HandleColorSelected = new Color(127f, 214f, 244f, 210f) / 255; - static Color s_HandleColorDisabled = new Color(127f * 0.75f, 214f * 0.75f, 244f * 0.75f, 100f) / 255; - - BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle(); - - bool editingCollider - { - get { return EditMode.editMode == EditMode.SceneViewEditMode.Collider && EditMode.IsOwner(this); } - } + List s_PrefabNavMeshDataAssets = new List(); - void OnEnable() - { - m_AgentTypeID = serializedObject.FindProperty("m_AgentTypeID"); - m_BuildHeightMesh = serializedObject.FindProperty("m_BuildHeightMesh"); - m_Center = serializedObject.FindProperty("m_Center"); - m_CollectObjects = serializedObject.FindProperty("m_CollectObjects"); - m_DefaultArea = serializedObject.FindProperty("m_DefaultArea"); - m_LayerMask = serializedObject.FindProperty("m_LayerMask"); - m_OverrideTileSize = serializedObject.FindProperty("m_OverrideTileSize"); - m_OverrideVoxelSize = serializedObject.FindProperty("m_OverrideVoxelSize"); - m_Size = serializedObject.FindProperty("m_Size"); - m_TileSize = serializedObject.FindProperty("m_TileSize"); - m_UseGeometry = serializedObject.FindProperty("m_UseGeometry"); - m_VoxelSize = serializedObject.FindProperty("m_VoxelSize"); - - NavMeshVisualizationSettings.showNavigation++; - } - - void OnDisable() - { - NavMeshVisualizationSettings.showNavigation--; - } - - public static string GetAndEnsureTargetPath(NavMeshSurface surface) + public string GetAndEnsureTargetPath(NavMeshSurface surface) { // Create directory for the asset if it does not exist yet. var activeScenePath = surface.gameObject.scene.path; @@ -121,7 +53,7 @@ public static string GetAndEnsureTargetPath(NavMeshSurface surface) return targetPath; } - static void CreateNavMeshAsset(NavMeshSurface surface) + void CreateNavMeshAsset(NavMeshSurface surface) { var targetPath = GetAndEnsureTargetPath(surface); @@ -130,7 +62,7 @@ static void CreateNavMeshAsset(NavMeshSurface surface) AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath); } - static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) + NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) { if (PrefabUtility.IsPartOfPrefabInstance(navSurface) && !PrefabUtility.IsPartOfModelPrefab(navSurface)) { @@ -149,7 +81,7 @@ static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) return navSurface.navMeshData; } - static void ClearSurface(NavMeshSurface navSurface) + void ClearSurface(NavMeshSurface navSurface) { var hadNavMeshData = navSurface.navMeshData != null; StoreNavMeshDataIfInPrefab(navSurface); @@ -166,211 +98,7 @@ static void ClearSurface(NavMeshSurface navSurface) EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); } - Bounds GetBounds() - { - var navSurface = (NavMeshSurface)target; - return new Bounds(navSurface.transform.position, navSurface.size); - } - - public override void OnInspectorGUI() - { - if (s_Styles == null) - s_Styles = new Styles(); - - serializedObject.Update(); - - var bs = NavMesh.GetSettingsByID(m_AgentTypeID.intValue); - - if (bs.agentTypeID != -1) - { - // Draw image - const float diagramHeight = 80.0f; - Rect agentDiagramRect = EditorGUILayout.GetControlRect(false, diagramHeight); - NavMeshEditorHelpers.DrawAgentDiagram(agentDiagramRect, bs.agentRadius, bs.agentHeight, bs.agentClimb, bs.agentSlope); - } - NavMeshComponentsGUIUtility.AgentTypePopup("Agent Type", m_AgentTypeID); - - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(m_CollectObjects); - if ((CollectObjects)m_CollectObjects.enumValueIndex == CollectObjects.Volume) - { - EditorGUI.indentLevel++; - - EditMode.DoEditModeInspectorModeButton(EditMode.SceneViewEditMode.Collider, "Edit Volume", - EditorGUIUtility.IconContent("EditCollider"), GetBounds, this); - EditorGUILayout.PropertyField(m_Size); - EditorGUILayout.PropertyField(m_Center); - - EditorGUI.indentLevel--; - } - else - { - if (editingCollider) - EditMode.QuitEditMode(); - } - - EditorGUILayout.PropertyField(m_LayerMask, s_Styles.m_LayerMask); - EditorGUILayout.PropertyField(m_UseGeometry); - - EditorGUILayout.Space(); - - EditorGUILayout.Space(); - - m_OverrideVoxelSize.isExpanded = EditorGUILayout.Foldout(m_OverrideVoxelSize.isExpanded, "Advanced"); - if (m_OverrideVoxelSize.isExpanded) - { - EditorGUI.indentLevel++; - - NavMeshComponentsGUIUtility.AreaPopup("Default Area", m_DefaultArea); - - // Override voxel size. - EditorGUILayout.PropertyField(m_OverrideVoxelSize); - - using (new EditorGUI.DisabledScope(!m_OverrideVoxelSize.boolValue || m_OverrideVoxelSize.hasMultipleDifferentValues)) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(m_VoxelSize); - - if (!m_OverrideVoxelSize.hasMultipleDifferentValues) - { - if (!m_AgentTypeID.hasMultipleDifferentValues) - { - float voxelsPerRadius = m_VoxelSize.floatValue > 0.0f ? (bs.agentRadius / m_VoxelSize.floatValue) : 0.0f; - EditorGUILayout.LabelField(" ", voxelsPerRadius.ToString("0.00") + " voxels per agent radius", EditorStyles.miniLabel); - } - if (m_OverrideVoxelSize.boolValue) - EditorGUILayout.HelpBox("Voxel size controls how accurately the navigation mesh is generated from the level geometry. A good voxel size is 2-4 voxels per agent radius. Making voxel size smaller will increase build time.", MessageType.None); - } - EditorGUI.indentLevel--; - } - - // Override tile size - EditorGUILayout.PropertyField(m_OverrideTileSize); - - using (new EditorGUI.DisabledScope(!m_OverrideTileSize.boolValue || m_OverrideTileSize.hasMultipleDifferentValues)) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(m_TileSize); - - if (!m_TileSize.hasMultipleDifferentValues && !m_VoxelSize.hasMultipleDifferentValues) - { - float tileWorldSize = m_TileSize.intValue * m_VoxelSize.floatValue; - EditorGUILayout.LabelField(" ", tileWorldSize.ToString("0.00") + " world units", EditorStyles.miniLabel); - } - - if (!m_OverrideTileSize.hasMultipleDifferentValues) - { - if (m_OverrideTileSize.boolValue) - EditorGUILayout.HelpBox("Tile size controls the how local the changes to the world are (rebuild or carve). Small tile size allows more local changes, while potentially generating more data overall.", MessageType.None); - } - EditorGUI.indentLevel--; - } - - - // Height mesh - using (new EditorGUI.DisabledScope(true)) - { - EditorGUILayout.PropertyField(m_BuildHeightMesh); - } - - EditorGUILayout.Space(); - EditorGUI.indentLevel--; - } - - EditorGUILayout.Space(); - - serializedObject.ApplyModifiedProperties(); - - var hadError = false; - var multipleTargets = targets.Length > 1; - foreach (NavMeshSurface navSurface in targets) - { - var settings = navSurface.GetBuildSettings(); - // Calculating bounds is potentially expensive when unbounded - so here we just use the center/size. - // It means the validation is not checking vertical voxel limit correctly when the surface is set to something else than "in volume". - var bounds = new Bounds(Vector3.zero, Vector3.zero); - if (navSurface.collectObjects == CollectObjects.Volume) - { - bounds = new Bounds(navSurface.center, navSurface.size); - } - - var errors = settings.ValidationReport(bounds); - if (errors.Length > 0) - { - if (multipleTargets) - EditorGUILayout.LabelField(navSurface.name); - foreach (var err in errors) - { - EditorGUILayout.HelpBox(err, MessageType.Warning); - } - GUILayout.BeginHorizontal(); - GUILayout.Space(EditorGUIUtility.labelWidth); - if (GUILayout.Button("Open Agent Settings...", EditorStyles.miniButton)) - NavMeshEditorHelpers.OpenAgentSettings(navSurface.agentTypeID); - GUILayout.EndHorizontal(); - hadError = true; - } - } - - if (hadError) - EditorGUILayout.Space(); - - using (new EditorGUI.DisabledScope(Application.isPlaying || m_AgentTypeID.intValue == -1)) - { - GUILayout.BeginHorizontal(); - GUILayout.Space(EditorGUIUtility.labelWidth); - if (GUILayout.Button("Clear")) - { - ClearSurfaces(targets); - SceneView.RepaintAll(); - } - - if (GUILayout.Button("Bake")) - { - StartBakingSurfaces(targets); - } - - GUILayout.EndHorizontal(); - } - - // Show progress for the selected targets - for (int i = s_BakeOperations.Count - 1; i >= 0; --i) - { - if (!targets.Contains(s_BakeOperations[i].surface)) - continue; - - var oper = s_BakeOperations[i].bakeOperation; - if (oper == null) - continue; - - var p = oper.progress; - if (oper.isDone) - { - SceneView.RepaintAll(); - continue; - } - - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("Cancel", EditorStyles.miniButton)) - { - var bakeData = s_BakeOperations[i].bakeData; - UnityEngine.AI.NavMeshBuilder.Cancel(bakeData); - s_BakeOperations.RemoveAt(i); - } - - EditorGUI.ProgressBar(EditorGUILayout.GetControlRect(), p, "Baking: " + (int)(100 * p) + "%"); - if (p <= 1) - Repaint(); - - GUILayout.EndHorizontal(); - } - } - - public static void StartBakingSurfaces(UnityEngine.Object[] surfaces) + public void StartBakingSurfaces(UnityEngine.Object[] surfaces) { // Remove first to avoid double registration of the callback EditorApplication.update -= UpdateAsyncBuildOperations; @@ -398,7 +126,7 @@ static NavMeshData InitializeBakeData(NavMeshSurface surface) , surface.transform.position, surface.transform.rotation); } - static void UpdateAsyncBuildOperations() + void UpdateAsyncBuildOperations() { foreach (var oper in s_BakeOperations) { @@ -425,7 +153,7 @@ static void UpdateAsyncBuildOperations() EditorApplication.update -= UpdateAsyncBuildOperations; } - public static bool IsSurfaceBaking(NavMeshSurface surface) + public bool IsSurfaceBaking(NavMeshSurface surface) { if (surface == null) return false; @@ -442,107 +170,13 @@ public static bool IsSurfaceBaking(NavMeshSurface surface) return false; } - public static void ClearSurfaces(UnityEngine.Object[] surfaces) + public void ClearSurfaces(UnityEngine.Object[] surfaces) { foreach (NavMeshSurface s in surfaces) ClearSurface(s); } - [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)] - static void RenderBoxGizmoSelected(NavMeshSurface navSurface, GizmoType gizmoType) - { - RenderBoxGizmo(navSurface, gizmoType, true); - } - - [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)] - static void RenderBoxGizmoNotSelected(NavMeshSurface navSurface, GizmoType gizmoType) - { - if (NavMeshVisualizationSettings.showNavigation > 0) - RenderBoxGizmo(navSurface, gizmoType, false); - else - Gizmos.DrawIcon(navSurface.transform.position, "NavMeshSurface Icon", true); - } - - static void RenderBoxGizmo(NavMeshSurface navSurface, GizmoType gizmoType, bool selected) - { - var color = selected ? s_HandleColorSelected : s_HandleColor; - if (!navSurface.enabled) - color = s_HandleColorDisabled; - - var oldColor = Gizmos.color; - var oldMatrix = Gizmos.matrix; - - // Use the unscaled matrix for the NavMeshSurface - var localToWorld = Matrix4x4.TRS(navSurface.transform.position, navSurface.transform.rotation, Vector3.one); - Gizmos.matrix = localToWorld; - - if (navSurface.collectObjects == CollectObjects.Volume) - { - Gizmos.color = color; - Gizmos.DrawWireCube(navSurface.center, navSurface.size); - - if (selected && navSurface.enabled) - { - var colorTrans = new Color(color.r * 0.75f, color.g * 0.75f, color.b * 0.75f, color.a * 0.15f); - Gizmos.color = colorTrans; - Gizmos.DrawCube(navSurface.center, navSurface.size); - } - } - else - { - if (navSurface.navMeshData != null) - { - var bounds = navSurface.navMeshData.sourceBounds; - Gizmos.color = Color.grey; - Gizmos.DrawWireCube(bounds.center, bounds.size); - } - } - - Gizmos.matrix = oldMatrix; - Gizmos.color = oldColor; - - Gizmos.DrawIcon(navSurface.transform.position, "NavMeshSurface Icon", true); - } - - void OnSceneGUI() - { - if (!editingCollider) - return; - - var navSurface = (NavMeshSurface)target; - var color = navSurface.enabled ? s_HandleColor : s_HandleColorDisabled; - var localToWorld = Matrix4x4.TRS(navSurface.transform.position, navSurface.transform.rotation, Vector3.one); - using (new Handles.DrawingScope(color, localToWorld)) - { - m_BoundsHandle.center = navSurface.center; - m_BoundsHandle.size = navSurface.size; - - EditorGUI.BeginChangeCheck(); - m_BoundsHandle.DrawHandle(); - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(navSurface, "Modified NavMesh Surface"); - Vector3 center = m_BoundsHandle.center; - Vector3 size = m_BoundsHandle.size; - navSurface.center = center; - navSurface.size = size; - EditorUtility.SetDirty(target); - } - } - } - - [MenuItem("GameObject/AI/NavMesh Surface", false, 2000)] - public static void CreateNavMeshSurface(MenuCommand menuCommand) - { - var parent = menuCommand.context as GameObject; - var go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Surface", parent); - go.AddComponent(); - var view = SceneView.lastActiveSceneView; - if (view != null) - view.MoveToView(go.transform); - } - - static void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) + void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) { var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject); var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surfaceToStore.gameObject); @@ -572,7 +206,7 @@ static void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) s_PrefabNavMeshDataAssets.Add(new SavedPrefabNavMeshData { surface = surfaceToStore, navMeshData = isDataOwner ? surfaceToStore.navMeshData : null }); } - static bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) + bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) { if (surface == null) return false; @@ -586,7 +220,7 @@ static bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) return false; } - static void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab) + void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab) { // Debug.LogFormat("DeleteStoredNavMeshDataAsset() when saving prefab {0}", gameObjectInPrefab.name); @@ -595,7 +229,7 @@ static void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectI DeleteStoredPrefabNavMeshDataAsset(surface); } - static void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) + void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) { for (var i = s_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) { @@ -621,7 +255,7 @@ static void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) } } - static void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) + void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) { // Debug.Log("On prefab closing - forget about this object's surfaces and stop caring about prefab saving"); diff --git a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta b/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta new file mode 100644 index 00000000..d6567a83 --- /dev/null +++ b/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 178d8366aa1616849b91b66285c51454 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index bab82b45..0934efe0 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -40,23 +40,6 @@ class Styles public readonly GUIContent m_ShowPolyMeshDetail = new GUIContent("Show Poly Mesh Detail"); } - struct AsyncBakeOperation - { - public NavMeshSurface surface; - public NavMeshData bakeData; - public AsyncOperation bakeOperation; - } - - static List s_BakeOperations = new List(); - - struct SavedPrefabNavMeshData - { - public NavMeshSurface surface; - public NavMeshData navMeshData; - } - - static List s_PrefabNavMeshDataAssets = new List(); - static Styles s_Styles; static bool s_ShowDebugOptions; @@ -95,77 +78,6 @@ void OnDisable() NavMeshVisualizationSettings.showNavigation--; } - public static string GetAndEnsureTargetPath(NavMeshSurface surface) - { - // Create directory for the asset if it does not exist yet. - var activeScenePath = surface.gameObject.scene.path; - - var targetPath = "Assets"; - if (!string.IsNullOrEmpty(activeScenePath)) - { - targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath)); - } - else - { - var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject); - var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surface.gameObject); - if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.prefabAssetPath)) - { - var prefabDirectoryName = Path.GetDirectoryName(prefabStage.prefabAssetPath); - if (!string.IsNullOrEmpty(prefabDirectoryName)) - targetPath = prefabDirectoryName; - } - } - if (!Directory.Exists(targetPath)) - Directory.CreateDirectory(targetPath); - return targetPath; - } - - static void CreateNavMeshAsset(NavMeshSurface surface) - { - var targetPath = GetAndEnsureTargetPath(surface); - - var combinedAssetPath = Path.Combine(targetPath, "NavMesh-" + surface.name + ".asset"); - combinedAssetPath = AssetDatabase.GenerateUniqueAssetPath(combinedAssetPath); - AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath); - } - - static NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) - { - if (PrefabUtility.IsPartOfPrefabInstance(navSurface) && !PrefabUtility.IsPartOfModelPrefab(navSurface)) - { - // Don't allow deleting the asset belonging to the prefab parent - var parentSurface = PrefabUtility.GetCorrespondingObjectFromSource(navSurface) as NavMeshSurface; - if (parentSurface && navSurface.navMeshData == parentSurface.navMeshData) - return null; - } - - // Do not delete the NavMeshData asset referenced from a prefab until the prefab is saved - var prefabStage = PrefabStageUtility.GetPrefabStage(navSurface.gameObject); - var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(navSurface.gameObject); - if (isPartOfPrefab && IsCurrentPrefabNavMeshDataStored(navSurface)) - return null; - - return navSurface.navMeshData; - } - - static void ClearSurface(NavMeshSurface navSurface) - { - var hadNavMeshData = navSurface.navMeshData != null; - StoreNavMeshDataIfInPrefab(navSurface); - - var assetToDelete = GetNavMeshAssetToDelete(navSurface); - navSurface.RemoveData(); - navSurface.navMeshData = null; - EditorUtility.SetDirty(navSurface); - - if (assetToDelete) - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(assetToDelete)); - - if (hadNavMeshData) - EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); - } - Bounds GetBounds() { var navSurface = (NavMeshSurface)target; @@ -324,25 +236,26 @@ public override void OnInspectorGUI() GUILayout.Space(EditorGUIUtility.labelWidth); if (GUILayout.Button("Clear")) { - ClearSurfaces(targets); + NavMeshDataAssetManager.instance.ClearSurfaces(targets); SceneView.RepaintAll(); } if (GUILayout.Button("Bake")) { - StartBakingSurfaces(targets); + NavMeshDataAssetManager.instance.StartBakingSurfaces(targets); } GUILayout.EndHorizontal(); } // Show progress for the selected targets - for (int i = s_BakeOperations.Count - 1; i >= 0; --i) + var bakeOperations = NavMeshDataAssetManager.instance.GetBakeOperations(); + for (int i = bakeOperations.Count - 1; i >= 0; --i) { - if (!targets.Contains(s_BakeOperations[i].surface)) + if (!targets.Contains(bakeOperations[i].surface)) continue; - var oper = s_BakeOperations[i].bakeOperation; + var oper = bakeOperations[i].bakeOperation; if (oper == null) continue; @@ -357,9 +270,9 @@ public override void OnInspectorGUI() if (GUILayout.Button("Cancel", EditorStyles.miniButton)) { - var bakeData = s_BakeOperations[i].bakeData; + var bakeData = bakeOperations[i].bakeData; UnityEngine.AI.NavMeshBuilder.Cancel(bakeData); - s_BakeOperations.RemoveAt(i); + bakeOperations.RemoveAt(i); } EditorGUI.ProgressBar(EditorGUILayout.GetControlRect(), p, "Baking: " + (int)(100 * p) + "%"); @@ -370,84 +283,6 @@ public override void OnInspectorGUI() } } - public static void StartBakingSurfaces(UnityEngine.Object[] surfaces) - { - // Remove first to avoid double registration of the callback - EditorApplication.update -= UpdateAsyncBuildOperations; - EditorApplication.update += UpdateAsyncBuildOperations; - - foreach (NavMeshSurface surf in surfaces) - { - StoreNavMeshDataIfInPrefab(surf); - - var oper = new AsyncBakeOperation(); - - oper.bakeData = InitializeBakeData(surf); - oper.bakeOperation = surf.UpdateNavMesh(oper.bakeData); - oper.surface = surf; - - s_BakeOperations.Add(oper); - } - } - - static NavMeshData InitializeBakeData(NavMeshSurface surface) - { - var emptySources = new List(); - var emptyBounds = new Bounds(); - return UnityEngine.AI.NavMeshBuilder.BuildNavMeshData(surface.GetBuildSettings(), emptySources, emptyBounds - , surface.transform.position, surface.transform.rotation); - } - - static void UpdateAsyncBuildOperations() - { - foreach (var oper in s_BakeOperations) - { - if (oper.surface == null || oper.bakeOperation == null) - continue; - - if (oper.bakeOperation.isDone) - { - var surface = oper.surface; - var delete = GetNavMeshAssetToDelete(surface); - if (delete != null) - AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(delete)); - - surface.RemoveData(); - surface.navMeshData = oper.bakeData; - if (surface.isActiveAndEnabled) - surface.AddData(); - CreateNavMeshAsset(surface); - EditorSceneManager.MarkSceneDirty(surface.gameObject.scene); - } - } - s_BakeOperations.RemoveAll(o => o.bakeOperation == null || o.bakeOperation.isDone); - if (s_BakeOperations.Count == 0) - EditorApplication.update -= UpdateAsyncBuildOperations; - } - - public static bool IsSurfaceBaking(NavMeshSurface surface) - { - if (surface == null) - return false; - - foreach (var oper in s_BakeOperations) - { - if (oper.surface == null || oper.bakeOperation == null) - continue; - - if (oper.surface == surface) - return true; - } - - return false; - } - - public static void ClearSurfaces(UnityEngine.Object[] surfaces) - { - foreach (NavMeshSurface s in surfaces) - ClearSurface(s); - } - [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)] static void RenderBoxGizmoSelected(NavMeshSurface navSurface, GizmoType gizmoType) { @@ -541,131 +376,5 @@ public static void CreateNavMeshSurface(MenuCommand menuCommand) if (view != null) view.MoveToView(go.transform); } - - static void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) - { - var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject); - var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surfaceToStore.gameObject); - if (!isPartOfPrefab) - return; - - // check if data has already been stored for this surface - foreach (var storedAssetInfo in s_PrefabNavMeshDataAssets) - if (storedAssetInfo.surface == surfaceToStore) - return; - - if (s_PrefabNavMeshDataAssets.Count == 0) - { - PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; - PrefabStage.prefabSaving += DeleteStoredNavMeshDataAssetsForOwnedSurfaces; - - PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; - PrefabStage.prefabStageClosing += ForgetUnsavedNavMeshDataChanges; - } - - var isDataOwner = true; - if (PrefabUtility.IsPartOfPrefabInstance(surfaceToStore) && !PrefabUtility.IsPartOfModelPrefab(surfaceToStore)) - { - var basePrefabSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceToStore) as NavMeshSurface; - isDataOwner = basePrefabSurface == null || surfaceToStore.navMeshData != basePrefabSurface.navMeshData; - } - s_PrefabNavMeshDataAssets.Add(new SavedPrefabNavMeshData { surface = surfaceToStore, navMeshData = isDataOwner ? surfaceToStore.navMeshData : null }); - } - - static bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) - { - if (surface == null) - return false; - - foreach (var storedAssetInfo in s_PrefabNavMeshDataAssets) - { - if (storedAssetInfo.surface == surface) - return storedAssetInfo.navMeshData == surface.navMeshData; - } - - return false; - } - - static void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab) - { - // Debug.LogFormat("DeleteStoredNavMeshDataAsset() when saving prefab {0}", gameObjectInPrefab.name); - - var surfaces = gameObjectInPrefab.GetComponentsInChildren(true); - foreach (var surface in surfaces) - DeleteStoredPrefabNavMeshDataAsset(surface); - } - - static void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) - { - for (var i = s_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) - { - var storedAssetInfo = s_PrefabNavMeshDataAssets[i]; - if (storedAssetInfo.surface == surface) - { - var storedNavMeshData = storedAssetInfo.navMeshData; - if (storedNavMeshData != null && storedNavMeshData != surface.navMeshData) - { - var assetPath = AssetDatabase.GetAssetPath(storedNavMeshData); - AssetDatabase.DeleteAsset(assetPath); - } - - s_PrefabNavMeshDataAssets.RemoveAt(i); - break; - } - } - - if (s_PrefabNavMeshDataAssets.Count == 0) - { - PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; - PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; - } - } - - static void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) - { - // Debug.Log("On prefab closing - forget about this object's surfaces and stop caring about prefab saving"); - - if (prefabStage == null) - return; - - var allSurfacesInPrefab = prefabStage.prefabContentsRoot.GetComponentsInChildren(true); - NavMeshSurface surfaceInPrefab = null; - var index = 0; - do - { - if (allSurfacesInPrefab.Length > 0) - surfaceInPrefab = allSurfacesInPrefab[index]; - - for (var i = s_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) - { - var storedPrefabInfo = s_PrefabNavMeshDataAssets[i]; - if (storedPrefabInfo.surface == null) - { - // Debug.LogFormat("A surface from the prefab got deleted after it has baked a new NavMesh but it hasn't saved it. Now the unsaved asset gets deleted. ({0})", storedPrefabInfo.navMeshData); - - // surface got deleted, thus delete its initial NavMeshData asset - if (storedPrefabInfo.navMeshData != null) - { - var assetPath = AssetDatabase.GetAssetPath(storedPrefabInfo.navMeshData); - AssetDatabase.DeleteAsset(assetPath); - } - - s_PrefabNavMeshDataAssets.RemoveAt(i); - } - else if (surfaceInPrefab != null && storedPrefabInfo.surface == surfaceInPrefab) - { - //Debug.LogFormat("The surface {0} from the prefab was storing the original navmesh data and now will be forgotten", surfaceInPrefab); - - s_PrefabNavMeshDataAssets.RemoveAt(i); - } - } - } while (++index < allSurfacesInPrefab.Length); - - if (s_PrefabNavMeshDataAssets.Count == 0) - { - PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; - PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; - } - } } } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 4be27574..574d2074 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -120,7 +120,7 @@ public IEnumerator TearDown() // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); // if (prefabSurface != null) // { - // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); + // NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); // } // } @@ -243,7 +243,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt AssetDatabase.OpenAsset(prefab); var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); - NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); + NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); @@ -357,7 +357,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -396,7 +396,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); var initialPrefabNavMeshData = instanceSurface.navMeshData; - NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -490,7 +490,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(prefabSurface); + var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -585,7 +585,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -664,7 +664,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - NavMeshSurfaceEditor.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -722,7 +722,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset Assert.IsNotNull(instanceSurface); yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - var assetFolderPath = NavMeshSurfaceEditor.GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -793,7 +793,7 @@ static IEnumerator BakeNavMeshAsync(Func getSurface, int default { var surface = getSurface(); surface.defaultArea = defaultArea; - NavMeshSurfaceEditor.StartBakingSurfaces(new Object[] { surface }); - yield return new WaitWhile(() => NavMeshSurfaceEditor.IsSurfaceBaking(surface)); + NavMeshDataAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshDataAssetManager.instance.IsSurfaceBaking(surface)); } } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index cb14a4a6..c1d79c4f 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -118,7 +118,7 @@ public IEnumerator TearDown() // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); // if (prefabSurface != null) // { - // NavMeshSurfaceEditor.ClearSurfaces(new Object[] { prefabSurface }); + // NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); // } // } @@ -243,8 +243,8 @@ static IEnumerator BakeNavMeshAsync(Func getSurface, int default { var surface = getSurface(); surface.defaultArea = defaultArea; - NavMeshSurfaceEditor.StartBakingSurfaces(new Object[] { surface }); - yield return new WaitWhile(() => NavMeshSurfaceEditor.IsSurfaceBaking(surface)); + NavMeshDataAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshDataAssetManager.instance.IsSurfaceBaking(surface)); } //static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) From 0679f4c842f5ca2ff39a7eef0673085f5ed831a1 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 23 May 2018 15:56:54 +0200 Subject: [PATCH 30/82] Rename NavMeshDataAssetManager to NavMeshAssetManager. --- ...aAssetManager.cs => NavMeshAssetManager.cs} | 2 +- ...ger.cs.meta => NavMeshAssetManager.cs.meta} | 0 .../Editor/NavMeshSurfaceEditor.cs | 6 +++--- .../Editor/NavMeshSurfaceInPrefabTests.cs | 18 +++++++++--------- .../NavMeshSurfaceInPrefabVariantTests.cs | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) rename Assets/NavMeshComponents/Editor/{NavMeshDataAssetManager.cs => NavMeshAssetManager.cs} (99%) rename Assets/NavMeshComponents/Editor/{NavMeshDataAssetManager.cs.meta => NavMeshAssetManager.cs.meta} (100%) diff --git a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs similarity index 99% rename from Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs rename to Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs index 3f9db548..57f1ea7a 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs @@ -7,7 +7,7 @@ namespace UnityEditor.AI { - class NavMeshDataAssetManager : ScriptableSingleton + class NavMeshAssetManager : ScriptableSingleton { internal struct AsyncBakeOperation { diff --git a/Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta similarity index 100% rename from Assets/NavMeshComponents/Editor/NavMeshDataAssetManager.cs.meta rename to Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 0934efe0..1118adc8 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -236,20 +236,20 @@ public override void OnInspectorGUI() GUILayout.Space(EditorGUIUtility.labelWidth); if (GUILayout.Button("Clear")) { - NavMeshDataAssetManager.instance.ClearSurfaces(targets); + NavMeshAssetManager.instance.ClearSurfaces(targets); SceneView.RepaintAll(); } if (GUILayout.Button("Bake")) { - NavMeshDataAssetManager.instance.StartBakingSurfaces(targets); + NavMeshAssetManager.instance.StartBakingSurfaces(targets); } GUILayout.EndHorizontal(); } // Show progress for the selected targets - var bakeOperations = NavMeshDataAssetManager.instance.GetBakeOperations(); + var bakeOperations = NavMeshAssetManager.instance.GetBakeOperations(); for (int i = bakeOperations.Count - 1; i >= 0; --i) { if (!targets.Contains(bakeOperations[i].surface)) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 574d2074..d9fbec53 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -243,7 +243,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt AssetDatabase.OpenAsset(prefab); var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); - NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); + NavMeshAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); @@ -357,7 +357,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -396,7 +396,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); var initialPrefabNavMeshData = instanceSurface.navMeshData; - NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -490,7 +490,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(prefabSurface); + var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(prefabSurface); var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -585,7 +585,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -664,7 +664,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); + NavMeshAssetManager.instance.ClearSurfaces(new Object[] { instanceSurface }); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -722,7 +722,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset Assert.IsNotNull(instanceSurface); yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - var assetFolderPath = NavMeshDataAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); + var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); @@ -793,7 +793,7 @@ static IEnumerator BakeNavMeshAsync(Func getSurface, int default { var surface = getSurface(); surface.defaultArea = defaultArea; - NavMeshDataAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); - yield return new WaitWhile(() => NavMeshDataAssetManager.instance.IsSurfaceBaking(surface)); + NavMeshAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshAssetManager.instance.IsSurfaceBaking(surface)); } } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index c1d79c4f..2564447e 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -243,8 +243,8 @@ static IEnumerator BakeNavMeshAsync(Func getSurface, int default { var surface = getSurface(); surface.defaultArea = defaultArea; - NavMeshDataAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); - yield return new WaitWhile(() => NavMeshDataAssetManager.instance.IsSurfaceBaking(surface)); + NavMeshAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshAssetManager.instance.IsSurfaceBaking(surface)); } //static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) From 9b678af3b40c937f24e0c017e72a052ec39f44e1 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 24 May 2018 11:22:48 +0200 Subject: [PATCH 31/82] Replace the use of Assert.IsNull/IsNotNull() with NavMeshData arguments because the methods don't check correctly the null of UnityEngine.Object. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index d9fbec53..ece5a3da 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -238,7 +238,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt Assert.IsNotNull(instance); instance.name = "PrefabInstance" + m_TestCounter; var instanceSurface = instance.GetComponent(); - Assert.IsNotNull(instanceSurface.navMeshData); + Assert.IsTrue(instanceSurface.navMeshData != null, "NavMeshSurface in prefab instance must have NavMeshData."); AssetDatabase.OpenAsset(prefab); var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); @@ -247,7 +247,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt prefabStage.SavePrefab(); StageNavigationManager.instance.GoToMainStage(); - Assert.IsNull(instanceSurface.navMeshData); + Assert.IsTrue(instanceSurface.navMeshData == null, + "After the NavMeshSurface in the prefab has been cleared the prefab instance should no longer hold NavMeshData."); var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); @@ -405,7 +406,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurface.navMeshData; - Assert.IsNotNull(prefabNavMeshData); + Assert.IsTrue(prefabNavMeshData != null, + "NavMeshSurface in the prefab must still have NavMeshData even though the instance was cleared."); Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); StageNavigationManager.instance.GoToMainStage(); @@ -442,7 +444,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurfaceReopened = prefabStageReopened.prefabContentsRoot.GetComponent(); var prefabNavMeshData = prefabSurfaceReopened.navMeshData; - Assert.IsNotNull(prefabNavMeshData); + Assert.IsTrue(prefabNavMeshData != null, + "NavMeshSurface in prefab must have NavMeshData after baking, saving, closing and reopening."); Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); @@ -464,7 +467,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; - Assert.IsNotNull(rebuiltPrefabNavMeshData); + Assert.IsTrue(rebuiltPrefabNavMeshData != null, "NavMeshSurface must have NavMeshData after baking."); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); StageNavigationManager.instance.GoToMainStage(); @@ -553,7 +556,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; - Assert.IsNotNull(rebuiltPrefabNavMeshData); + Assert.IsTrue(rebuiltPrefabNavMeshData != null, "NavMeshSurface must have NavMeshData after baking."); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); StageNavigationManager.instance.GoToMainStage(); @@ -675,7 +678,8 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); - Assert.IsNull(prefabSurface.navMeshData); + Assert.IsTrue(prefabSurface.navMeshData == null, + "Prefab should have empty NavMeshData when empty data has been applied back from the instance."); StageNavigationManager.instance.GoToMainStage(); From 8e649925356a138e9252119882eaa15b762f2ff5 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 24 May 2018 16:41:15 +0200 Subject: [PATCH 32/82] When a NavMeshSurface is baked in prefab mode but not saved, the asset will be deleted when returning to main scene without saving. Re-enabled the test for this case. --- .../NavMeshComponents/Editor/NavMeshAssetManager.cs | 10 ++++++++++ Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 13 +++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs index 57f1ea7a..985492ed 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs @@ -290,6 +290,16 @@ void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) { //Debug.LogFormat("The surface {0} from the prefab was storing the original navmesh data and now will be forgotten", surfaceInPrefab); + var baseSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceInPrefab) as NavMeshSurface; + if (baseSurface == null || surfaceInPrefab.navMeshData != baseSurface.navMeshData) + { + var assetPath = AssetDatabase.GetAssetPath(surfaceInPrefab.navMeshData); + AssetDatabase.DeleteAsset(assetPath); + + //Debug.LogFormat("The surface {0} from the prefab has baked new NavMeshData but did not save this change so the asset has been now deleted. ({1})", + // surfaceInPrefab, assetPath); + } + s_PrefabNavMeshDataAssets.RemoveAt(i); } } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index ece5a3da..7bb4de14 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -465,6 +465,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; + var initialPrefabNavMeshAssetPath = AssetDatabase.GetAssetPath(initialPrefabNavMeshData); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebuiltPrefabNavMeshData = prefabSurface.navMeshData; Assert.IsTrue(rebuiltPrefabNavMeshData != null, "NavMeshSurface must have NavMeshData after baking."); @@ -478,13 +479,15 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti var prefabNavMeshData = prefabSurfaceReopened.navMeshData; Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreNotSame(rebuiltPrefabNavMeshData, prefabNavMeshData); + var prefabNavMeshAssetPath = AssetDatabase.GetAssetPath(prefabNavMeshData); + StringAssert.AreEqualIgnoringCase(initialPrefabNavMeshAssetPath, prefabNavMeshAssetPath, + "The NavMeshData asset referenced by the prefab should remain the same when exiting prefab mode without saving."); StageNavigationManager.instance.GoToMainStage(); yield return null; } - [Ignore("Deletion of the old asset is expected to be done manually for the time being.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNoLongerExists() { @@ -493,15 +496,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(prefabSurface); - var navMeshAssetName = prefabSurface.navMeshData.name + ".asset"; - var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + var rebakedAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "NavMeshData file must exist. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file must exist. ({0})", rebakedAssetPath); StageNavigationManager.instance.GoToMainStage(); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", combinedAssetPath); + Assert.IsFalse(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", rebakedAssetPath); yield return null; } From edc5842a358e9ba4671a413fca5ca66b370cd0a5 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 24 May 2018 16:50:47 +0200 Subject: [PATCH 33/82] Changed the name format for the prefab and instance objects in tests because a number at the end of the NavMeshData asset file name should only help differentiate between otherwise conflicting names for assets referenced by the same game object. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 7bb4de14..7012573b 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -84,7 +84,7 @@ public void OneTimeTearDown() public IEnumerator Setup() { var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); - plane.name = "NavMeshSurfacePrefab" + (++m_TestCounter); + plane.name = "NavMeshSurface" + (++m_TestCounter) + "Prefab"; var surface = plane.AddComponent(); surface.collectObjects = CollectObjects.Children; @@ -192,7 +192,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); @@ -202,7 +202,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone" + m_TestCounter; + instanceClone.name = "Surface" + m_TestCounter + "PrefabInstanceClone"; var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsTrue(HasNavMeshAtPosition(clonePosition, expectedAreaMask)); @@ -236,7 +236,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; var instanceSurface = instance.GetComponent(); Assert.IsTrue(instanceSurface.navMeshData != null, "NavMeshSurface in prefab instance must have NavMeshData."); @@ -263,7 +263,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceOne); - instanceOne.name = "PrefabInstanceOne" + m_TestCounter; + instanceOne.name = "Surface" + m_TestCounter + "PrefabInstanceOne"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); AssetDatabase.OpenAsset(prefab); @@ -284,7 +284,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceTwo); - instanceTwo.name = "PrefabInstanceTwo" + m_TestCounter; + instanceTwo.name = "Surface" + m_TestCounter + "PrefabInstanceTwo"; // reactivate the object to apply the change of position immediately instanceTwo.SetActive(false); instanceTwo.transform.position = new Vector3(20, 0, 0); @@ -305,12 +305,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone" + m_TestCounter; + instanceClone.name = "Surface" + m_TestCounter + "PrefabInstanceClone"; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); @@ -349,12 +349,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; var clonePosition = new Vector3(20, 0, 0); var instanceClone = Object.Instantiate(instance, clonePosition, Quaternion.identity); Assert.IsNotNull(instanceClone); - instanceClone.name = "PrefabInstanceClone" + m_TestCounter; + instanceClone.name = "Surface" + m_TestCounter + "PrefabInstanceClone"; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); @@ -392,7 +392,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); @@ -423,7 +423,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); @@ -583,7 +583,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); @@ -617,12 +617,12 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instanceOne = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceOne); - instanceOne.name = "PrefabInstanceOne" + m_TestCounter; + instanceOne.name = "Surface" + m_TestCounter + "PrefabInstanceOne"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceTwo = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instanceTwo); - instanceTwo.name = "PrefabInstanceTwo" + m_TestCounter; + instanceTwo.name = "Surface" + m_TestCounter + "PrefabInstanceTwo"; // reactivate the object to apply the change of position immediately instanceTwo.SetActive(false); instanceTwo.transform.position = new Vector3(20, 0, 0); @@ -662,7 +662,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); @@ -695,7 +695,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); @@ -720,7 +720,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); - instance.name = "PrefabInstance" + m_TestCounter; + instance.name = "Surface" + m_TestCounter + "PrefabInstance"; TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); var instanceSurface = instance.GetComponent(); From 22b6ca05bd0beeaf8903f2a7575e65b696d298d6 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 24 May 2018 16:56:26 +0200 Subject: [PATCH 34/82] Used AssetDatabase.GetAssetPath() for getting the path of the NavMeshData asset instead of producing it manually. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 7012573b..1a77d80f 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -589,22 +589,20 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var instanceSurface = instance.GetComponent(); Assert.IsNotNull(instanceSurface); - var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); - var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; - var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + var initialInstanceAssetPath = AssetDatabase.GetAssetPath(instanceSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Prefab's NavMeshData file must exist. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file must exist. ({0})", initialInstanceAssetPath); yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), - "Prefab's NavMeshData file exists after the instance has changed. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(initialInstanceAssetPath), + "Prefab's NavMeshData file exists after the instance has changed. ({0})", initialInstanceAssetPath); PrefabUtility.ApplyPrefabInstance(instance); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), + Assert.IsFalse(System.IO.File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file still exists after the changes from the instance have been applied back to the prefab. ({0})", - combinedAssetPath); + initialInstanceAssetPath); Object.DestroyImmediate(instance); @@ -727,15 +725,13 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset Assert.IsNotNull(instanceSurface); yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - var assetFolderPath = NavMeshAssetManager.instance.GetAndEnsureTargetPath(instanceSurface); - var navMeshAssetName = instanceSurface.navMeshData.name + ".asset"; - var combinedAssetPath = Path.Combine(assetFolderPath, navMeshAssetName); + var instanceAssetPath = AssetDatabase.GetAssetPath(instanceSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(combinedAssetPath), "Instance's NavMeshData file must exist. ({0})", combinedAssetPath); + Assert.IsTrue(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file must exist. ({0})", instanceAssetPath); PrefabUtility.RevertPrefabInstance(instance); - Assert.IsFalse(System.IO.File.Exists(combinedAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", combinedAssetPath); + Assert.IsFalse(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", instanceAssetPath); Object.DestroyImmediate(instance); From 695c7dd3fb93f546ea146909ec3a4a8f29bc0589 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 25 May 2018 10:41:39 +0200 Subject: [PATCH 35/82] Properly apply modifications to the NavMeshData so that they are recorded correctly by prefabs. --- .../Editor/NavMeshAssetManager.cs | 25 +++++++++++++------ .../Editor/NavMeshSurfaceInPrefabTests.cs | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs index 985492ed..bab4673a 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs @@ -83,19 +83,20 @@ NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) void ClearSurface(NavMeshSurface navSurface) { - var hadNavMeshData = navSurface.navMeshData != null; + var hasNavMeshData = navSurface.navMeshData != null; StoreNavMeshDataIfInPrefab(navSurface); var assetToDelete = GetNavMeshAssetToDelete(navSurface); navSurface.RemoveData(); - navSurface.navMeshData = null; - EditorUtility.SetDirty(navSurface); + + if (hasNavMeshData) + { + SetNavMeshData(navSurface, null); + EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); + } if (assetToDelete) AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(assetToDelete)); - - if (hadNavMeshData) - EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); } public void StartBakingSurfaces(UnityEngine.Object[] surfaces) @@ -141,7 +142,8 @@ void UpdateAsyncBuildOperations() AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(delete)); surface.RemoveData(); - surface.navMeshData = oper.bakeData; + SetNavMeshData(surface, oper.bakeData); + if (surface.isActiveAndEnabled) surface.AddData(); CreateNavMeshAsset(surface); @@ -176,6 +178,15 @@ public void ClearSurfaces(UnityEngine.Object[] surfaces) ClearSurface(s); } + static void SetNavMeshData(NavMeshSurface navSurface, NavMeshData navMeshData) + { + var so = new SerializedObject(navSurface); + var navMeshDataProperty = so.FindProperty("m_NavMeshData"); + navMeshDataProperty.objectReferenceValue = navMeshData; + so.ApplyModifiedProperties(); + PrefabUtility.RecordPrefabInstancePropertyModifications(navSurface); + } + void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) { var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 1a77d80f..785ad0f8 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -448,9 +448,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh "NavMeshSurface in prefab must have NavMeshData after baking, saving, closing and reopening."); Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); - Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); StageNavigationManager.instance.GoToMainStage(); + Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); Object.DestroyImmediate(instance); From 93f5fa326b48c75fca47e6c40b88adb2d32a5d4c Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 25 May 2018 15:58:45 +0200 Subject: [PATCH 36/82] Split NavMeshComponents scripts and playmode tests into separate assemblies. --- Assets/NavMeshComponents/NavMeshComponents.asmdef | 3 +++ .../NavMeshComponents/NavMeshComponents.asmdef.meta | 7 +++++++ Assets/Tests/PlaymodeTests.asmdef | 12 ++++++++++++ Assets/Tests/PlaymodeTests.asmdef.meta | 7 +++++++ ProjectSettings/ProjectSettings.asset | 11 ++++++++++- 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Assets/NavMeshComponents/NavMeshComponents.asmdef create mode 100644 Assets/NavMeshComponents/NavMeshComponents.asmdef.meta create mode 100644 Assets/Tests/PlaymodeTests.asmdef create mode 100644 Assets/Tests/PlaymodeTests.asmdef.meta diff --git a/Assets/NavMeshComponents/NavMeshComponents.asmdef b/Assets/NavMeshComponents/NavMeshComponents.asmdef new file mode 100644 index 00000000..99097df2 --- /dev/null +++ b/Assets/NavMeshComponents/NavMeshComponents.asmdef @@ -0,0 +1,3 @@ +{ + "name": "NavMeshComponents" +} diff --git a/Assets/NavMeshComponents/NavMeshComponents.asmdef.meta b/Assets/NavMeshComponents/NavMeshComponents.asmdef.meta new file mode 100644 index 00000000..22d0a250 --- /dev/null +++ b/Assets/NavMeshComponents/NavMeshComponents.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c19c0c127b1b6134e87a997167fd94b7 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/PlaymodeTests.asmdef b/Assets/Tests/PlaymodeTests.asmdef new file mode 100644 index 00000000..71e22711 --- /dev/null +++ b/Assets/Tests/PlaymodeTests.asmdef @@ -0,0 +1,12 @@ +{ + "name": "PlaymodeTests", + "references": [ + "NavMeshComponents" + ], + "optionalUnityReferences": [ + "TestAssemblies" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/Assets/Tests/PlaymodeTests.asmdef.meta b/Assets/Tests/PlaymodeTests.asmdef.meta new file mode 100644 index 00000000..45205069 --- /dev/null +++ b/Assets/Tests/PlaymodeTests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 455cd750f394b1c41b963b3335eae29c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index def65bac..996a93d5 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -107,6 +107,7 @@ PlayerSettings: xboxOneLoggingLevel: 1 xboxOneDisableEsram: 0 xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 0 videoMemoryForVertexBuffers: 0 psp2PowerMode: 0 psp2AcquireBGM: 1 @@ -137,6 +138,10 @@ PlayerSettings: hololens: depthFormat: 1 depthBufferSharingEnabled: 0 + enable360StereoCapture: 0 + oculus: + sharedDepthBuffer: 0 + dashSupport: 0 protectGraphicsMemory: 0 useHDRDisplay: 0 m_ColorGamuts: 00000000 @@ -229,6 +234,8 @@ PlayerSettings: appleDeveloperTeamID: iOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 appleEnableProMotion: 0 @@ -270,7 +277,7 @@ PlayerSettings: m_EncodingQuality: 1 - m_BuildTarget: PS4 m_EncodingQuality: 1 - playModeTestRunnerEnabled: 1 + playModeTestRunnerEnabled: 0 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 enableInternalProfiler: 0 @@ -538,6 +545,7 @@ PlayerSettings: scriptingBackend: {} il2cppCompilerConfiguration: {} incrementalIl2cppBuild: {} + allowUnsafeCode: 0 additionalIl2CppArgs: scriptingRuntimeVersion: 0 apiCompatibilityLevelPerPlatform: {} @@ -610,6 +618,7 @@ PlayerSettings: XboxOneSplashScreen: {fileID: 0} XboxOneAllowedProductIds: [] XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 xboxOneScriptCompiler: 0 vrEditorSettings: daydream: From 3bd6b7a7f261a431b4e2c7c16d9a83aa88e06252 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 25 May 2018 16:03:12 +0200 Subject: [PATCH 37/82] Auto-update of prefabs for the Dungeon example. --- .../Prefabs/DungeonTiles/Tile1.prefab | Bin 17088 -> 17088 bytes .../Prefabs/DungeonTiles/Tile10.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile11.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile12.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile13.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile14.prefab | Bin 16624 -> 16624 bytes .../Prefabs/DungeonTiles/Tile15.prefab | Bin 16368 -> 16368 bytes .../Prefabs/DungeonTiles/Tile2.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile3.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile4.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile5.prefab | Bin 16848 -> 16848 bytes .../Prefabs/DungeonTiles/Tile6.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile7.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile8.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile9.prefab | Bin 16848 -> 16848 bytes 15 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab index d635333acec85c0dd83c1259cc418077d8273739..8424eba3d0b33173d8da486c61cb59644531be5f 100644 GIT binary patch delta 31 ncmX@m%6Ooaaf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i4H9Q>3$Bs delta 31 ncmX@m%6Ooaaf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji4H9Q+C&Zm diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab index 21bc32c5ed5401736ace72ed4e7fdf3a0fba0443..77e60534fecf9f3fbe156dba306ed4a0889ef84e 100644 GIT binary patch delta 31 ncmey+%=n?1af610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5;2%^m`9V delta 31 ncmey+%=n?1af610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5;2%pPd+QD#fiq10KSF;_dbHU>;)DhO%U2D% diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab index c5e361d6436671f2b46c851e92e025df70ccf77c..ed12e6753f556b91a3adc88985ead29afed78593 100644 GIT binary patch delta 31 ncmey+%=n?1af6?Cxsm=}Bq;>1YnO diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab index 5de35c8ab0e9b6070d501fdde5f9133b06ee732e..2ed0b60b5d314891bf8e9bc0024847777c6d2ac9 100644 GIT binary patch delta 31 ncmZo@Vr*z)+@K*LkX_w7;s4gj3!cVp?uw~6QNGzi;)DhO+K~=- delta 31 ncmZo@Vr*z)+@K*L;B>pPd+QD#fiq10KSF;_dbHU>;)DhO%U2D% diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab index 23415a0ede873f2796bb5c7cbb2cab6d3c4ed3fa..63ef6e265f5e1eb728e25f5d684727e49efb9c96 100644 GIT binary patch delta 31 ncmey+$oQd=af610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5(gM^au|{ delta 31 ncmey+$oQd=af610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5(gM diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab index e3fb00d84092333e7bebf682dc346b07be236728..94b01429ad995eda248c17c800d0d21cf10aa090 100644 GIT binary patch delta 29 lcmexR|Dk?^hJ-+Nb?=1#TPH7g8n?MCrs72TW($cO>HzN#4?X|@ delta 29 lcmexR|Dk?^hJ=9A?aJ=0JA4GrF!}!o{WHy!>4uSvx diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab index e08423db21fb5b822bd6db7fe23ab0e81c6b6589..b45e24a4248367e6762a119b44fa114ce911f09d 100644 GIT binary patch delta 31 ncmcc6%6Orbaf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5Xe|?M@Ew delta 31 ncmcc6%6Orbaf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5Xe|-V_cq diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab index 39e2721df5a9c14abb0f6800688ec1d1681ec4f1..c3b28898328e8c72328b46ad668028669e9bd6e6 100644 GIT binary patch delta 31 ncmey+%=n?1af6?Cxsm=}Bq;>1YnO diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab index 4fbb9ac41f4c57d22dba4fc1e4a5a428d9080178..929979b9cd5d5375b41a498610949f137b7e6f81 100644 GIT binary patch delta 31 ncmcc6%6Orbaf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5Xe|?M@Ew delta 31 ncmcc6%6Orbaf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5Xe|-V_cq diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab index 0f49311cbb9d4c35fc3002fc1549ee70a204df75..fcf0ec033fe1e030bfe7007c44fc6f38459c99d7 100644 GIT binary patch delta 31 ncmcc6%y^-haf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5Z#z?As3N delta 31 ncmcc6%y^-haf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5Z#z-JuRH diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab index 1aca6a7035137a6409ceb8fb9dc0d75982fb81a0..173018cfbbf39b6547e1420cf188d147ac3f0440 100644 GIT binary patch delta 31 ncmey+%=n?1af610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5;2%^m`9V delta 31 ncmey+%=n?1af610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5;2%pPd+QD#fiq10KSF;_dbHU>;)DhO%U2D% diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile8.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile8.prefab index 332c08bba58ced5cad238fe47a53157945263b36..7df10b7d04e6f722c4bbbc29ba515d4a4dcf5464 100644 GIT binary patch delta 31 ncmcc6%6Orbaf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5Xe|?M@Ew delta 31 ncmcc6%6Orbaf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5Xe|-V_cq diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab index a0f9ba91d22a7d2379aa19a89a4623b8b7f4e812..c766752d8ae7efc9ea6c0720212cbbb9aa0ac46e 100644 GIT binary patch delta 31 ncmcc6%y^-haf610Kz4QSg#TM7FL)ZaxhtmPMEPb5i5Z#z?As3N delta 31 ncmcc6%y^-haf610fYa^D?yWm~1kNz|{|Nm#>Ct8ji5Z#z-JuRH From 3d57aee8afbbf9edeb5caf81e8c40550bb2db31b Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 25 May 2018 17:26:04 +0200 Subject: [PATCH 38/82] Add separate assembly definitions for the Editor-only scripts and for the examples. --- .../NavMeshComponentsExamplesEditor.asmdef | 12 ++++++++++++ ...avMeshComponentsExamplesEditor.asmdef.meta | 7 +++++++ .../Examples/NavMeshComponentsExamples.asmdef | 10 ++++++++++ .../NavMeshComponentsExamples.asmdef.meta | 7 +++++++ .../Prefabs/DungeonTiles/Tile0.prefab | Bin 16192 -> 16192 bytes .../Prefabs/DungeonTiles/Tile1.prefab | Bin 17088 -> 17088 bytes .../Prefabs/DungeonTiles/Tile10.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile11.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile12.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile13.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile14.prefab | Bin 16624 -> 16624 bytes .../Prefabs/DungeonTiles/Tile15.prefab | Bin 16368 -> 16368 bytes .../Prefabs/DungeonTiles/Tile2.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile3.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile4.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile5.prefab | Bin 16848 -> 16848 bytes .../Prefabs/DungeonTiles/Tile6.prefab | Bin 16880 -> 16880 bytes .../Prefabs/DungeonTiles/Tile7.prefab | Bin 16640 -> 16640 bytes .../Prefabs/DungeonTiles/Tile8.prefab | Bin 17104 -> 17104 bytes .../Prefabs/DungeonTiles/Tile9.prefab | Bin 16848 -> 16848 bytes .../Editor/NavMeshComponentsEditor.asmdef | 12 ++++++++++++ .../NavMeshComponentsEditor.asmdef.meta | 7 +++++++ .../NavMeshComponents.asmdef | 3 --- .../Scripts/NavMeshComponents.asmdef | 8 ++++++++ .../NavMeshComponents.asmdef.meta | 2 +- ... => NavMeshComponentsPlaymodeTests.asmdef} | 2 +- ...avMeshComponentsPlaymodeTests.asmdef.meta} | 0 27 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef create mode 100644 Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef.meta create mode 100644 Assets/Examples/NavMeshComponentsExamples.asmdef create mode 100644 Assets/Examples/NavMeshComponentsExamples.asmdef.meta create mode 100644 Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef create mode 100644 Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta delete mode 100644 Assets/NavMeshComponents/NavMeshComponents.asmdef create mode 100644 Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef rename Assets/NavMeshComponents/{ => Scripts}/NavMeshComponents.asmdef.meta (76%) rename Assets/Tests/{PlaymodeTests.asmdef => NavMeshComponentsPlaymodeTests.asmdef} (81%) rename Assets/Tests/{PlaymodeTests.asmdef.meta => NavMeshComponentsPlaymodeTests.asmdef.meta} (100%) diff --git a/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef b/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef new file mode 100644 index 00000000..565dafb0 --- /dev/null +++ b/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef @@ -0,0 +1,12 @@ +{ + "name": "NavMeshComponentsExamplesEditor", + "references": [ + "NavMeshComponentsExamples" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef.meta b/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef.meta new file mode 100644 index 00000000..ebca8038 --- /dev/null +++ b/Assets/Examples/Editor/NavMeshComponentsExamplesEditor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a7ee44b1baf6b0b4cbdf2079057c7f85 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/NavMeshComponentsExamples.asmdef b/Assets/Examples/NavMeshComponentsExamples.asmdef new file mode 100644 index 00000000..31dfb23c --- /dev/null +++ b/Assets/Examples/NavMeshComponentsExamples.asmdef @@ -0,0 +1,10 @@ +{ + "name": "NavMeshComponentsExamples", + "references": [ + "NavMeshComponents" + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/Assets/Examples/NavMeshComponentsExamples.asmdef.meta b/Assets/Examples/NavMeshComponentsExamples.asmdef.meta new file mode 100644 index 00000000..71bb91bc --- /dev/null +++ b/Assets/Examples/NavMeshComponentsExamples.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 62b574997e92efd41a8a1109157a0cb5 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab index d9deef7fd9e700b1f31fc6155715b938dd64a0cd..9635ae76012eca0bb7947166e766d5f7885abe7f 100644 GIT binary patch delta 29 lcmX?5cc5;AhJ=9DDyL=DmxKO3UAd=1&YbznW(x@pbpX^h4Hf_Z delta 29 lcmX?5cc5;AhJ-**h#z+kS+#L-> diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab index 77e60534fecf9f3fbe156dba306ed4a0889ef84e..301f663209fa81a425d6526630b605215052df99 100644 GIT binary patch delta 31 ncmey+%=n?1aYLPqfYvIfW!0C1{ytr~r$Wx0`OD@$nIu&J?${2F delta 31 ncmey+%=n?1aYLPqKu_es7n{tkOEYWd+5Gl;ZnL>hCP@_l=Nb*q diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab index 70a27122e33e9b8de81e42e23dc8741e767786d2..a4ea38ca5e7b1995c43888c0ff393c5a6679abf9 100644 GIT binary patch delta 31 ncmZo@Vr*z)+)yVYptZ_rS@q?hzfV{0sgN^g{<67Grbq<<)b0(t delta 31 ncmZo@Vr*z)+)yVY&=Yy^#U``s(#+a% delta 31 ncmey+$oQd=aYLPqKu_es7n{tkOEYWd+5Gl;ZnL>hCP@VV=BEwH diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab index 94b01429ad995eda248c17c800d0d21cf10aa090..c0f9c103940cfc4c5371a9c2fcf71d56d7147f14 100644 GIT binary patch delta 29 lcmexR|Dk?Eos59iDyL=DmxKO3UAd=1&Ybzn=02GuWdP}H4uSvx delta 29 lcmexR|Dk?Eos2+Fh#z_qT-|Y=_ diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab index c3b28898328e8c72328b46ad668028669e9bd6e6..efb798041da3fe4d3a974a585c37c191b7dea2da 100644 GIT binary patch delta 31 ncmey+%=n?1af610fYvIfW!0C1{ytr~r$Wx0`O9Vti5;2%<+u(s delta 31 ncmey+%=n?1af610Ku_es7n{tkOEYWd+5Gl;ZnN1!VuvOG-TDo6 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab index 929979b9cd5d5375b41a498610949f137b7e6f81..0a03dbe41dee7c4b6f7bddd791a7800690865673 100644 GIT binary patch delta 31 ncmcc6%6OrbaYLPqfYvIfW!0C1{ytr~r$Wx0`OD@$87DOW=c^7g delta 31 ncmcc6%6OrbaYLPqKu_es7n{tkOEYWd+5Gl;ZnL>h#z_qT-|Y=_ diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab index fcf0ec033fe1e030bfe7007c44fc6f38459c99d7..16834dc5ef3e4609fa18f577444472996273bb72 100644 GIT binary patch delta 31 ncmcc6%y^-haYLPqfYvIfW!0C1{ytr~r$Wx0`OD@$87EZ$=Qs{7 delta 31 ncmcc6%y^-haYLPqKu_es7n{tkOEYWd+5Gl;ZnL>h#z_?b-+B#i diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab index 173018cfbbf39b6547e1420cf188d147ac3f0440..d57312be9a01027f2eab9ff1c8f568a92433208a 100644 GIT binary patch delta 31 ncmey+%=n?1aYLPqfYvIfW!0C1{ytr~r$Wx0`OD@$nIu&J?${2F delta 31 ncmey+%=n?1aYLPqKu_es7n{tkOEYWd+5Gl;ZnL>hCP@_l=Nb*q diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab index 7725fc1729ddf755f987f750e0af56e335d5511d..17aa2c00c02dd18ebea741cf05eb0efa4d93c7b4 100644 GIT binary patch delta 31 ncmZo@Vr*z)+)yVYptZ_rS@q?hzfV{0sgN^g{<67Grbq<<)b0(t delta 31 ncmZo@Vr*z)+)yVY&=Yy^#U``s(#+ah#z_qT-|Y=_ diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab index c766752d8ae7efc9ea6c0720212cbbb9aa0ac46e..a2a6be64ae44150396b45e51e4d46868e7428dc4 100644 GIT binary patch delta 31 ncmcc6%y^-haYLPqfYvIfW!0C1{ytr~r$Wx0`OD@$87EZ$=Qs{7 delta 31 ncmcc6%y^-haYLPqKu_es7n{tkOEYWd+5Gl;ZnL>h#z_?b-+B#i diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef new file mode 100644 index 00000000..7d0ebc4f --- /dev/null +++ b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef @@ -0,0 +1,12 @@ +{ + "name": "NavMeshComponentsEditor", + "references": [ + "NavMeshComponents" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta new file mode 100644 index 00000000..75ca4c26 --- /dev/null +++ b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 86c9d8e67265f41469be06142c397d17 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NavMeshComponents/NavMeshComponents.asmdef b/Assets/NavMeshComponents/NavMeshComponents.asmdef deleted file mode 100644 index 99097df2..00000000 --- a/Assets/NavMeshComponents/NavMeshComponents.asmdef +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "NavMeshComponents" -} diff --git a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef new file mode 100644 index 00000000..52072093 --- /dev/null +++ b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef @@ -0,0 +1,8 @@ +{ + "name": "NavMeshComponents", + "references": [], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/Assets/NavMeshComponents/NavMeshComponents.asmdef.meta b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta similarity index 76% rename from Assets/NavMeshComponents/NavMeshComponents.asmdef.meta rename to Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta index 22d0a250..5a7b65ce 100644 --- a/Assets/NavMeshComponents/NavMeshComponents.asmdef.meta +++ b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c19c0c127b1b6134e87a997167fd94b7 +guid: 8c4dd21966739024fbd72155091d199e AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Assets/Tests/PlaymodeTests.asmdef b/Assets/Tests/NavMeshComponentsPlaymodeTests.asmdef similarity index 81% rename from Assets/Tests/PlaymodeTests.asmdef rename to Assets/Tests/NavMeshComponentsPlaymodeTests.asmdef index 71e22711..5253d79e 100644 --- a/Assets/Tests/PlaymodeTests.asmdef +++ b/Assets/Tests/NavMeshComponentsPlaymodeTests.asmdef @@ -1,5 +1,5 @@ { - "name": "PlaymodeTests", + "name": "NavMeshComponentsPlaymodeTests", "references": [ "NavMeshComponents" ], diff --git a/Assets/Tests/PlaymodeTests.asmdef.meta b/Assets/Tests/NavMeshComponentsPlaymodeTests.asmdef.meta similarity index 100% rename from Assets/Tests/PlaymodeTests.asmdef.meta rename to Assets/Tests/NavMeshComponentsPlaymodeTests.asmdef.meta From d2addacc66c588d9fee13157cc7ee9914dd55b2d Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 25 May 2018 17:29:41 +0200 Subject: [PATCH 39/82] Removed an unnecessary copy of RandomWalk.cs. --- Assets/Examples/Scripts/RandomWalk.cs | 8 +++---- Assets/Examples/Scripts/RandomWalk.cs.orig | 23 ------------------- .../Examples/Scripts/RandomWalk.cs.orig.meta | 8 ------- 3 files changed, 4 insertions(+), 35 deletions(-) delete mode 100644 Assets/Examples/Scripts/RandomWalk.cs.orig delete mode 100644 Assets/Examples/Scripts/RandomWalk.cs.orig.meta diff --git a/Assets/Examples/Scripts/RandomWalk.cs b/Assets/Examples/Scripts/RandomWalk.cs index a9778919..86ad905c 100644 --- a/Assets/Examples/Scripts/RandomWalk.cs +++ b/Assets/Examples/Scripts/RandomWalk.cs @@ -6,18 +6,18 @@ public class RandomWalk : MonoBehaviour { public float m_Range = 25.0f; - NavMeshAgent m_agent; + NavMeshAgent m_Agent; void Start() { - m_agent = GetComponent(); + m_Agent = GetComponent(); } void Update() { - if (m_agent.pathPending || m_agent.remainingDistance > 0.1f) + if (m_Agent.pathPending || m_Agent.remainingDistance > 0.1f) return; - m_agent.destination = m_Range * Random.insideUnitCircle; + m_Agent.destination = m_Range * Random.insideUnitCircle; } } diff --git a/Assets/Examples/Scripts/RandomWalk.cs.orig b/Assets/Examples/Scripts/RandomWalk.cs.orig deleted file mode 100644 index 3a97087f..00000000 --- a/Assets/Examples/Scripts/RandomWalk.cs.orig +++ /dev/null @@ -1,23 +0,0 @@ -using UnityEngine; -using UnityEngine.AI; - -// Walk to a random position and repeat -[RequireComponent(typeof(NavMeshAgent))] -public class RandomWalk : MonoBehaviour -{ - public float m_Range = 25.0f; - NavMeshAgent m_Agent; - - void Start() - { - m_Agent = GetComponent(); - } - - void Update() - { - if (m_Agent.pathPending || m_Agent.remainingDistance > 0.1f) - return; - - m_Agent.destination = m_Range * Random.insideUnitCircle; - } -} diff --git a/Assets/Examples/Scripts/RandomWalk.cs.orig.meta b/Assets/Examples/Scripts/RandomWalk.cs.orig.meta deleted file mode 100644 index 9e31e367..00000000 --- a/Assets/Examples/Scripts/RandomWalk.cs.orig.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 25068c3f5cf14462eb21512ac44e07cd -timeCreated: 1475070286 -licenseType: Pro -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: From 74ac024d7ead693d34e0124abec2545d3b2c892a Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 30 May 2018 14:38:53 +0200 Subject: [PATCH 40/82] Use the public StageUtility.GoToMainStage() for returning to main stage. Clear prefab stage dirtiness in tests where prefab changes need to be discarded. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 46 ++++++++++--------- .../NavMeshSurfaceInPrefabVariantTests.cs | 12 ++--- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 785ad0f8..7cae649d 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -53,7 +53,7 @@ public void OneTimeSetup() SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); StageNavigationManager.instance.autoSave = false; - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshSurfacePrefabTestsScene.unity"); @@ -66,7 +66,7 @@ public void OneTimeSetup() public void OneTimeTearDown() { StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); @@ -100,7 +100,7 @@ public IEnumerator Setup() var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); NavMesh.RemoveAllNavMeshData(); @@ -127,7 +127,7 @@ public IEnumerator TearDown() // AssetDatabase.DeleteAsset(m_PrefabPath); //} - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); #if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS AssetDatabase.DeleteAsset(m_InitialPrefabNavMeshDataPath); @@ -179,7 +179,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() Assert.AreNotSame(initialPrefabNavMeshData, prefabSurface.navMeshData); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, NavMesh.AllAreas, 0, 1000.0f)); @@ -222,7 +222,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes Assert.AreSame(prefabNavMeshData, instanceNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -246,7 +246,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt NavMeshAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Assert.IsTrue(instanceSurface.navMeshData == null, "After the NavMeshSurface in the prefab has been cleared the prefab instance should no longer hold NavMeshData."); var expectedAreaMask = 1 << k_PrefabDefaultArea; @@ -275,7 +275,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); @@ -335,7 +335,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD Assert.AreNotSame(instanceNavMeshData, instanceCloneNavMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -378,7 +378,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM Assert.AreNotSame(instanceCloneNavMeshData, instanceSurface.navMeshData); Assert.AreSame(prefabNavMeshData, instanceCloneNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); @@ -410,7 +410,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa "NavMeshSurface in the prefab must still have NavMeshData even though the instance was cleared."); Assert.AreSame(initialPrefabNavMeshData, prefabNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Object.DestroyImmediate(instance); @@ -438,7 +438,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); AssetDatabase.OpenAsset(prefab); var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); @@ -449,7 +449,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh Assert.AreNotSame(instanceNavMeshData, prefabNavMeshData); Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); Object.DestroyImmediate(instance); @@ -471,7 +471,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti Assert.IsTrue(rebuiltPrefabNavMeshData != null, "NavMeshSurface must have NavMeshData after baking."); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + prefabStage.ClearDirtiness(); + StageUtility.GoToMainStage(); AssetDatabase.OpenAsset(prefab); var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); @@ -483,7 +484,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_RevertsToTheIniti StringAssert.AreEqualIgnoringCase(initialPrefabNavMeshAssetPath, prefabNavMeshAssetPath, "The NavMeshData asset referenced by the prefab should remain the same when exiting prefab mode without saving."); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); yield return null; } @@ -500,7 +501,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo Assert.IsTrue(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file must exist. ({0})", rebakedAssetPath); - StageNavigationManager.instance.GoToMainStage(); + prefabStage.ClearDirtiness(); + StageUtility.GoToMainStage(); Assert.IsFalse(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", rebakedAssetPath); @@ -539,7 +541,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving Assert.IsTrue(initialNavMeshData == null, "The initial NavMeshData must no longer exist after saving the prefab."); // ReSharper disable once HeuristicUnreachableCode - initialNavMeshData is affected by BakeNavMeshAsync() - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); yield return null; } @@ -560,7 +562,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe Assert.IsTrue(rebuiltPrefabNavMeshData != null, "NavMeshSurface must have NavMeshData after baking."); Assert.AreNotSame(initialPrefabNavMeshData, rebuiltPrefabNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); AssetDatabase.OpenAsset(prefab); var prefabStageReopened = PrefabStageUtility.GetCurrentPrefabStage(); @@ -569,7 +571,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe Assert.AreNotSame(initialPrefabNavMeshData, prefabNavMeshData); Assert.AreSame(rebuiltPrefabNavMeshData, prefabNavMeshData); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); StageNavigationManager.instance.autoSave = wasAutoSave; @@ -643,7 +645,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_GrayArea, instanceTwo.transform.position); @@ -680,7 +682,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty Assert.IsTrue(prefabSurface.navMeshData == null, "Prefab should have empty NavMeshData when empty data has been applied back from the instance."); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); Object.DestroyImmediate(instance); @@ -761,7 +763,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); prefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; Assert.IsNotNull(instance); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index 2564447e..dead8675 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -50,7 +50,7 @@ public void OneTimeSetup() SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); StageNavigationManager.instance.autoSave = false; - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshSurfacePrefabVariantTestsScene.unity"); @@ -63,7 +63,7 @@ public void OneTimeSetup() public void OneTimeTearDown() { StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); @@ -96,7 +96,7 @@ public IEnumerator Setup() var theOriginalPrefabSurface = theOriginalPrefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => theOriginalPrefabSurface, k_PrefabDefaultArea); theOriginalPrefabStage.SavePrefab(); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); PrefabUtility.CreateVariant(planePrefab, m_PrefabVariantPath); @@ -125,7 +125,7 @@ public IEnumerator TearDown() // AssetDatabase.DeleteAsset(m_PrefabPath); //} - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); yield return null; } @@ -177,7 +177,7 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenFreshAndRebaked_ParentAssetUn Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file of the original prefab still exists after saving the variant. ({0})", theOriginalPrefabAssetPath); Assert.IsTrue(theOriginalPrefabNavMeshData != null, "Original prefab must still have NavMeshData."); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); yield return null; } @@ -234,7 +234,7 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenCustomizedAndRebaked_OldAsset Assert.IsTrue(File.Exists(theOriginalPrefabAssetPath), "NavMeshData file of the original prefab still exists after saving the variant. ({0})", theOriginalPrefabAssetPath); Assert.AreNotEqual(theOriginalPrefabNavMeshData, theNewVariantNavMeshData, "Re-baked modified variant must have a NavMeshData different than that of the original prefab."); - StageNavigationManager.instance.GoToMainStage(); + StageUtility.GoToMainStage(); yield return null; } From ffa3d8347fdd4e2a3dddd385fd9fa0c92eda983d Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 30 May 2018 14:50:41 +0200 Subject: [PATCH 41/82] Inhibit recording Undo history when baking or clearing a NavMeshSurface (at the time when the old NavMeshData is actually replaced). No need to record prefab instance property modifications when we're using a serialized object for modifying the NavMeshData. --- Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs index bab4673a..0fb45791 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs @@ -183,8 +183,7 @@ static void SetNavMeshData(NavMeshSurface navSurface, NavMeshData navMeshData) var so = new SerializedObject(navSurface); var navMeshDataProperty = so.FindProperty("m_NavMeshData"); navMeshDataProperty.objectReferenceValue = navMeshData; - so.ApplyModifiedProperties(); - PrefabUtility.RecordPrefabInstancePropertyModifications(navSurface); + so.ApplyModifiedPropertiesWithoutUndo(); } void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) From c71d405249624afb7eb962f94e2e5a4bd00a76fb Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 30 May 2018 14:54:07 +0200 Subject: [PATCH 42/82] [generic] Display the NavMeshData asset in the NavMeshSurface inspector. --- .../Editor/NavMeshSurfaceEditor.cs | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index 1118adc8..ff29897e 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -1,3 +1,5 @@ +#define NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF + using System.Collections.Generic; using System.IO; using System.Linq; @@ -27,6 +29,9 @@ class NavMeshSurfaceEditor : Editor SerializedProperty m_UseGeometry; SerializedProperty m_VoxelSize; +#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF + SerializedProperty m_NavMeshData; +#endif class Styles { public readonly GUIContent m_LayerMask = new GUIContent("Include Layers"); @@ -70,6 +75,9 @@ void OnEnable() m_UseGeometry = serializedObject.FindProperty("m_UseGeometry"); m_VoxelSize = serializedObject.FindProperty("m_VoxelSize"); +#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF + m_NavMeshData = serializedObject.FindProperty("m_NavMeshData"); +#endif NavMeshVisualizationSettings.showNavigation++; } @@ -127,8 +135,6 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); - EditorGUILayout.Space(); - m_OverrideVoxelSize.isExpanded = EditorGUILayout.Foldout(m_OverrideVoxelSize.isExpanded, "Advanced"); if (m_OverrideVoxelSize.isExpanded) { @@ -230,6 +236,19 @@ public override void OnInspectorGUI() if (hadError) EditorGUILayout.Space(); +#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF + var nmdRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); + + EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData); + var rectLabel = EditorGUI.PrefixLabel(nmdRect, GUIUtility.GetControlID(FocusType.Passive), new GUIContent(m_NavMeshData.displayName)); + EditorGUI.EndProperty(); + + EditorGUI.BeginDisabled(true); + EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData); + EditorGUI.ObjectField(rectLabel, m_NavMeshData, GUIContent.none); + EditorGUI.EndProperty(); + EditorGUI.EndDisabled(); +#endif using (new EditorGUI.DisabledScope(Application.isPlaying || m_AgentTypeID.intValue == -1)) { GUILayout.BeginHorizontal(); From 8d1d22b6c62430264f3fcd9b90496d0ae01feb53 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 1 Jun 2018 15:11:36 +0200 Subject: [PATCH 43/82] Added tests for verifying that NavMeshModifierVolume affects only NavMeshes baked in the stage to which the modifier belongs. --- .../NavMeshModifierVolumeInPrefabTests.cs | 244 ++++++++++++++++++ ...NavMeshModifierVolumeInPrefabTests.cs.meta | 11 + 2 files changed, 255 insertions(+) create mode 100644 Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs create mode 100644 Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs.meta diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs new file mode 100644 index 00000000..9df06c29 --- /dev/null +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -0,0 +1,244 @@ +//#define KEEP_ARTIFACTS_FOR_INSPECTION + +using System; +using UnityEngine; +using UnityEngine.TestTools; +using NUnit.Framework; +using System.Collections; +using System.IO; +using UnityEditor; +using UnityEditor.AI; +using UnityEditor.Experimental.SceneManagement; +using UnityEditor.SceneManagement; +using UnityEngine.AI; +using UnityEngine.SceneManagement; +using Object = UnityEngine.Object; + +[Category("PrefabsWithNavMeshModifierVolume")] +public class NavMeshModifierVolumeInPrefabTests +{ + const string k_AutoSaveKey = "AutoSave"; + const string k_ParentFolder = "Assets/Tests/Editor"; + const string k_TempFolderName = "TempPrefabAndModifiers"; + string m_TempFolder = k_ParentFolder + "/" + k_TempFolderName; + string m_PrefabPath; + string m_PreviousScenePath; + string m_TempScenePath; + int m_TestCounter; + + const int k_BlueArea = 0; + const int k_PinkArea = 3; + const int k_GreenArea = 4; + const int k_GrayArea = 7; + const int k_BrownArea = 10; + const int k_RedArea = 18; + const int k_OrangeArea = 26; + const int k_YellowArea = 30; + + const int k_PrefabDefaultArea = k_GreenArea; + + [OneTimeSetUp] + public void OneTimeSetup() + { + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); + + //if (!System.IO.Directory.Exists(m_TempFolder)) + //{ + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); + //} + + SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageNavigationManager.instance.autoSave = false; + StageUtility.GoToMainStage(); + + m_PreviousScenePath = SceneManager.GetActiveScene().path; + m_TempScenePath = Path.Combine(m_TempFolder, "NavMeshModifierVolumePrefabTestsScene.unity"); + var tempScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + EditorSceneManager.SaveScene(tempScene, m_TempScenePath); + EditorSceneManager.OpenScene(m_TempScenePath); + } + + [OneTimeTearDown] + public void OneTimeTearDown() + { + StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + StageUtility.GoToMainStage(); + + EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + + if (string.IsNullOrEmpty(m_PreviousScenePath)) + { + EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + } + +#if !KEEP_ARTIFACTS_FOR_INSPECTION + //File.Delete(m_TempScenePath); + //if (System.IO.Directory.Exists(m_TempFolder)) + AssetDatabase.DeleteAsset(m_TempFolder); +#endif + } + + [UnitySetUp] + public IEnumerator Setup() + { + var plane = GameObject.CreatePrimitive(PrimitiveType.Plane); + plane.name = "SurfaceSeekingModVol" + (++m_TestCounter) + "Prefab"; + var surface = plane.AddComponent(); + surface.collectObjects = CollectObjects.All; + + m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); + PrefabUtility.CreatePrefab(m_PrefabPath, plane); + Object.DestroyImmediate(plane); + + NavMesh.RemoveAllNavMeshData(); + + yield return null; + } + + [UnityTearDown] + public IEnumerator TearDown() + { + StageUtility.GoToMainStage(); + + yield return null; + } + + [UnityTest] + public IEnumerator ModifierVolume_WhenInsidePrefabMode_ModifiesTheNavMeshInPrefab() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "SurfaceSeekingModVol" + m_TestCounter + "PrefabInstance"; + + NavMeshHit hit; + var filter = new NavMeshQueryFilter { agentTypeID = 0, areaMask = NavMesh.AllAreas }; + NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); + Assert.That(hit.hit, Is.False, "Prefab should not have a NavMesh in the beginning."); + + AssetDatabase.OpenAsset(prefab); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + var modifierVolume = prefabStage.prefabContentsRoot.AddComponent(); + modifierVolume.area = k_RedArea; + modifierVolume.center = Vector3.zero; + modifierVolume.size = Vector3.one; + yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); + prefabStage.SavePrefab(); + StageUtility.GoToMainStage(); + + NavMeshHit hitCenter; + NavMesh.SamplePosition(Vector3.zero, out hitCenter, 0.1f, filter); + Assert.That(hitCenter.hit, Is.True, "A NavMesh should have been baked in the center of the prefab."); + Assert.That(hitCenter.mask, Is.EqualTo(1 << k_RedArea), + "Area type (0x{0:x8}) found in the center should be 0x{1:x8}.", hitCenter.mask, 1 << k_RedArea); + + NavMeshHit hitSides; + NavMesh.SamplePosition(new Vector3(0.6f, 0, 0.6f), out hitSides, 0.1f, filter); + Assert.That(hitSides.hit, Is.True, "A NavMesh should have been baked in the outer sides of the prefab."); + Assert.That(hitSides.mask, Is.EqualTo(1 << k_PrefabDefaultArea), + "Area type (0x{0:x8}) found on the sides should be 0x{1:x8}.", hitSides.mask, 1 << k_PrefabDefaultArea); + + Assert.That(hitCenter.mask, Is.Not.EqualTo(hitSides.mask), + "Area type (0x{0:x8}) in the center should be different than on the sides.", hitCenter.mask); + + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); + +#if !KEEP_ARTIFACTS_FOR_INSPECTION + Object.DestroyImmediate(instance); +#endif + } + + [UnityTest] + public IEnumerator ModifierVolume_WhenInsidePrefabMode_DoesNotAffectTheNavMeshInMainScene() + { + var go = GameObject.CreatePrimitive(PrimitiveType.Plane); + go.name = "SurfaceOutsidePrefab"; + var mainSceneSurface = go.AddComponent(); + mainSceneSurface.defaultArea = k_PinkArea; + mainSceneSurface.agentTypeID = 0; + mainSceneSurface.collectObjects = CollectObjects.All; + + NavMeshHit hit; + var filter = new NavMeshQueryFilter { agentTypeID = 0, areaMask = NavMesh.AllAreas }; + NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); + Assert.That(hit.hit, Is.False, "Prefab should not have a NavMesh in the beginning."); + + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); + + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabModVol = prefabStage.prefabContentsRoot.AddComponent(); + prefabModVol.area = k_PrefabDefaultArea; + prefabModVol.center = Vector3.zero; + prefabModVol.size = new Vector3(100, 100, 100); + + // bake the NavMeshSurface from the main scene while the prefab mode is open + yield return BakeNavMeshAsync(() => mainSceneSurface, mainSceneSurface.defaultArea); + + prefabStage.SavePrefab(); + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); + StageUtility.GoToMainStage(); + + NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); + Assert.That(hit.hit, Is.True, "A NavMesh should have been baked by the surface in the main scene."); + Assert.That(hit.mask, Is.EqualTo(1 << mainSceneSurface.defaultArea), + "NavMesh has the area type 0x{0:x8} instead of the expected 0x{1:x8}.", hit.mask, 1 << mainSceneSurface.defaultArea); + +#if !KEEP_ARTIFACTS_FOR_INSPECTION + Object.DestroyImmediate(go); +#endif + } + + [UnityTest] + public IEnumerator ModifierVolume_WhenOutsidePrefabMode_DoesNotAffectTheNavMeshInPrefab() + { + var go = new GameObject("ModifierVolumeOutsidePrefab"); + var modifierVolume = go.AddComponent(); + modifierVolume.area = k_RedArea; + modifierVolume.center = Vector3.zero; + modifierVolume.size = new Vector3(20, 20, 20); + + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + Assert.IsNotNull(instance); + instance.name = "SurfaceSeekingModVol" + m_TestCounter + "PrefabInstance"; + + NavMeshHit hit; + var filter = new NavMeshQueryFilter { agentTypeID = 0, areaMask = NavMesh.AllAreas }; + NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); + Assert.That(hit.hit, Is.False, "Prefab should not have a NavMesh in the beginning."); + + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); + + AssetDatabase.OpenAsset(prefab); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); + prefabStage.SavePrefab(); + StageUtility.GoToMainStage(); + + NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); + Assert.That(hit.hit, Is.True, "A NavMesh should have been baked in the prefab."); + Assert.That(hit.mask, Is.EqualTo(1 << k_PrefabDefaultArea), + "A different area type (0x{0:x8}) was found instead of the expected one (0x{1:x8}).", hit.mask, 1 << k_PrefabDefaultArea); + + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); + +#if !KEEP_ARTIFACTS_FOR_INSPECTION + Object.DestroyImmediate(go); + Object.DestroyImmediate(instance); +#endif + } + + static IEnumerator BakeNavMeshAsync(Func getSurface, int defaultArea) + { + var surface = getSurface(); + surface.defaultArea = defaultArea; + NavMeshAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); + yield return new WaitWhile(() => NavMeshAssetManager.instance.IsSurfaceBaking(surface)); + } +} diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs.meta b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs.meta new file mode 100644 index 00000000..7f29aeae --- /dev/null +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd4d066d0a75d8446bc2852c3bc1d4bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 3be024091775b855a9155799e9dd15b1c5c166ef Mon Sep 17 00:00:00 2001 From: Adrian T Date: Fri, 1 Jun 2018 16:06:58 +0200 Subject: [PATCH 44/82] Filter out modifier volumes that are not in the same stage as the NavMeshSurface that bakes the data. --- Assets/NavMeshComponents/Scripts/NavMeshSurface.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs index 2e8e0a39..c67735fb 100644 --- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs +++ b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; +#if UNITY_EDITOR using UnityEditor; using UnityEditor.SceneManagement; +#endif namespace UnityEngine.AI { @@ -207,6 +209,11 @@ static void UpdateActive() void AppendModifierVolumes(ref List sources) { +#if UNITY_EDITOR + var myStage = StageUtility.GetStage(gameObject); + if (!myStage.IsValid()) + return; +#endif // Modifiers List modifiers; if (m_CollectObjects == CollectObjects.Children) @@ -225,6 +232,10 @@ void AppendModifierVolumes(ref List sources) continue; if (!m.AffectsAgentType(m_AgentTypeID)) continue; +#if UNITY_EDITOR + if (!myStage.Contains(m.gameObject)) + continue; +#endif var mcenter = m.transform.TransformPoint(m.center); var scale = m.transform.lossyScale; var msize = new Vector3(m.size.x * Mathf.Abs(scale.x), m.size.y * Mathf.Abs(scale.y), m.size.z * Mathf.Abs(scale.z)); @@ -254,7 +265,6 @@ List CollectSources() modifiers = NavMeshModifier.activeModifiers; } - var scene = gameObject.scene; foreach (var m in modifiers) { if ((m_LayerMask & (1 << m.gameObject.layer)) == 0) @@ -269,6 +279,7 @@ List CollectSources() markups.Add(markup); } + var scene = gameObject.scene; if (m_CollectObjects == CollectObjects.All) { NavMeshBuilder.CollectSources(null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, scene, sources); From e187f1029718e2a72c19f0b9218f6a26b6fdc21f Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 6 Jun 2018 12:56:29 +0200 Subject: [PATCH 45/82] Added tests for checking that NavMeshes from the prefab gameobjects themselves never get activated. --- .../Editor/NavMeshSurfaceInPrefabTests.cs | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 7cae649d..2bc2e0b9 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -18,7 +18,9 @@ public class NavMeshSurfaceInPrefabTests { const string k_AutoSaveKey = "AutoSave"; - string m_TempFolder = "Assets/Tests/Editor/TempPrefabs"; + const string k_ParentFolder = "Assets/Tests/Editor"; + const string k_TempFolderName = "TempPrefab"; + string m_TempFolder = k_ParentFolder + "/" + k_TempFolderName; string m_PrefabPath; string m_PreviousScenePath; string m_TempScenePath; @@ -47,7 +49,7 @@ public void OneTimeSetup() //if (!System.IO.Directory.Exists(m_TempFolder)) //{ - var folderGUID = AssetDatabase.CreateFolder("Assets/Tests/Editor", "TempPrefabs"); + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); //} @@ -127,6 +129,10 @@ public IEnumerator TearDown() // AssetDatabase.DeleteAsset(m_PrefabPath); //} + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null) + prefabStage.ClearDirtiness(); + StageUtility.GoToMainStage(); #if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS @@ -161,8 +167,42 @@ static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) Assert.IsFalse(HasNavMeshAtPosition(pos, ~expectedAreaMask), "A NavMesh with an area other than {0} exists at position {1}.", expectedArea, pos); } + [Test] + public void NavMeshSurfacePrefab_WhenOpenedInPrefabMode_DoesNotActivateItsNavMesh() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + + NavMeshHit hit; + NavMesh.SamplePosition(Vector3.zero, out hit, 1000000f, new NavMeshQueryFilter { areaMask = NavMesh.AllAreas, agentTypeID = 0 }); + Assert.That(hit.hit, Is.False, "The NavMesh instance of a prefab opened for edit should not be active under any circumstances."); + } + + [UnityTest] + public IEnumerator NavMeshSurfacePrefab_AfterBakingInPrefabMode_DoesNotActivateItsNavMesh() + { + var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); + AssetDatabase.OpenAsset(prefab); + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); + NavMeshAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); + prefabStage.SavePrefab(); + + yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); + + NavMeshHit hit; + NavMesh.SamplePosition(Vector3.zero, out hit, 1000000f, new NavMeshQueryFilter { areaMask = NavMesh.AllAreas, agentTypeID = 0 }); + Assert.That(hit.hit, Is.False, "The NavMesh instance of a prefab opened for edit should not be active after baking the surface."); + + prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + prefabStage.SavePrefab(); + + NavMesh.SamplePosition(Vector3.zero, out hit, 1000000f, new NavMeshQueryFilter { areaMask = NavMesh.AllAreas, agentTypeID = 0 }); + Assert.That(hit.hit, Is.False, "The NavMesh instance of a prefab opened for edit should not be active after baking the surface."); + } + [UnityTest] - public IEnumerator NavMeshSurfacePrefab_AfterEditing_LeavesMainSceneUntouched() + public IEnumerator NavMeshSurfacePrefab_AfterBakingInPrefabMode_LeavesMainSceneUntouched() { Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero)); From 1093e33c17d825546028946f13ad3d2aaa7dbfa5 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Wed, 6 Jun 2018 13:05:53 +0200 Subject: [PATCH 46/82] When prefab objects get enabled their NavMeshes must not become activated in the navigation system. Used ExecuteAlways attribute to make sure that NavMeshSurfaces from prefabs can be inspected during playmode. --- .../Scripts/NavMeshSurface.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs index c67735fb..2b5befb6 100644 --- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs +++ b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs @@ -13,7 +13,7 @@ public enum CollectObjects Children = 2, } - [ExecuteInEditMode] + [ExecuteAlways] [DefaultExecutionOrder(-102)] [AddComponentMenu("Navigation/NavMeshSurface", 30)] [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] @@ -105,6 +105,16 @@ void OnDisable() public void AddData() { +#if UNITY_EDITOR + var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(this); + var isPrefab = isInPreviewScene || EditorUtility.IsPersistent(this); + if (isPrefab) + { + //Debug.LogFormat("NavMeshData from {0}.{1} will not be added to the NavMesh world because the gameObject is a prefab.", + // gameObject.name, name); + return; + } +#endif if (m_NavMeshDataInstance.valid) return; @@ -186,6 +196,16 @@ public AsyncOperation UpdateNavMesh(NavMeshData data) static void Register(NavMeshSurface surface) { +#if UNITY_EDITOR + var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(surface); + var isPrefab = isInPreviewScene || EditorUtility.IsPersistent(surface); + if (isPrefab) + { + //Debug.LogFormat("NavMeshData from {0}.{1} will not be added to the NavMesh world because the gameObject is a prefab.", + // surface.gameObject.name, surface.name); + return; + } +#endif if (s_NavMeshSurfaces.Count == 0) NavMesh.onPreUpdate += UpdateActive; From 3b896915c1f34a7d5caeebe84e53451369bb21e6 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 7 Jun 2018 11:20:16 +0200 Subject: [PATCH 47/82] Fixed the use of internal methods for disabling the NavMeshData object field in the custom inspector. --- .../NavMeshComponents/Editor/NavMeshSurfaceEditor.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs index ff29897e..c9f00689 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs @@ -243,11 +243,12 @@ public override void OnInspectorGUI() var rectLabel = EditorGUI.PrefixLabel(nmdRect, GUIUtility.GetControlID(FocusType.Passive), new GUIContent(m_NavMeshData.displayName)); EditorGUI.EndProperty(); - EditorGUI.BeginDisabled(true); - EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData); - EditorGUI.ObjectField(rectLabel, m_NavMeshData, GUIContent.none); - EditorGUI.EndProperty(); - EditorGUI.EndDisabled(); + using (new EditorGUI.DisabledScope(true)) + { + EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData); + EditorGUI.ObjectField(rectLabel, m_NavMeshData, GUIContent.none); + EditorGUI.EndProperty(); + } #endif using (new EditorGUI.DisabledScope(Application.isPlaying || m_AgentTypeID.intValue == -1)) { From f1ff9dcc52e05e62b6e6e2d660f05952f33bcfde Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 7 Jun 2018 11:31:17 +0200 Subject: [PATCH 48/82] Access the internal property autoSave through reflection. --- .../NavMeshModifierVolumeInPrefabTests.cs | 6 +- .../Editor/NavMeshSurfaceInPrefabTests.cs | 12 ++-- .../NavMeshSurfaceInPrefabVariantTests.cs | 6 +- .../Tests/Editor/PrefabStageAutoSavingUtil.cs | 56 +++++++++++++++++++ .../Editor/PrefabStageAutoSavingUtil.cs.meta | 11 ++++ 5 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs create mode 100644 Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs.meta diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs index 9df06c29..edb222a4 100644 --- a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -49,8 +49,8 @@ public void OneTimeSetup() m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); //} - SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); - StageNavigationManager.instance.autoSave = false; + SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); StageUtility.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; @@ -63,7 +63,7 @@ public void OneTimeSetup() [OneTimeTearDown] public void OneTimeTearDown() { - StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 2bc2e0b9..88623e66 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -53,8 +53,8 @@ public void OneTimeSetup() m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); //} - SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); - StageNavigationManager.instance.autoSave = false; + SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); StageUtility.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; @@ -67,7 +67,7 @@ public void OneTimeSetup() [OneTimeTearDown] public void OneTimeTearDown() { - StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); @@ -589,8 +589,8 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNewNavMeshData() { - var wasAutoSave = StageNavigationManager.instance.autoSave; - StageNavigationManager.instance.autoSave = true; + var wasAutoSave = PrefabStageAutoSavingUtil.GetPrefabStageAutoSave(); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(true); var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); AssetDatabase.OpenAsset(prefab); @@ -613,7 +613,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe StageUtility.GoToMainStage(); - StageNavigationManager.instance.autoSave = wasAutoSave; + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(wasAutoSave); yield return null; } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index dead8675..03e6c9b5 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -48,8 +48,8 @@ public void OneTimeSetup() m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); //} - SessionState.SetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); - StageNavigationManager.instance.autoSave = false; + SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); StageUtility.GoToMainStage(); m_PreviousScenePath = SceneManager.GetActiveScene().path; @@ -62,7 +62,7 @@ public void OneTimeSetup() [OneTimeTearDown] public void OneTimeTearDown() { - StageNavigationManager.instance.autoSave = SessionState.GetBool(k_AutoSaveKey, StageNavigationManager.instance.autoSave); + PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); diff --git a/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs new file mode 100644 index 00000000..08ba3df8 --- /dev/null +++ b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs @@ -0,0 +1,56 @@ +using System; +using System.Reflection; +using UnityEditor; + +public static class PrefabStageAutoSavingUtil +{ + public static bool GetPrefabStageAutoSave() + { + object stageNavMgrInstance = GetStageNavigationManagerInstance(); + var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); + return (bool)autoSaveProperty.GetValue(stageNavMgrInstance, null); + } + + public static void SetPrefabStageAutoSave(bool value) + { + object stageNavMgrInstance = GetStageNavigationManagerInstance(); + var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); + autoSaveProperty.SetValue(stageNavMgrInstance, value, null); + } + + static object GetStageNavigationManagerInstance() + { + string editorAssemblyName = typeof(EditorWindow).Assembly.FullName; + Type t = Type.GetType("UnityEditor.SceneManagement.StageNavigationManager, " + editorAssemblyName, true, true); + if (t == null) + throw new ArgumentException(); + + var instanceProperty = t.GetProperty("instance", BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy); + if (instanceProperty == null) + throw new ArgumentException(); + + var stageNavMgrInstance = instanceProperty.GetValue(null, null); + return stageNavMgrInstance; + } + + static PropertyInfo GetAutoSaveProperty(object stageNavigationManagerInstance) + { + var autoSaveProperty = stageNavigationManagerInstance.GetType().GetProperty("autoSave", BindingFlags.Instance | BindingFlags.NonPublic); + if (autoSaveProperty == null) + throw new ArgumentException(); + + return autoSaveProperty; + } + + // Used for testing + /* + [MenuItem("Stage/ToggleAutoSave")] + public static void ToggleStageAutoSaving() + { + object stageNavMgrInstance = GetStageNavigationManagerInstance(); + var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); + bool oldValue = (bool)autoSaveProperty.GetValue(stageNavMgrInstance, null); + autoSaveProperty.SetValue(stageNavMgrInstance, !oldValue, null); + } + */ +} diff --git a/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs.meta b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs.meta new file mode 100644 index 00000000..b4765850 --- /dev/null +++ b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9cd905de8fe98d94a82de074adbd499d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 5e24ba3305267f89eb3f0f8e37b964e54e23dcfb Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 7 Jun 2018 11:44:05 +0200 Subject: [PATCH 49/82] Adapt to changes in the API and access modifiers. --- .../Editor/NavMeshModifierVolumeInPrefabTests.cs | 2 +- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 12 ++++++------ .../Editor/NavMeshSurfaceInPrefabVariantTests.cs | 5 +++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs index edb222a4..3fe822f2 100644 --- a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -66,7 +66,7 @@ public void OneTimeTearDown() PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); - EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); if (string.IsNullOrEmpty(m_PreviousScenePath)) { diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index 88623e66..ab9e5d8a 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -70,7 +70,7 @@ public void OneTimeTearDown() PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); - EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); if (string.IsNullOrEmpty(m_PreviousScenePath)) { @@ -640,7 +640,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA Assert.IsTrue(System.IO.File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file exists after the instance has changed. ({0})", initialInstanceAssetPath); - PrefabUtility.ApplyPrefabInstance(instance); + PrefabUtility.ApplyPrefabInstance(instance, InteractionMode.AutomatedAction); Assert.IsFalse(System.IO.File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file still exists after the changes from the instance have been applied back to the prefab. ({0})", @@ -676,7 +676,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, instanceTwo.transform.position); - PrefabUtility.ApplyPrefabInstance(instanceOne); + PrefabUtility.ApplyPrefabInstance(instanceOne, InteractionMode.AutomatedAction); TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); @@ -713,7 +713,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); - PrefabUtility.ApplyPrefabInstance(instance); + PrefabUtility.ApplyPrefabInstance(instance, InteractionMode.AutomatedAction); AssetDatabase.OpenAsset(prefab); var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); @@ -744,7 +744,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr TestNavMeshExistsAloneAtPosition(k_RedArea, Vector3.zero); - PrefabUtility.RevertPrefabInstance(instance); + PrefabUtility.RevertPrefabInstance(instance, InteractionMode.AutomatedAction); TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); @@ -771,7 +771,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset Assert.IsTrue(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file must exist. ({0})", instanceAssetPath); - PrefabUtility.RevertPrefabInstance(instance); + PrefabUtility.RevertPrefabInstance(instance, InteractionMode.AutomatedAction); Assert.IsFalse(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", instanceAssetPath); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index 03e6c9b5..aefadc06 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -65,7 +65,7 @@ public void OneTimeTearDown() PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(SessionState.GetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave())); StageUtility.GoToMainStage(); - EditorSceneManager.ClearSceneDirtiness(SceneManager.GetActiveScene()); + EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); if (string.IsNullOrEmpty(m_PreviousScenePath)) { @@ -186,7 +186,8 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenFreshAndRebaked_ParentAssetUn public IEnumerator NavMeshSurfacePrefabVariant_WhenCustomizedAndRebaked_OldAssetDiscardedAndParentAssetUnchanged() { var prefabVariant = AssetDatabase.LoadAssetAtPath(m_PrefabVariantPath); - var theOriginalPrefab = PrefabUtility.GetOriginalSourceOrVariantRoot(prefabVariant); + var theOriginalPrefabPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(prefabVariant); + var theOriginalPrefab = AssetDatabase.LoadAssetAtPath(theOriginalPrefabPath); AssetDatabase.OpenAsset(theOriginalPrefab); var theOriginalPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); From e5d153ac1a63fb54fbd814f8512838ae2269ed13 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 7 Jun 2018 15:43:29 +0200 Subject: [PATCH 50/82] Access prefab saving through reflection. --- .../NavMeshModifierVolumeInPrefabTests.cs | 6 +++--- .../Editor/NavMeshSurfaceInPrefabTests.cs | 20 +++++++++---------- .../NavMeshSurfaceInPrefabVariantTests.cs | 8 ++++---- Assets/Tests/Editor/PrefabSavingUtil.cs | 18 +++++++++++++++++ Assets/Tests/Editor/PrefabSavingUtil.cs.meta | 11 ++++++++++ 5 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 Assets/Tests/Editor/PrefabSavingUtil.cs create mode 100644 Assets/Tests/Editor/PrefabSavingUtil.cs.meta diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs index 3fe822f2..d8f30464 100644 --- a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -126,7 +126,7 @@ public IEnumerator ModifierVolume_WhenInsidePrefabMode_ModifiesTheNavMeshInPrefa modifierVolume.center = Vector3.zero; modifierVolume.size = Vector3.one; yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); NavMeshHit hitCenter; @@ -179,7 +179,7 @@ public IEnumerator ModifierVolume_WhenInsidePrefabMode_DoesNotAffectTheNavMeshIn // bake the NavMeshSurface from the main scene while the prefab mode is open yield return BakeNavMeshAsync(() => mainSceneSurface, mainSceneSurface.defaultArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); StageUtility.GoToMainStage(); @@ -218,7 +218,7 @@ public IEnumerator ModifierVolume_WhenOutsidePrefabMode_DoesNotAffectTheNavMeshI var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); NavMesh.SamplePosition(Vector3.zero, out hit, 0.1f, filter); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index ab9e5d8a..e2dd8f02 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -101,7 +101,7 @@ public IEnumerator Setup() var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_PrefabDefaultArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); NavMesh.RemoveAllNavMeshData(); @@ -186,7 +186,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterBakingInPrefabMode_DoesNotActivateI var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); NavMeshAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); @@ -195,7 +195,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterBakingInPrefabMode_DoesNotActivateI Assert.That(hit.hit, Is.False, "The NavMesh instance of a prefab opened for edit should not be active after baking the surface."); prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); NavMesh.SamplePosition(Vector3.zero, out hit, 1000000f, new NavMeshQueryFilter { areaMask = NavMesh.AllAreas, agentTypeID = 0 }); Assert.That(hit.hit, Is.False, "The NavMesh instance of a prefab opened for edit should not be active after baking the surface."); @@ -218,7 +218,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterBakingInPrefabMode_LeavesMainSceneU Assert.AreNotSame(initialPrefabNavMeshData, prefabSurface.navMeshData); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, NavMesh.AllAreas, 0, 1000.0f)); @@ -284,7 +284,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); NavMeshAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); Assert.IsTrue(instanceSurface.navMeshData == null, @@ -313,7 +313,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); @@ -477,7 +477,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); var initialPrefabNavMeshData = prefabSurface.navMeshData; yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); AssetDatabase.OpenAsset(prefab); @@ -576,7 +576,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); Assert.IsTrue(prefabSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); Assert.IsFalse(System.IO.File.Exists(initialAssetPath), "NavMeshData file still exists after saving. ({0})", initialAssetPath); Assert.IsTrue(initialNavMeshData == null, "The initial NavMeshData must no longer exist after saving the prefab."); @@ -684,7 +684,7 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); @@ -802,7 +802,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre prefabSurface.collectObjects = CollectObjects.All; yield return BakeNavMeshAsync(() => prefabSurface, k_RedArea); - prefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabStage); StageUtility.GoToMainStage(); var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index aefadc06..ceb21a61 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -95,7 +95,7 @@ public IEnumerator Setup() var theOriginalPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); var theOriginalPrefabSurface = theOriginalPrefabStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => theOriginalPrefabSurface, k_PrefabDefaultArea); - theOriginalPrefabStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(theOriginalPrefabStage); StageUtility.GoToMainStage(); PrefabUtility.CreateVariant(planePrefab, m_PrefabVariantPath); @@ -168,7 +168,7 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenFreshAndRebaked_ParentAssetUn Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); - prefabVariantStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabVariantStage); var theNewVariantNavMeshData = prefabVariantSurface.navMeshData; var theNewVariantAssetPath = AssetDatabase.GetAssetPath(theNewVariantNavMeshData); @@ -203,7 +203,7 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenCustomizedAndRebaked_OldAsset var prefabVariantSurface = prefabVariantStage.prefabContentsRoot.GetComponent(); yield return BakeNavMeshAsync(() => prefabVariantSurface, k_GrayArea); - prefabVariantStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabVariantStage); var modifiedVariantNavMeshData = prefabVariantSurface.navMeshData; var modifiedVariantAssetPath = AssetDatabase.GetAssetPath(prefabVariantSurface.navMeshData); @@ -224,7 +224,7 @@ public IEnumerator NavMeshSurfacePrefabVariant_WhenCustomizedAndRebaked_OldAsset Assert.IsTrue(unsavedRebakedNavMeshData == null, "An unsaved NavMeshData should not exist after a re-bake."); Assert.IsTrue(prefabVariantSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); - prefabVariantStage.SavePrefab(); + PrefabSavingUtil.SavePrefab(prefabVariantStage); var theNewVariantNavMeshData = prefabVariantSurface.navMeshData; var theNewVariantAssetPath = AssetDatabase.GetAssetPath(theNewVariantNavMeshData); diff --git a/Assets/Tests/Editor/PrefabSavingUtil.cs b/Assets/Tests/Editor/PrefabSavingUtil.cs new file mode 100644 index 00000000..0a0f8f2e --- /dev/null +++ b/Assets/Tests/Editor/PrefabSavingUtil.cs @@ -0,0 +1,18 @@ +using System; +using System.Reflection; +using UnityEditor.Experimental.SceneManagement; + +public class PrefabSavingUtil { + + public static void SavePrefab(PrefabStage prefabStage) + { + if (prefabStage == null) + throw new ArgumentNullException(); + + var savePrefabMethod = prefabStage.GetType().GetMethod("SavePrefab", BindingFlags.NonPublic | BindingFlags.Instance); + if (savePrefabMethod == null) + throw new InvalidOperationException(); + + savePrefabMethod.Invoke(prefabStage, null); + } +} diff --git a/Assets/Tests/Editor/PrefabSavingUtil.cs.meta b/Assets/Tests/Editor/PrefabSavingUtil.cs.meta new file mode 100644 index 00000000..1941990a --- /dev/null +++ b/Assets/Tests/Editor/PrefabSavingUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4de45126199b4c84dbc8b9620cf3263d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 627f59901b157f69be088ac6553eca31456a9571 Mon Sep 17 00:00:00 2001 From: Adrian T Date: Thu, 7 Jun 2018 16:37:11 +0200 Subject: [PATCH 51/82] Update resources after merge. --- .../Prefabs/DungeonTiles/Tile0.prefab | Bin 16192 -> 16508 bytes .../Prefabs/DungeonTiles/Tile1.prefab | Bin 17088 -> 15459 bytes .../Prefabs/DungeonTiles/Tile10.prefab | Bin 16880 -> 14395 bytes .../Prefabs/DungeonTiles/Tile11.prefab | Bin 16640 -> 13345 bytes .../Prefabs/DungeonTiles/Tile12.prefab | Bin 16880 -> 14412 bytes .../Prefabs/DungeonTiles/Tile13.prefab | Bin 16640 -> 13362 bytes .../Prefabs/DungeonTiles/Tile14.prefab | Bin 16624 -> 13346 bytes .../Prefabs/DungeonTiles/Tile15.prefab | Bin 16368 -> 12296 bytes .../Prefabs/DungeonTiles/Tile2.prefab | Bin 17104 -> 15443 bytes .../Prefabs/DungeonTiles/Tile3.prefab | Bin 16880 -> 14393 bytes .../Prefabs/DungeonTiles/Tile4.prefab | Bin 17104 -> 15460 bytes .../Prefabs/DungeonTiles/Tile5.prefab | Bin 16848 -> 14410 bytes .../Prefabs/DungeonTiles/Tile6.prefab | Bin 16880 -> 14394 bytes .../Prefabs/DungeonTiles/Tile7.prefab | Bin 16640 -> 13344 bytes .../Prefabs/DungeonTiles/Tile8.prefab | Bin 17104 -> 15459 bytes .../Prefabs/DungeonTiles/Tile9.prefab | Bin 16848 -> 14409 bytes ProjectSettings/EditorSettings.asset | 12 +++++++++++- ProjectSettings/ProjectVersion.txt | 2 +- README.md | 2 +- 19 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab index 9635ae76012eca0bb7947166e766d5f7885abe7f..8c31521dcbd7649ed5ca26c475549bc41a75c45e 100644 GIT binary patch literal 16508 zcmeHOTT|n>5`O1bcprA2fU+!Gws{L-E;$7=6k(`3b!v-}Z6)}uFO=;tuv`1zw_BG) zF-ewU2Zk_sYGN$Qx^#bPeUiF={qNx9*dhC5=hySWN9UK>FHXm&2eT^g?r653*5$6} z5^}J!x3`CHiSv#S76#GIM_!6A$^S*#9qc$xd8z*XlxN~Y!Kdwk05{>xT0IWO`*M0O#XHm|D# zhw17|s9RLBk$VpGM?Wq~_dSmV5jJ7~t@@9Jhr z5uLj_5+#E-PhTMS9y^&0@U%p-=uCn z@a_sVI@gXLdqE)aQeK|bb@!#o@V(OTF*g1EtPsthniit{lmj+peM>#~%jk$w=bc92 z4l4UYUUX2Jtoeryxd*5T+iS^%xSs3nI@4L6fsT5Y=soW`-Q6{40&IgeJuGnE>7llB zSl-+!%F7{dyYUsz>TfXZpwwX8iBy2G>!lvu zRlLm8FKJrLG9gVNWe}AzjqP3<$xEXc`!m_luE+ zbyUd@N`7th1am$>{6>7emw@&<@P_i<#B z#$65~Fg1(?FXt>|EKq48Q}dz%JN6tJN|j#nDlccHtV<0oU#1UcUH$dqgx?M6uEwh(C;b3MXd z5e*Be7fbo9qhTS9s3cLVGq8XJLAap=k1{tPlBboIOQdN*!y>7P=ci$^^IJi~BW`FWV^{C4m#gxz=HVUl}U zn+SHP)_xeQdzN;@^bXgf_ruh}>v23xLU2oX*g{WF!NcTO+ZG;XiQ+}_Flm>zhKDVr z`NqTEc-T+B9~ODUdrilZe#FRzQ%6eOh-@NiaHtvRbEwrDX28Q}Wn03) zY*D;S28I@CTNs!n&DY1kJR(mW&6yn%>-BVE z9V@<_N&Y-%l2OEh*R&Tl_vBg4pa}7CkPzZg0{O*nGZ*uU+e8J9S(w-l{4Z;Tzc#CtyC%VBc4}J+3?HU6MTGkI5j{64tZH;ORfi zT|TDrH*yml-l3i`k;0WErZAb!OB5VPCMF zRMjhgy$EjjzjyWf-Fqz`?Xuu+V!ko;;1VR%AL1Rw!1P@w|I-aLj0XarIE2*5zt?IU zGsoA)RXyv$ub^eux-lt0UsK}i}d zgSm_n@fnr9Djm~|lI{HK(&y!@0s~qFW`V#|X!^Nmnt8LhKLiZMGT>LnG9Vxxcs<54 zFxcy0fnY)Eu`~=AA!L$>P{8I$m}VRUTsDJYZQJ@nG0)}$0|Ik5>2P0I29wyg3=ac? zZ2_<(quhSFsRi$SkjQr{!JxlFKs=>oz-o+Tcw#X45kzM4P{5H+NJ$zK#uFk);wAyO zX)+Z^ty#q345DAhqQmed$tE^TLl8Arb?4xjV?vx9M<$)|ET3U$mJFoQiJt_<+o>p7 zoir|Li~#i!jXG&qP$=_ zfN#(UZYnH!HRHul6orcZQstzJ=Y0Z_fGgA$V0NTbcJ^-m>;)(_Xmpy+8d#s67CaRt zhM~)_JIBdHGMk!-9Ciimka^V?2$BOC=@?^`gcCJzIFtBgGQpJNy!w5Ss6y-yA;d4! q`hob!_2HmWT9@x{JK44s@uEmN9vI@YD##l4T`?eA?JW(K0r58@08wKA literal 16192 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab index d5d2c3a69ffee78eaf0cfbeec7ae3b373ba43a4c..791aa7024b86f1c5d82dd826e25448137402b79b 100644 GIT binary patch literal 15459 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile10.prefab index 301f663209fa81a425d6526630b605215052df99..aa32896a7d4d95f38af0e5a887c0a0aa3b63f84a 100644 GIT binary patch literal 14395 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 L&z5?6Nl1SIgP5{b literal 16880 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab index a4ea38ca5e7b1995c43888c0ff393c5a6679abf9..b0ab49b04a5bd0baae73d264e758a9acaab95c2d 100644 GIT binary patch literal 13345 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 WMMgY+WOmuQQ#eSq5%o;g0r4O44P%i2 literal 16640 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab index 74f6c120674f74f53686e2006ef6369d769bc755..0784e3c0ed811a88fb1eb950db2741d79ffaa251 100644 GIT binary patch literal 14412 zcmeHOTT|P}5`O1bXdgCDK+WhbzZnRLPeDRq!l|vTQ`ATr+d8WYCCLPKYybP{o{Ke> zm!gvg7K}$dcD1`OAR@Xj{GL*mz(pO~rj8qUo-4b1#vXXBhxq}dF|ux}x@Ea5 zTE1fQXUp=e&8Jfz64wZX04aGDY&ft3vtVmzT zU^`v}Q&p;Q4N;}d%<`(Lg(bW^MvKAk1V#(9Q!?C!(F)Y|Er4bPqXGvzt46Tx0U%<8 z$YtQMt3cZmD5)0MXCtzlN>4>($Fbfh!8F{0kXzFZv4id8dtlu$@i=`YL@LCRrkkLo`YMrE202YMQ6|uhd`U+X3|{M8Ter< zr)_QF8gL4K%z zXK?W40(Z$14!&qF_2i*sMV5R_l6;wR;i=-hKd*2hyoU9#s#i6fW%EUQQCBhl)Uf#~ z?4n1Bx8 z*DKLa=4Dm$55N{!-ketT@d8|<6W&U>>wZswGy$#E-|8!C&-b3 zrsn2}kuwU2qEQTV$V0pj{Tv81>UQNk(uxgJAVH!mz5fR9+wpsxFcM)Q`5KLvSO<33YRrR@m+FR0ZTi> zWjks1mf2UpWhrq8oO2BC^USvI^B@&B$mkCy`_Eyrk>~p1D`K*drW(UelxDIHoZN+x zZ%3MhZ8BMTcpHk1g_rlJ#5i`sqY@VM6^}}}NaA1sj?^R)Q4~L%=Ne@P4+_-L?SWQR z&%^o>w|(l_t=xEes&}4MXG)#J( z&~wDR9fo7y3&PMB)M+?_?Eq<(taxy{5lQdgwc9B6zjgzn(d-PE9g44c%Gs@ia|#65 zsMH|6^7xi2$_o@&W_$JluGH{TVObsEq6O{-=@sZ8MfEL6ub65(LV8V6e3ztGz|yXe zUPGF_1^x%=g^Bx4)e>;R5{`D?B&h@UY zXEN)8-&B{;?O@=lE{}HX#-NK0DLo|4 zpplsAYf6X8bUkb7T1gwmpjvkgqtN5j7=OBZV5YCws2fpun$t-r0 z#J1ho54T2{*AE9hzT-M-xkRvT&Tf^(}^EvGfX+l%HO&~`N`Z7gpsC7KM;kxJ?I!a37_EHx1w(Y XQOWrFk=sFooAdfJCakCTZO#7xh>p2< literal 16880 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 literal 16640 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 T*U4thNvG}21N&fqqu2icO6#YR diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab index e71dbed10bae789fb100ba4fbef5f66dfb62f7a7..601aad6ed89c8d316d54aa24f0107f956da6f1cf 100644 GIT binary patch literal 13346 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile15.prefab index c0f9c103940cfc4c5371a9c2fcf71d56d7147f14..a53f798ecdcb7fadc37a197074c54a30c0219270 100644 GIT binary patch literal 12296 zcmeHN+iu%P5`EWKa2_U4mcZtndXr^4(ZWs)%kg5dSQt&RC2@xrgQOgL7W400)fcKo zQHkS;JtHFoM2f|}SM}*r)&1+gCKu-h8Ii%S*OT|gFY8~7hAzkJB5fY+WE7YAk!2Dx z9t?*={7Q^>g!ooq4c^n7eTx3e;$}QBjQm#o|Bxo^EThYMY?xd;Evt&vcV&^J#d2P* zt61eS{3*zPmC`Kzoh3J{s?)L<8=kB_ zhq_t88#y$fKk{``y5qa1wpR5w4uXpD`!vTA5% z@tUvca^6(X>9O&-fH7UNgv)0!wyxXvkM#b6)vK*C=M8Pr_%unIvf3KcSv`rH^d2fC zN-vJ_PV{4NUD2XmlvVyWP)mNRS;?l)!h(d-&&!x*S0#3pkIMs$=#lZr@4xf=7wD#z z_Oh(gowOtS$bi(AmTnH^q7gxXgck^RNFs}xuF@>27--_(|KVymqscMm`dM^$hK{~lg2l|mG>;o8h{aQ zD1RxH*|%nD8p8H!D-|&<(^9y~K~}pl?LYoixC*L~sN=cDJ2}e+$K}Jc%rYQxhcXm^ zs!08`;gCi*tFNmRSXWEYwid1)!YEeuIgm)PlJ~I&SY5C{Bo+M&y#;0^5s91C6)RvY z4`npBhA6+C(z=O@Wc$v(Go}(9f1dS+S4c8_=viE34@WsL=^)#JH<=&%i|jH>POb&y;B1 zq%Z`khB>2o>)*{8s*NRr2MTk?oP1+L})~J*yhl5Whfd4)TC{ngiO-e?lpMqL@4R?*%a@_L9i)qKtF^{f!Cya!&;ddpXytwlz$5|M}tEL zP*2hEcIr5`7kZL{Z-iP@WFriHJK)x#mkHz{l>B?gi$9|3jE#pucuv&Itd&D=b5L9p3o+DLy z20XF+vWYfryRp7&Id2Ib1eYEBMI1IE!3;G7y0>VCr z+YVoy+=?jQpMqPfHLb&e+l>l;!tIN}EyNyhJEa?d7|1Ba32o@#V#iK+_Ry*vcIJR= z?%iFI4aYF5+^K+F63D}QVz?flD{~yNXJML)&Lt=p+*Ja8o=EQP?u67zN51HfoS^=0#XiZST<6*8bvJn?!CGBC#s;v@+p--%p2B53*W0)h5L z23qHF>!oT$z zgUp2n@sh}Z)hJ|mVPkMDD~{|ivSLC)(@&_GETSlgm=$`kZXhz`w~|F1ui*^qoHe-N z&Dq3PmLWK4v3)SoFu3T7Cg~bC^ZC}h6nlafcEw0!S4vC1UCLY0o4$@*xvnk6mab7@_ z6K~!}1das4^A8D&)=RaJ=eJu&twmqp zSOtucJSi+hxKIO!Q^HS+1xn7-;s;ce?VV}!cz Vi_Afct$S3uHwdSn$?Key{Xgbg8gu{v literal 16368 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab index c4010a19176f9261390356f06084d35cdfca7152..edca0c999be7b7bc7a55817a311151a2dea541ee 100644 GIT binary patch literal 15443 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 Xw)I5Yir4oHQD2<7*ig>OnUVhk^6~!L literal 17104 zcmeHN3vgYkeb#*HE zk>#NrhCj;FI0?^;5KpL=z`qcA%Fi}h19H_RnjsHw;#5Uzig;4Xc^v9c&LfHACVnQK zm!mxUbySGgs|Ap=4SC|cP5FjMe}But-TodO;zpmH$g|yJaPy)b)P-@v&jE3;`&ai3xQL9=06_dhQ9}S@_z!)TKvDw@~MgZ9M4+(zZ2pK^%(TC z4SDM3Q@D9?++BP4w8jFByZSjc#EpIikf(l*(>Qqy{x0-G{CM0-r8Ev*20M_We4nw; zuC7XH`RYuzQY@_=srZF*wpdu9@>|zrbAHDvB)YuHpiZ=?toO@0wKez11Gap$u zxAj}O>+gN!M9B9?R>lg(`~UNNI}_u*!_Heh-*msCoVjx-n1zfKNmUToNq3^9692gZ!W$9IpSu%kss|s|0!VP*7L1KyPR(> zkF?AA=Hk*W=bOO|e;0D(*Ym9gKj)jvBmA6iE-w6>Z^BQ1cNub=&zx_y{2k|8Eq}-P z){2|{?m6gR{2k|;!RsUQmh(+;cN{t244%+DgUGYLb8#p19kmDgf5BazrVvl)cCSF5 z<26s?0qPiiUX48YPtf=tpiw)SAHzkT3u3tF^K%xTy1(cwroG&zV#TY#rKk}#s;*Q! z;RrO|RV-&UZu8wJ>*HnnU^bU2`E(d-;CQq%*;Fi6HkL9vtt+n{&iSR*!a&Y1ug$_A z>9HOk-@WCWd!M?yZ)Etqm;dI;pDsQAOo+U`&ZrSdH60hi=`z`pP1RB5N!*y#TD2Ua z(~#%%<~xHQe90D`_>wI=?vi~l7a}}y7a}~a3+Yst3J{K_MHgaBETQ&5{@1g7#C9Ix!#u7E+l1ehEjhFoVqkF#NeFD4+G;= z)-EI<9t~Zz3rP`=hAzg17<{!em5mD_Zl<#6lV)Ycv0jH{qEEUI8Q(FapT|u(&63S` zb?U2-^9^7yKSdW}^lb27SlnH*=~_MjPTkXmNO^_?B9B?J1I_Q+n{gq;jcYj?mB~XF z!i(~_JWU##$TKg*6N>hByyc+_;T7khTt*KjWEK4^2=RnonwElx`Y|qq?Iu(w`qcp( z{}q>d(I@eXEPhf9AF()>K)3vL7C)JID!@DA8ov#k?VjS4ryjm<@lzfAF5pjFoc$1f z;;&o$bO(P2*bx}qS-{S~t#rFlJueE&NAvpndAYLc z<`R)^^D61VjzWJC@8U>*wgg#+``A-eHqZ9rFkFA6EEftOy6x6Nda%e)v?^t9F*ls| zH}3FDrEG@c>P4rcpiAVvAzjrk`=uTJ=3aKNW1vth`5TI*Jj7g6EVU1MrOGP5V!Frz zh=@xSuTVL^gLIWFx*%-bzLzISw@;P$853ihabo|pMze)%emJjryR%mkY8|c=H}|gh zMpk9ZU`|Icz2=!AmS(!Vl9z`_r81-Ti6|w2jG}xU$-6-Hy;)-C!KmO}U%d16r?0uS z<%S=8```C}c-zZ=M<2f$H_TpNTuZsW%0=6pZ2QY~X0o-E&C&LgxLseuIXj)TRCwZR zsqjp7Eft>lS}Ht8LatUVYeI4Ut-wtmV8U_s!T12-;k#P>VthfI7LBbI#&60qSI=

j}YK7<#?Y=cQ6#r7v3Gs->Ln4N%k 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 G+W!qZ>6?TA diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab index efb798041da3fe4d3a974a585c37c191b7dea2da..0042c820f3e4f82c08c5e997e5a968ef1852f4d9 100644 GIT binary patch literal 14393 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile4.prefab index 0a03dbe41dee7c4b6f7bddd791a7800690865673..e9c163e3289a6c0f52c1e77ef189211141fb88ad 100644 GIT binary patch literal 15460 zcmeHOTT|mW7Jlbfcpj#oASLE*g1YK!2LYu5{b z8h9s79gV}ARF`D}W4v_-$2kjA4l1Hxm(N$GIpaZ1rt7i{FZ;cYE?g(=S9gs!%W1|>ZB;g3s%-gyq0=b z?Vi9aUII&~KTecrS|^|aRl}6Ctfe4Rj%MSroD?P8vFFfGOIjw$lWduZy5!)pg?zNE zi?3H_?CvP38csq6(wOZl;mU`GABY^P{&QBs%nkz)8qrP;joPNrbOjW_end`P+V)AN zY$p+ogSp^P-8aO+EYi%I+c+2w2Em{*JB=}YF9&O;u7T%hg|5*s+R!i$LgK!_;CiuIFhhTJOtYKhbiS zMc&kMnCE*BZ%I177l(YoZWD;2e8o{YC_*<2>GyrcLtCB(5R;jSf^4YE_>VaZ~$&q}_)} zoRl)I1%tz+P{fto#6ZnD@XA=7QOOwwhG;<`zU5hOY4@QGo_yHdLcFd`0-L(q-R&hr z7XNL|7DGUH!r2P^Xm0T7+X!|q)DV~Agx`ClXB9h6ZJ?AMk=+TkHIYuJ#SL{rZ5OK( ziaAhrb}ekTnG3!IoI1FM?4vz@qE~kXs3PV(VaE5kl-?(afg6$IO5>COv^r;o@5t-rhM-$boUN{cL+p*+;BquVRvw zvl+B1gOF+%CtJgUn}(z7YeGyRycP0@o*0g6gZ^z$kGy8Rs}Td6ZGH)A3%}K~N?+~y9q$6R1xbe^9W#LtW0TP=LwGkw`e8uQcm?~#Qu8gz>hNgB1OK30EPu1`Ch4$kyU{J{s3|O*bU5$Lu)tII&}AhGg<#Fsy+P~Mia2@L2JTnz-OAl1*VY3faPe+(G({K_*RARc)= z#WPqD;hb5a=en*F%>WsZY1*OdIZ+VX0Y=(942G?3>nlY)s|*SR>aOH)?>vJN_C3Sn zz@U2oEJ+!+FITnTT?bVw-w1~0Edt^>Jp)#wJi{}C!S>-87V|iqDDf;B1u$ELl+%!e zPGAE-01Vl6!y*osaMW$eYdonS*u(?V5FC+N{g5^cA-Z63vcyvu;><)N{KWBa&CtL| z>_#+A3q0;+TxP6@xvW+*vL^4~h4JW6{Ar+MPW mK5!TcD&BJT3)_-iAK%rYZ5s}U;p<0!|8*-9TgvIJto$DceFZT9 literal 17104 zcmeHN4RBq>b>62Z$@~ROlZF(CD`N+Y`Lk?;4LJ6bWE%@)TS&4Y1#GUKuB3hI# z^GMQEzL_wUT0o?c%MzMbfFB2}Cd6yZkMZUwQD*(5#VdHH#+(bD-$ePS;2B;8o-nu6 zn9BD99?Bv7QJ(q$>a$jcq8?U3mdBw7$~m22 zWvu)dW0OdUoYb?*|7*nUl{A+Fr~E8`Jj8{+3uW?u0{8Lwf1UMHWBECr%~od-x5DRV?o6=j0F<{q&(s{hVTP@(BJO^h5kqT*jm<4qaBZphWpT z9o*a7%f%%tdNSogam7&C&zCZV{8E$KxH6OVTbCo#?v?v(rlpV@DCGTo*@U@vFH z5YKIF^M?H*Uh4AtI?KgOz7P4lQ-+%1I#Xmf1 z_hmDh?#bTz$nMi2-2I zbG{kVfU&GG4`N&wqr~y1O}Y3*C=us;bMYl85$Ak!@uescm-$A1vzK!SaIN!$e zcbsocxajX*g#OjvalQ#&8=1G9Z;HF)$oVFC!t(T^%>K^6m9SUT9_arScX=8@JYn12 zj55b-ro}6GNA&r5l*xaZ#diRW+R3aKuKJuE!&RT33Gm7Li?%}A%XSpXUKuXM44Gkb zz1a#!VDa`sDP!@V+=;qA9=7ynvOPtg4r3)8k98&;g+h64vB&1^%PR)6ez7Uvm-S1l zGVn)stVc(`wBf=>_CC}-G&l*e@;Z3a^T!qK$oLd3)pW(VXyKPVrE zI}=Tbc#F*kE(9+q-WA~1g*bR`fV)dJd35O!7gFW9HK=c0NJ?;qQhyAbx)c{8IH&Sc zz&Mqy3#kx~hA!5Hq=-jD7jYqiuW+WaxDetpl~tcKD;dXH8C zo6l;@?U3^zFqogA3lTjF{<8pgmu$M04}nwnbRk-wA%V&xOLoQbyY?n7gt)ktI)4bRkS}9?B(pkdRgNGdsi+c4=A!9_mM22-{7VHuS3% zIQ|w?*cm-gL@pXb8#8lZdA|bh4rKQnHS!c%xLEe`tdV7ahv z{c3M$d8P#BbOf_&o(!=z)9w|$97HOX7`2Z@DFI|u<=aT!1**?wiJb|ff_HuSfj3^b zY5V-!zWvpI-Sg4Cul@~v{0dw!dz-kHa(&fA+ni|o%XMa=wUo`#_LI0=U&1*%m9g-JjXz;CM#>gaQ-dDMIRvHIQt+zKzaCVynZphAWn6vS1 zIN#%d+ZjQDFlJA@H0R*F4=%s<^t-=w@ZkD)zRz`vYc72V6US_gWRYY06OS3?o@mTY z!?W?mjQ(^gW2QXuF;kw&j+yer$4q(LF{914;u>$vlqWuB%A;dOy|qDuUEoRJvhk12 z3$F1M&!6v%fX?XG-|0|Z-YCP^H_^l@T@)}C*KkI>+Jbi z5oOA0jk>~T^$|H~)QJ@FX_jB*v_{Qmz%Pf4l#_DMs6`&({{qV7r%{XiQGOcrc>Ek6 z;feCosFk03xEW>kiAF7WR1Y+2>2FjIG-|W#)C++#mf%*rqF#IVk$(N2zez$>hN=gEq+gU zGReqGS{H#)WOR55Vx_hAW$S_DSs*261k$E$cicI;`|cfYZFutct{!@R>(^)8)_SSw zO0NH>+1p0`E!liJ>fD2iMmG%_oT>wwXjP@b(#a$(cf}68d+<|rK!-k6P@edzO2eU( zne3{nJV)c5CM#3)!vr0W;Brc!tDbd0c%ae6WzZ32r!i7z#QQOU-v&;M4v0w&UE8$| z$W$!u>OmY3@v$EQ#L+}g1FQo|kw1DGU>%Tc_s|~#7C=rq2402(1xm!}fL#0%l!(&- z2`sWnci&eBI2{lZ`?~{ zV-~@tD!whiXFE7~?nIgVpCOJk`HgQ=ADmLx@PK^Zz+S9aZZGg0Q6rEQ`5pms8?VUp z!0R9=DU{0MoNU0-oaxCFWgF;a@!0O#26_=(SdP;%lw)xNEKZ(VA@}Dr_UVR&lLOq=-jHy&CLC*DAZ#@*Vu+$vA^Vu2t;& ziIuVZTx(Ap8OzVL)~=Iiw*`3yv*h7gD?GK9zY}HR4E6=Di>!s@I59#eURKdp+vzTmZH1MUS&yC@k0Ove&d4>c0>=^!s0e+5yGlqB|z|VE?2Z8Sj@bes; z^>+vOycmujct)Rbp~V}}YMuRZa~5!p??o~E zoB-!4Gu>3{^NR)RF9~tk95)91+^ouY$>#Vplv#f%t`kkgw#!&w{pYd}7d?CyJk&!9 z_;`9~B0fUBMfK2392fC6aHxNyuM-~eZ&wBU%R@Zs-?$ozo}>P4C2?HzdpzkQKlRDj zSoAY3qR&+^T=mJA+^w(ryfnl`&fY-I%ZOLlZdA@T;wh1bcB_7PHE~?(pD8Exzb3?4 zGL-@F(@xfgc%AJR4qmLCv|GHv@;r$8YA2V+aP3z|4A*{fJyH9i-o6;{cZGO;L~rY2 zxbm-$;mUtSh>PBC5A=2=@yb}eeU5mlsvp(cZxP2uz1a79gt3rI5)z8C${M_S6 zzmAH?e@zTm`8ULHm49Q13;&}5|Ft0=<@aK^@^{B@B-w1F& z#AQA{0i5&EuGE^{8~Jl$&12CIKpZ$mL$`!yWHwO`kVxbW*d z-4^1>h@IaM!cSCtY<;cF5^%pXMZ&5omIGv>cTHHOG?24 zw^`U*@sps!^Q(OR96|D( zSsW)zwk4a%b(^f;)8{Y8L2^(l=M7ytm>XzH7Yn6Q^-Fsu-{JS+*9-RKCg>!tl1&%NDFEcd$y`@#4`W3ylMhB(s&c$x2-QOHbUhB#Gif}*x3+vwkZZ=TCVB`3U)gdS?XP}$ zM!%-e6QOBdPsHRh_%WV0WHN?7%3Isp%l6tb`AsFmQ!fVy+O-F2sESiG{0)YPKTXJQ z;-MQbQLjao>oFSO&ca|Z?S~SEKON+c2Hj&d#|pU7LOS_UdQ(Z_1B`ibvtXQSitVFg zM4FzcV$a?n*mei2-yv87Zd{X?p4umMPOu?RC^qkT!KQ;kv5}71 z_T5Jvto)brEtWdU*dO&nOf$4>fyIU#ta!O#PdM1YF2VlU!PZ=ow(m9^jT0l}=xe{R zS+D^Idt^wk5eGZw3qAJT>Bm&x-O=|xdTPwI!1{4#VafaNoz!3RmBjPFxL#6oFK;$i z5=$Lx3}Z-Y?hk(O=IF@XYm?i7t%4vB)9Q<3bzt~U@mI>4w82NVjFz zT-!!}s9f}ndFXro#mQpJ@87ZEf6ys1d2(VjDW&nCHB*zkJIsJfiKX zPh=Z9mzih(xZp0teX{)<&;Hcz$my;bEK92J$iYdK6biuX-Quo{PDShc-7@oTd%7M) z>u7tt9|+nRp$xoi()M&r6hB=5bPZ$upVywhhxdQ4J)gWI_uYFhk6e)0u3my@d+H+u zm9!UuCJGmR0tC+S`S;jGCa($3%_pVQH=cQ|t!Z7~d!|6w3f#})feaS zYiCpk>u}?*b~)AeR1Z^qPwj20?`eD0o*`#D$GNIk_332$U47$!#;5u}QhchX|1Mv= z{~retwwZ&aav|rQbC91g_Q;$~@mKiBCS6NdVZ2JNpVM_t>+!C!ys$<8?%&t8M-k+g z?ccX=8P72FeSH=$6L;HnW#lui&*QbL`w!MRTw+`WUFERDHuQ%t<67UeW;xHEDI*iI zRwsO}GO}%6NF%V#XXTFXOAEf6LLO-(wR7jrJ-c@94Ay<@Ib->*b?f$M9p=eiV^<4s zS4_py;1Anm+tnnsYJx9}HHg;ud>T&D>g{P-wWj9o+I`YJGq1aEe|zuumb~!f$LigF zvd$#>iCSSlQ*J-`ezk9vW%0c9P3nx(PrO}Q!JkR>ll7*dmlO5#r%ye%=iABh=}-LK z!>`|1`^vj+Kedl;TZb4=R@3oJ8H^{((l?16w4XYLd|u77PIWv@rM|-FOp_f?o{X}m z#h$9K+^ PIj5c0r&GGKztQwx1Y)mH diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab index 16834dc5ef3e4609fa18f577444472996273bb72..484ac7510d1c8da24119214fdb1b0def430c3a14 100644 GIT binary patch literal 14410 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 bA@TaYQEeMYrjw7KnE$X&tlm*iFERXoJB_zt literal 16848 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 literal 16880 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab index 17aa2c00c02dd18ebea741cf05eb0efa4d93c7b4..b1a00b67d62803fe40c7f591b1b974699558730c 100644 GIT binary patch literal 13344 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

D^dtem8LV!sqYPCcc^#ixOKlj73_3P*#z6 z2XQe5V-lCsa)mxeEYRA+=&SDAC!gk|h_6cB$0?uL3hAQER)7d@SXIGWdA}L%SZ4*7 zYEG|}o?y`j6Te}fFIvIRmPJ{ykFXlitUfBM=@qS-1J($st8vd@C9eP}H1B7MG;dN6 zf$Cw-Xx_q*IYXtfL@bQL*m34CP~nzO(jv`QIqyrnT4F_>teW!k#R)Q z3rs6`07cohO&s$9pys(|K*YK`jN~laH;K)=$S>DWlfYq%tSl?8i64){_~f?(hoRYN zi0SD#Yz?z%EovCd5sTM%LSVw|z>^4uVBJq{0s87w;th$}-W0~icrVd4Y#$73))`R%}9Xm%Q6 z`hPK)3?4vOOl$NW3?mYT!3U6FdvYjDX!vPBj9cKA0I^O@&jG~vtF|pbOcTY61Y+DR zZ4D6Xr1|=Q*jp&_Aj3X=QxENkbaEXsX$MQ>8b-oN0yqo%>$nka()_evAyag|={2@gWt zwGe>ESmY)#)H^Jag%deJ5XC-a5JL`VE2 zy~z>?=aAdf0{;zUI8MvKOfVRlw5`J;*}&7X{5wq=$heX{RsB#mCuJggABoJ^eww6} z$faO9QV@AA<2nIk))}vemQE^0F&Uv1fVhrpzow7gHeLU)w{=Vh64)ULRrLFQCC52b zwEQez%V)6_zLwjM<}ZhQEqKjGRB{B5NFhArS>c7$aHG}w0uG^u}f)X!@!UTlFVv{nD5tBI- z@KPK>T1iB2zs+^af-5bb3o19mz%?N^2~}X07f2*_1jQ-km#(a8-GPQaFuo$Vs=XpZ z6?V35K~RuOX4u0*RgVqt8NMaM43N1EEO)ct#i*fJ$bNj(kWYRq{4O`U@8WlVP63_J z@VDYxQ9#Ena66)gnwp*?YRF%;Er}ZHqIi)}L++NgC2FWiv$xE?70^M^^jiVlKd68X zfEyOT_R-spgm?$Ep)VrVA%Y4psvK&m0UvFw2bKfJFHl)q3U#gU44;Vs@C#tD18Da83(uu7N7WA* zgBp~w33c5nUkOD`STQIgP-jJl^L=A*HX4I^Y)I*WX%8BSPG3_xG^W~FqbnudGX~i^ zeEheEnx~p~dqey27-LZE*bW-P4=@G>2JQsR^ld-%B9l5!sa_Swzfd;5hv_p;*TL zurX{LTVE*ZT0NkQK%EsG&Yfpa#J*>EoH6Jg09#VZ?bB5+c-D=or4Jf|yo(0$oSp%@ zQJ&$Mjll_^W{CO>3K@Ny#3Au$L>P(8$c2(FPh<=vir8Pl9=ADbaFYT@6Avsyus3Es zpJ5oBbVieOg&Q#Vb_q%Rz;MIJ*uVlHNt$OR?(=fc8YO9(rFn!;`hp0%p_c5RDzDY! z=*D23q__WC<=2zAD(hO?pCN9h#Ti?|HXV_`5FO^USkY|CvP|sp5bea>^&SC9z~Rdd zkR2hF&fc`w5Rwvuj^kB@xs!~>EC+Fj-5Z9HuxPbZ3weIIwjoo@1-8O~jO0#2K|QPK!S}qS#5h4;y(BsUO${1s!kL^u?uhd3f9Ku?_4BL(uWaFnpIF+R#of G!Sz4k$php7 literal 17104 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 Yinfg;)A8F6bO&wv=0{Q=W}ATcFQ@IciU0rr literal 16848 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

E__Tcfmr%qZs~g9{8^Y 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 z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg 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໳rn#oO6LKj`6wvk2a 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

GEonfCJFSJYce>p*+*R8X;j7{w64)PH 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�%$s-LQclau+UvV!sv>Zvrv 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 ClLj*Y diff --git a/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer b/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer new file mode 100644 index 00000000..3010264a --- /dev/null +++ b/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer @@ -0,0 +1,22 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1953259897 &8574412962073106934 +TerrainLayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000 + m_DiffuseTexture: {fileID: 2800000, guid: 8377171c01a5547358598762f90c022f, type: 3} + m_NormalMapTexture: {fileID: 0} + m_MaskMapTexture: {fileID: 0} + m_TileSize: {x: 2048, y: 2048} + m_TileOffset: {x: 0, y: 0} + m_Specular: {r: 0, g: 0, b: 0, a: 0} + m_Metallic: 0 + m_Smoothness: 0 + m_NormalScale: 1 + m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0} + m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1} + m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0} + m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1} diff --git a/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer.meta b/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer.meta new file mode 100644 index 00000000..2279e967 --- /dev/null +++ b/Assets/Examples/Terrains/layer_LightmapWithFog(2048.000,2048.000)(0.000,0.000)(0.000,0.000,0.000),0.000,0.000.terrainlayer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f4e51767bd6244418c3f1234ffeac48 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8574412962073106934 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef index 7d0ebc4f..3c9827e7 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef +++ b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef @@ -8,5 +8,9 @@ "Editor" ], "excludePlatforms": [], - "allowUnsafeCode": false + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] } \ No newline at end of file diff --git a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef index 52072093..a54b5c28 100644 --- a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef +++ b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef @@ -4,5 +4,9 @@ "optionalUnityReferences": [], "includePlatforms": [], "excludePlatforms": [], - "allowUnsafeCode": false + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] } \ No newline at end of file diff --git a/Assets/Tests/Editor/NavMeshComponentsTestsEditmode.asmdef b/Assets/Tests/Editor/NavMeshComponentsTestsEditmode.asmdef index 305245db..18e8eb84 100644 --- a/Assets/Tests/Editor/NavMeshComponentsTestsEditmode.asmdef +++ b/Assets/Tests/Editor/NavMeshComponentsTestsEditmode.asmdef @@ -11,5 +11,9 @@ "Editor" ], "excludePlatforms": [], - "allowUnsafeCode": false + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] } \ No newline at end of file diff --git a/Assets/Tests/NavMeshComponentsTestsPlaymode.asmdef b/Assets/Tests/NavMeshComponentsTestsPlaymode.asmdef index bb06b0e9..66168fcb 100644 --- a/Assets/Tests/NavMeshComponentsTestsPlaymode.asmdef +++ b/Assets/Tests/NavMeshComponentsTestsPlaymode.asmdef @@ -8,5 +8,9 @@ ], "includePlatforms": [], "excludePlatforms": [], - "allowUnsafeCode": false + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] } \ No newline at end of file diff --git a/Packages/manifest.json b/Packages/manifest.json index 832ff54f..41364644 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,6 +1,6 @@ { "dependencies": { - "com.unity.package-manager-ui": "2.0.0-preview.7", + "com.unity.package-manager-ui": "2.0.3", "com.unity.modules.ai": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 097df9ef..ca32b1e0 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 2018.3.0a10 +m_EditorVersion: 2018.3.0f2 From 4f59fa02b728a93b2e3b549520e5ca5a582da81d Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 18 Dec 2018 12:28:30 +0100 Subject: [PATCH 65/82] Disable test AgentDetachesAndAttachesToSurface because the required functionality is missing altogether. --- Assets/Tests/NavMeshSurfaceAgentTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/Tests/NavMeshSurfaceAgentTests.cs b/Assets/Tests/NavMeshSurfaceAgentTests.cs index 280274f7..0917f0e1 100644 --- a/Assets/Tests/NavMeshSurfaceAgentTests.cs +++ b/Assets/Tests/NavMeshSurfaceAgentTests.cs @@ -36,6 +36,7 @@ public void AgentIdentifiesSurfaceOwner() } [Test] + [Ignore("1012991 : Missing functionality for notifying the NavMeshAgent about the removal of the NavMesh.")] public void AgentDetachesAndAttachesToSurface() { m_Surface.BuildNavMesh(); From ceebd6148d353bd406f51386e6dd3681f03be976 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 18 Dec 2018 14:54:56 +0100 Subject: [PATCH 66/82] Replace the obsolete GetPrefabObject() and CreatePrefab() methods. --- Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs | 6 +++--- Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs | 2 +- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 2 +- Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs b/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs index a3ba79ff..3c3f5890 100644 --- a/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs +++ b/Assets/Examples/Editor/NavMeshPrefabInstanceEditor.cs @@ -37,7 +37,7 @@ public override void OnInspectorGUI() void OnInspectorGUIPrefab(GameObject go) { - var prefab = PrefabUtility.GetPrefabObject(go); + var prefab = PrefabUtility.GetPrefabInstanceHandle(go); var path = AssetDatabase.GetAssetPath(prefab); if (prefab && string.IsNullOrEmpty(path)) @@ -85,7 +85,7 @@ void OnClear() { var instance = (NavMeshPrefabInstance)tgt; var go = instance.gameObject; - var prefab = PrefabUtility.GetPrefabObject(go); + var prefab = PrefabUtility.GetPrefabInstanceHandle(go); var path = AssetDatabase.GetAssetPath(prefab); if (string.IsNullOrEmpty(path)) @@ -105,7 +105,7 @@ void OnBake() { var instance = (NavMeshPrefabInstance)tgt; var go = instance.gameObject; - var prefab = PrefabUtility.GetPrefabObject(go); + var prefab = PrefabUtility.GetPrefabInstanceHandle(go); var path = AssetDatabase.GetAssetPath(prefab); if (string.IsNullOrEmpty(path)) diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs index d8f30464..24ec0ea8 100644 --- a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -89,7 +89,7 @@ public IEnumerator Setup() surface.collectObjects = CollectObjects.All; m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); - PrefabUtility.CreatePrefab(m_PrefabPath, plane); + PrefabUtility.SaveAsPrefabAsset(plane, m_PrefabPath); Object.DestroyImmediate(plane); NavMesh.RemoveAllNavMeshData(); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index e2dd8f02..f2195e05 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -94,7 +94,7 @@ public IEnumerator Setup() m_InitialPrefabNavMeshDataPath = AssetDatabase.GetAssetPath(surface.navMeshData); #endif m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); - var planePrefab = PrefabUtility.CreatePrefab(m_PrefabPath, plane); + var planePrefab = PrefabUtility.SaveAsPrefabAsset(plane, m_PrefabPath); Object.DestroyImmediate(plane); AssetDatabase.OpenAsset(planePrefab); diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index bbf6dfd7..f1847c32 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -88,7 +88,7 @@ public IEnumerator Setup() m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); m_PrefabVariantPath = Path.Combine(m_TempFolder, plane.name + "Variant.prefab"); - var planePrefab = PrefabUtility.CreatePrefab(m_PrefabPath, plane); + var planePrefab = PrefabUtility.SaveAsPrefabAsset(plane, m_PrefabPath); Object.DestroyImmediate(plane); AssetDatabase.OpenAsset(planePrefab); @@ -99,7 +99,7 @@ public IEnumerator Setup() StageUtility.GoToMainStage(); var instanceForVariant = PrefabUtility.InstantiatePrefab(planePrefab) as GameObject; - PrefabUtility.CreatePrefab(m_PrefabVariantPath, instanceForVariant); + PrefabUtility.SaveAsPrefabAsset(instanceForVariant, m_PrefabVariantPath); Object.DestroyImmediate(instanceForVariant); NavMesh.RemoveAllNavMeshData(); From 0564fdef359f5d5f0706f2c6cd64ab58e7294a03 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 18 Dec 2018 16:18:58 +0100 Subject: [PATCH 67/82] Clean up unnecessary code from the prefab workflow tests. --- .../NavMeshModifierVolumeInPrefabTests.cs | 19 +-- .../Editor/NavMeshSurfaceInPrefabTests.cs | 121 ++++++++---------- .../NavMeshSurfaceInPrefabVariantTests.cs | 81 ++---------- .../Tests/Editor/PrefabStageAutoSavingUtil.cs | 20 +-- 4 files changed, 70 insertions(+), 171 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs index 24ec0ea8..e57a2436 100644 --- a/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshModifierVolumeInPrefabTests.cs @@ -26,28 +26,19 @@ public class NavMeshModifierVolumeInPrefabTests string m_TempScenePath; int m_TestCounter; - const int k_BlueArea = 0; const int k_PinkArea = 3; const int k_GreenArea = 4; - const int k_GrayArea = 7; - const int k_BrownArea = 10; const int k_RedArea = 18; - const int k_OrangeArea = 26; - const int k_YellowArea = 30; const int k_PrefabDefaultArea = k_GreenArea; [OneTimeSetUp] public void OneTimeSetup() { - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); + AssetDatabase.DeleteAsset(m_TempFolder); - //if (!System.IO.Directory.Exists(m_TempFolder)) - //{ - var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); - m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); - //} + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); @@ -74,9 +65,7 @@ public void OneTimeTearDown() } #if !KEEP_ARTIFACTS_FOR_INSPECTION - //File.Delete(m_TempScenePath); - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); + AssetDatabase.DeleteAsset(m_TempFolder); #endif } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index f2195e05..d33266a3 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -1,17 +1,17 @@ -//#define NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS +//#define KEEP_ARTIFACTS_FOR_INSPECTION using System; -using UnityEngine; -using UnityEngine.TestTools; -using NUnit.Framework; using System.Collections; using System.IO; +using NUnit.Framework; using UnityEditor; using UnityEditor.AI; using UnityEditor.Experimental.SceneManagement; using UnityEditor.SceneManagement; +using UnityEngine; using UnityEngine.AI; using UnityEngine.SceneManagement; +using UnityEngine.TestTools; using Object = UnityEngine.Object; [Category("PrefabsWithNavMeshComponents")] @@ -26,9 +26,6 @@ public class NavMeshSurfaceInPrefabTests string m_TempScenePath; int m_TestCounter; - const int k_BlueArea = 0; - const int k_PinkArea = 3; - const int k_GreenArea = 4; const int k_GrayArea = 7; const int k_BrownArea = 10; const int k_RedArea = 18; @@ -37,21 +34,13 @@ public class NavMeshSurfaceInPrefabTests const int k_PrefabDefaultArea = k_YellowArea; -#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS - string m_InitialPrefabNavMeshDataPath; -#endif - [OneTimeSetUp] public void OneTimeSetup() { - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); + AssetDatabase.DeleteAsset(m_TempFolder); - //if (!System.IO.Directory.Exists(m_TempFolder)) - //{ - var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); - m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); - //} + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); @@ -77,9 +66,9 @@ public void OneTimeTearDown() EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); } - //File.Delete(m_TempScenePath); - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); +#if !KEEP_ARTIFACTS_FOR_INSPECTION + AssetDatabase.DeleteAsset(m_TempFolder); +#endif } [UnitySetUp] @@ -90,9 +79,6 @@ public IEnumerator Setup() var surface = plane.AddComponent(); surface.collectObjects = CollectObjects.Children; -#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS - m_InitialPrefabNavMeshDataPath = AssetDatabase.GetAssetPath(surface.navMeshData); -#endif m_PrefabPath = Path.Combine(m_TempFolder, plane.name + ".prefab"); var planePrefab = PrefabUtility.SaveAsPrefabAsset(plane, m_PrefabPath); Object.DestroyImmediate(plane); @@ -112,32 +98,12 @@ public IEnumerator Setup() [UnityTearDown] public IEnumerator TearDown() { - //if (System.IO.File.Exists(m_PrefabPath)) - //{ - // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); - // AssetDatabase.OpenAsset(prefab); - // var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - // if (prefabStage != null && prefabStage.prefabContentsRoot != null) - // { - // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); - // if (prefabSurface != null) - // { - // NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); - // } - // } - - // AssetDatabase.DeleteAsset(m_PrefabPath); - //} - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); if (prefabStage != null) prefabStage.ClearDirtiness(); StageUtility.GoToMainStage(); -#if NAVMESHSURFACE_CLEANUP_LEAKED_DATA_ASSETS - AssetDatabase.DeleteAsset(m_InitialPrefabNavMeshDataPath); -#endif yield return null; } @@ -150,7 +116,7 @@ static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); if (otherAreasExist) { - for (int i = 0; i < 32; i++) + for (var i = 0; i < 32; i++) { if (i == expectedArea) continue; @@ -264,9 +230,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstantiated_ReferencesTheSameNavMes StageUtility.GoToMainStage(); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); - +#endif yield return null; } @@ -292,8 +259,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenEmptyAndInstantiated_InstanceHasEmpt var expectedAreaMask = 1 << k_PrefabDefaultArea; Assert.IsFalse(HasNavMeshAtPosition(Vector3.zero, expectedAreaMask)); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -333,9 +301,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakesNewNavMesh_UpdatesTheInstance() TestNavMeshExistsAloneAtPosition(k_BrownArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_RedArea, instanceTwo.transform.position); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instanceOne); Object.DestroyImmediate(instanceTwo); - +#endif yield return null; } @@ -377,9 +346,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRebaked_HasDifferentNavMeshD StageUtility.GoToMainStage(); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); - +#endif yield return null; } @@ -420,9 +390,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_InstanceHasEmptyNavM StageUtility.GoToMainStage(); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); Object.DestroyImmediate(instanceClone); - +#endif yield return null; } @@ -452,8 +423,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceCleared_PrefabKeepsNavMeshDa StageUtility.GoToMainStage(); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -492,8 +464,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButInstanceModified_DoesNotCh StageUtility.GoToMainStage(); Assert.AreSame(instanceNavMeshData, instanceSurface.navMeshData); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -539,12 +512,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedButNotSaved_TheRebakedAssetNo yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); var rebakedAssetPath = AssetDatabase.GetAssetPath(prefabSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file must exist. ({0})", rebakedAssetPath); + Assert.IsTrue(File.Exists(rebakedAssetPath), "NavMeshData file must exist. ({0})", rebakedAssetPath); prefabStage.ClearDirtiness(); StageUtility.GoToMainStage(); - Assert.IsFalse(System.IO.File.Exists(rebakedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", rebakedAssetPath); + Assert.IsFalse(File.Exists(rebakedAssetPath), "NavMeshData file still exists after discarding the changes. ({0})", rebakedAssetPath); yield return null; } @@ -561,12 +534,12 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving // Assert.IsNull cannot verify correctly that an UnityEngine.Object is null Assert.IsTrue(initialNavMeshData != null, "Prefab must have some NavMeshData."); - Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "NavMeshData file must exist. ({0})", initialAssetPath); + Assert.IsTrue(File.Exists(initialAssetPath), "NavMeshData file must exist. ({0})", initialAssetPath); yield return BakeNavMeshAsync(() => prefabSurface, k_GrayArea); Assert.IsTrue(initialNavMeshData != null, "The initial NavMeshData must still exist immediately after prefab re-bake."); - Assert.IsTrue(System.IO.File.Exists(initialAssetPath), "The initial NavMeshData file must exist after prefab re-bake. ({0})", initialAssetPath); + Assert.IsTrue(File.Exists(initialAssetPath), "The initial NavMeshData file must exist after prefab re-bake. ({0})", initialAssetPath); Assert.IsTrue(prefabSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); var unsavedRebakedNavMeshData = prefabSurface.navMeshData; @@ -577,7 +550,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebaked_TheOldAssetExistsUntilSaving Assert.IsTrue(prefabSurface.navMeshData != null, "NavMeshSurface must have NavMeshData after baking."); PrefabSavingUtil.SavePrefab(prefabStage); - Assert.IsFalse(System.IO.File.Exists(initialAssetPath), "NavMeshData file still exists after saving. ({0})", initialAssetPath); + Assert.IsFalse(File.Exists(initialAssetPath), "NavMeshData file still exists after saving. ({0})", initialAssetPath); Assert.IsTrue(initialNavMeshData == null, "The initial NavMeshData must no longer exist after saving the prefab."); // ReSharper disable once HeuristicUnreachableCode - initialNavMeshData is affected by BakeNavMeshAsync() @@ -618,7 +591,7 @@ public IEnumerator NavMeshSurfacePrefab_WhenRebakedAndAutoSaved_InstanceHasTheNe yield return null; } - [Ignore("Deletion of the old asset is expected to be done manually for the time being.")] + [Ignore("Currently the deletion of the old asset must be done manually.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldAssetNoLongerExists() { @@ -633,21 +606,22 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_TheOldA var initialInstanceAssetPath = AssetDatabase.GetAssetPath(instanceSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file must exist. ({0})", initialInstanceAssetPath); + Assert.IsTrue(File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file must exist. ({0})", initialInstanceAssetPath); yield return BakeNavMeshAsync(() => instanceSurface, k_RedArea); - Assert.IsTrue(System.IO.File.Exists(initialInstanceAssetPath), + Assert.IsTrue(File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file exists after the instance has changed. ({0})", initialInstanceAssetPath); PrefabUtility.ApplyPrefabInstance(instance, InteractionMode.AutomatedAction); - Assert.IsFalse(System.IO.File.Exists(initialInstanceAssetPath), + Assert.IsFalse(File.Exists(initialInstanceAssetPath), "Prefab's NavMeshData file still exists after the changes from the instance have been applied back to the prefab. ({0})", initialInstanceAssetPath); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -690,9 +664,10 @@ public IEnumerator NavMeshSurfacePrefab_AfterModifiedInstanceAppliedBack_Updated TestNavMeshExistsAloneAtPosition(k_GrayArea, Vector3.zero); TestNavMeshExistsAloneAtPosition(k_GrayArea, instanceTwo.transform.position); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instanceOne); Object.DestroyImmediate(instanceTwo); - +#endif yield return null; } @@ -724,8 +699,9 @@ public IEnumerator NavMeshSurfacePrefab_AfterClearedInstanceAppliedBack_HasEmpty StageUtility.GoToMainStage(); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -748,8 +724,9 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_InstanceIsLikePr TestNavMeshExistsAloneAtPosition(k_PrefabDefaultArea, Vector3.zero); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } @@ -769,23 +746,24 @@ public IEnumerator NavMeshSurfacePrefab_WhenInstanceRevertsBack_TheInstanceAsset var instanceAssetPath = AssetDatabase.GetAssetPath(instanceSurface.navMeshData); - Assert.IsTrue(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file must exist. ({0})", instanceAssetPath); + Assert.IsTrue(File.Exists(instanceAssetPath), "Instance's NavMeshData file must exist. ({0})", instanceAssetPath); PrefabUtility.RevertPrefabInstance(instance, InteractionMode.AutomatedAction); - Assert.IsFalse(System.IO.File.Exists(instanceAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", instanceAssetPath); + Assert.IsFalse(File.Exists(instanceAssetPath), "Instance's NavMeshData file still exists after revert. ({0})", instanceAssetPath); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); - +#endif yield return null; } - [Ignore("Undefined expected behaviour for the time being.")] + [Ignore("The expected behaviour has not been decided.")] [UnityTest] public IEnumerator NavMeshSurfacePrefab_WhenDeleted_InstancesMakeCopiesOfData() { - Assert.IsTrue(false); yield return null; + Assert.Fail("not implemented yet"); } [UnityTest] @@ -815,9 +793,10 @@ public IEnumerator NavMeshSurfacePrefab_WhenBakingInPreviewScene_CollectsOnlyPre "NavMesh with the prefab's area exists at position {1}, outside the prefab's plane. ({0})", k_RedArea, posNearby); +#if !KEEP_ARTIFACTS_FOR_INSPECTION Object.DestroyImmediate(instance); Object.DestroyImmediate(mainScenePlane); - +#endif yield return null; } diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs index f1847c32..c1fa1029 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabVariantTests.cs @@ -1,4 +1,6 @@ -using System; +//#define KEEP_ARTIFACTS_FOR_INSPECTION + +using System; using System.Collections; using System.IO; using NUnit.Framework; @@ -25,9 +27,6 @@ public class NavMeshSurfaceInPrefabVariantTests string m_TempScenePath; int m_TestCounter; - const int k_BlueArea = 0; - const int k_PinkArea = 3; - const int k_GreenArea = 4; const int k_GrayArea = 7; const int k_BrownArea = 10; const int k_RedArea = 18; @@ -39,14 +38,10 @@ public class NavMeshSurfaceInPrefabVariantTests [OneTimeSetUp] public void OneTimeSetup() { - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); + AssetDatabase.DeleteAsset(m_TempFolder); - //if (!System.IO.Directory.Exists(m_TempFolder)) - //{ - var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); - m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); - //} + var folderGUID = AssetDatabase.CreateFolder(k_ParentFolder, k_TempFolderName); + m_TempFolder = AssetDatabase.GUIDToAssetPath(folderGUID); SessionState.SetBool(k_AutoSaveKey, PrefabStageAutoSavingUtil.GetPrefabStageAutoSave()); PrefabStageAutoSavingUtil.SetPrefabStageAutoSave(false); @@ -72,9 +67,9 @@ public void OneTimeTearDown() EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); } - //File.Delete(m_TempScenePath); - //if (System.IO.Directory.Exists(m_TempFolder)) - AssetDatabase.DeleteAsset(m_TempFolder); +#if !KEEP_ARTIFACTS_FOR_INSPECTION + AssetDatabase.DeleteAsset(m_TempFolder); +#endif } [UnitySetUp] @@ -100,8 +95,10 @@ public IEnumerator Setup() var instanceForVariant = PrefabUtility.InstantiatePrefab(planePrefab) as GameObject; PrefabUtility.SaveAsPrefabAsset(instanceForVariant, m_PrefabVariantPath); - Object.DestroyImmediate(instanceForVariant); +#if !KEEP_ARTIFACTS_FOR_INSPECTION + Object.DestroyImmediate(instanceForVariant); +#endif NavMesh.RemoveAllNavMeshData(); yield return null; @@ -110,23 +107,6 @@ public IEnumerator Setup() [UnityTearDown] public IEnumerator TearDown() { - //if (System.IO.File.Exists(m_PrefabPath)) - //{ - // var prefab = AssetDatabase.LoadAssetAtPath(m_PrefabPath); - // AssetDatabase.OpenAsset(prefab); - // var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - // if (prefabStage != null && prefabStage.prefabContentsRoot != null) - // { - // var prefabSurface = prefabStage.prefabContentsRoot.GetComponent(); - // if (prefabSurface != null) - // { - // NavMeshDataAssetManager.instance.ClearSurfaces(new Object[] { prefabSurface }); - // } - // } - - // AssetDatabase.DeleteAsset(m_PrefabPath); - //} - StageUtility.GoToMainStage(); yield return null; @@ -249,41 +229,4 @@ static IEnumerator BakeNavMeshAsync(Func getSurface, int default NavMeshAssetManager.instance.StartBakingSurfaces(new Object[] { surface }); yield return new WaitWhile(() => NavMeshAssetManager.instance.IsSurfaceBaking(surface)); } - - //static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) - //{ - // var expectedAreaMask = 1 << expectedArea; - - // var areaExists = HasNavMeshAtPosition(pos, expectedAreaMask); - // var otherAreasExist = HasNavMeshAtPosition(pos, ~expectedAreaMask); - // Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); - // if (otherAreasExist) - // { - // for (int i = 0; i < 32; i++) - // { - // if (i == expectedArea) - // continue; - - // var thisOtherAreaExists = HasNavMeshAtPosition(pos, 1 << i); - // if (thisOtherAreaExists) - // { - // Debug.Log(" _another area that exists here " + i); - // } - // } - // } - - // Assert.IsTrue(HasNavMeshAtPosition(pos, expectedAreaMask), "Expected NavMesh with area {0} at position {1}.", expectedArea, pos); - // Assert.IsFalse(HasNavMeshAtPosition(pos, ~expectedAreaMask), "A NavMesh with an area other than {0} exists at position {1}.", expectedArea, pos); - //} - - //public static bool HasNavMeshAtPosition(Vector3 pos, int areaMask = NavMesh.AllAreas, int agentTypeId = 0, float range = 0.1f) - //{ - // NavMeshHit hit; - // var filter = new NavMeshQueryFilter - // { - // areaMask = areaMask, - // agentTypeID = agentTypeId - // }; - // return NavMesh.SamplePosition(pos, out hit, range, filter); - //} } diff --git a/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs index 08ba3df8..98719c41 100644 --- a/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs +++ b/Assets/Tests/Editor/PrefabStageAutoSavingUtil.cs @@ -6,22 +6,22 @@ public static class PrefabStageAutoSavingUtil { public static bool GetPrefabStageAutoSave() { - object stageNavMgrInstance = GetStageNavigationManagerInstance(); + var stageNavMgrInstance = GetStageNavigationManagerInstance(); var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); return (bool)autoSaveProperty.GetValue(stageNavMgrInstance, null); } public static void SetPrefabStageAutoSave(bool value) { - object stageNavMgrInstance = GetStageNavigationManagerInstance(); + var stageNavMgrInstance = GetStageNavigationManagerInstance(); var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); autoSaveProperty.SetValue(stageNavMgrInstance, value, null); } static object GetStageNavigationManagerInstance() { - string editorAssemblyName = typeof(EditorWindow).Assembly.FullName; - Type t = Type.GetType("UnityEditor.SceneManagement.StageNavigationManager, " + editorAssemblyName, true, true); + var editorAssemblyName = typeof(EditorWindow).Assembly.FullName; + var t = Type.GetType("UnityEditor.SceneManagement.StageNavigationManager, " + editorAssemblyName, true, true); if (t == null) throw new ArgumentException(); @@ -41,16 +41,4 @@ static PropertyInfo GetAutoSaveProperty(object stageNavigationManagerInstance) return autoSaveProperty; } - - // Used for testing - /* - [MenuItem("Stage/ToggleAutoSave")] - public static void ToggleStageAutoSaving() - { - object stageNavMgrInstance = GetStageNavigationManagerInstance(); - var autoSaveProperty = GetAutoSaveProperty(stageNavMgrInstance); - bool oldValue = (bool)autoSaveProperty.GetValue(stageNavMgrInstance, null); - autoSaveProperty.SetValue(stageNavMgrInstance, !oldValue, null); - } - */ } From e30ea31ebfab25638dd8223928f75a24c33cfa01 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 18 Dec 2018 16:30:50 +0100 Subject: [PATCH 68/82] Disable console logs in the prefab workflow tests. --- Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs index d33266a3..84c8e215 100644 --- a/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs +++ b/Assets/Tests/Editor/NavMeshSurfaceInPrefabTests.cs @@ -1,4 +1,5 @@ //#define KEEP_ARTIFACTS_FOR_INSPECTION +//#define ENABLE_TEST_LOGS using System; using System.Collections; @@ -111,9 +112,11 @@ static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) { var expectedAreaMask = 1 << expectedArea; +#if ENABLE_TEST_LOGS var areaExists = HasNavMeshAtPosition(pos, expectedAreaMask); var otherAreasExist = HasNavMeshAtPosition(pos, ~expectedAreaMask); - Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); + Debug.Log(" mask=" + expectedAreaMask.ToString("x8") + " area " + expectedArea + + " Exists=" + areaExists + " otherAreasExist=" + otherAreasExist + " at position " + pos); if (otherAreasExist) { for (var i = 0; i < 32; i++) @@ -128,7 +131,7 @@ static void TestNavMeshExistsAloneAtPosition(int expectedArea, Vector3 pos) } } } - +#endif Assert.IsTrue(HasNavMeshAtPosition(pos, expectedAreaMask), "Expected NavMesh with area {0} at position {1}.", expectedArea, pos); Assert.IsFalse(HasNavMeshAtPosition(pos, ~expectedAreaMask), "A NavMesh with an area other than {0} exists at position {1}.", expectedArea, pos); } From 78b16b4421d85509cf5cf4311b9ba02c1aaaead6 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 18 Dec 2018 16:41:25 +0100 Subject: [PATCH 69/82] Add .gitattributes and update .gitignore. --- .gitattributes | 13 +++++++++++++ .gitignore | 32 ++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e18c9458 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +* text=auto +# Text files +*.cs diff=csharp text +*.txt text +*.mat text +*.shader text +*.meta text +*.md5 text +*.compute text +*.md text +*.prefab text +*/ProjectSettings/*.asset text + diff --git a/.gitignore b/.gitignore index 033ce703..fde314fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,26 @@ -Library/* -Temp/* -Assembly-CSharp-Editor.csproj -Assembly-CSharp.csproj -NavMeshComponents.sln -NavMeshComponents.userprefs +**/Library/ +**/Temp/ +**/obj/ + +**/.vscode/ +**/.vs + +**/Assets/Plugins/* +**/Assets/Plugins.meta + +*.idea +*.csproj +*.sln +*.suo +*.userprefs +*.app +*.VC.* +.DS_Store +*~ +*.swp + +.vs/ +build/* +*.rsp +*.pyc +/Logs From a0eb8d5dd0eb93d04a1f234d6608bb2d49cb020b Mon Sep 17 00:00:00 2001 From: Dominykas Kiauleikis Date: Wed, 31 Jul 2019 14:35:51 +0300 Subject: [PATCH 70/82] Update the project to 2019.3.0a10. --- Packages/manifest.json | 12 +++++++++++- ProjectSettings/ProjectVersion.txt | 3 ++- ProjectSettings/XRSettings.asset | 10 ++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 ProjectSettings/XRSettings.asset diff --git a/Packages/manifest.json b/Packages/manifest.json index 41364644..25cf5d31 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,7 +1,17 @@ { "dependencies": { - "com.unity.package-manager-ui": "2.0.3", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.ide.rider": "1.0.8", + "com.unity.ide.visualstudio": "1.0.11", + "com.unity.ide.vscode": "1.0.7", + "com.unity.multiplayer-hlapi": "1.0.4", + "com.unity.test-framework": "1.0.16", + "com.unity.timeline": "1.1.0", + "com.unity.ugui": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.0.4", "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index ca32b1e0..9b448a03 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1,2 @@ -m_EditorVersion: 2018.3.0f2 +m_EditorVersion: 2019.3.0a10 +m_EditorVersionWithRevision: 2019.3.0a10 (d046aa12c0d7) diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 00000000..482590c1 --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file From 20601fc3546624a4d5174db0205de6f9f97d87d0 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Wed, 5 Feb 2020 12:49:37 +0100 Subject: [PATCH 71/82] Update the project to Unity 2019.3.0f6 and remove the deprecated GUI Layout component from the main camera objects in the example scenes. --- .../Materials/modify_crosshair.png.meta | 67 +- .../Prefabs/DungeonTiles/Tile0.prefab | Bin 16508 -> 18884 bytes .../Prefabs/DungeonTiles/Tile1.prefab | Bin 15459 -> 20188 bytes .../Prefabs/DungeonTiles/Tile10.prefab | Bin 14395 -> 19908 bytes .../Prefabs/DungeonTiles/Tile11.prefab | Bin 13345 -> 19644 bytes .../Prefabs/DungeonTiles/Tile12.prefab | Bin 14412 -> 19908 bytes .../Prefabs/DungeonTiles/Tile13.prefab | Bin 13362 -> 19644 bytes .../Prefabs/DungeonTiles/Tile14.prefab | Bin 13346 -> 19644 bytes .../Prefabs/DungeonTiles/Tile15.prefab | Bin 12296 -> 19316 bytes .../Prefabs/DungeonTiles/Tile2.prefab | Bin 15443 -> 20188 bytes .../Prefabs/DungeonTiles/Tile3.prefab | Bin 14393 -> 19908 bytes .../Prefabs/DungeonTiles/Tile4.prefab | Bin 15460 -> 20188 bytes .../Prefabs/DungeonTiles/Tile5.prefab | Bin 14410 -> 19908 bytes .../Prefabs/DungeonTiles/Tile6.prefab | Bin 14394 -> 19908 bytes .../Prefabs/DungeonTiles/Tile7.prefab | Bin 13344 -> 19644 bytes .../Prefabs/DungeonTiles/Tile8.prefab | Bin 15459 -> 20188 bytes .../Prefabs/DungeonTiles/Tile9.prefab | Bin 14409 -> 19908 bytes .../Scenes/1_multiple_agent_sizes.unity | 1069 +-- Assets/Examples/Scenes/2_drop_plank.unity | 582 +- .../Examples/Scenes/3_free_orientation.unity | 298 +- .../Scenes/4_sliding_window_infinite.unity | 298 +- .../Scenes/5_sliding_window_terrain.unity | 273 +- Assets/Examples/Scenes/6_modify_mesh.unity | 843 +- Assets/Examples/Scenes/7_dungeon.unity | 261 +- .../Scenes/7b_dungeon_tile_prefabs.unity | 7633 ++--------------- Packages/manifest.json | 8 +- ProjectSettings/EditorSettings.asset | 17 +- ProjectSettings/ProjectVersion.txt | 4 +- 28 files changed, 2833 insertions(+), 8520 deletions(-) diff --git a/Assets/Examples/Materials/modify_crosshair.png.meta b/Assets/Examples/Materials/modify_crosshair.png.meta index 127c7041..934ed002 100644 --- a/Assets/Examples/Materials/modify_crosshair.png.meta +++ b/Assets/Examples/Materials/modify_crosshair.png.meta @@ -1,56 +1,91 @@ fileFormatVersion: 2 guid: 28d2c2677149d45e290e8fa042b1b80f -timeCreated: 1431080089 -licenseType: Pro TextureImporter: - fileIDToRecycleName: {} - serializedVersion: 2 + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 mipmaps: mipMapMode: 0 enableMipMap: 1 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: convertToNormalMap: 0 externalNormalMap: 0 - heightScale: .25 + heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 8 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -2 maxTextureSize: 128 textureSettings: + serializedVersion: 2 filterMode: 1 aniso: 16 - mipBias: -1 - wrapMode: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 - spritePivot: {x: .5, y: .5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 alphaIsTransparency: 1 + spriteTessellationDetail: -1 textureType: 8 - buildTargetSettings: [] + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: + serializedVersion: 2 sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile0.prefab index 8c31521dcbd7649ed5ca26c475549bc41a75c45e..4297e0b68c0a449b8d5c4e086261965ef4103c06 100644 GIT binary patch literal 18884 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 literal 16508 zcmeHOTT|n>5`O1bcprA2fU+!Gws{L-E;$7=6k(`3b!v-}Z6)}uFO=;tuv`1zw_BG) zF-ewU2Zk_sYGN$Qx^#bPeUiF={qNx9*dhC5=hySWN9UK>FHXm&2eT^g?r653*5$6} z5^}J!x3`CHiSv#S76#GIM_!6A$^S*#9qc$xd8z*XlxN~Y!Kdwk05{>xT0IWO`*M0O#XHm|D# zhw17|s9RLBk$VpGM?Wq~_dSmV5jJ7~t@@9Jhr z5uLj_5+#E-PhTMS9y^&0@U%p-=uCn z@a_sVI@gXLdqE)aQeK|bb@!#o@V(OTF*g1EtPsthniit{lmj+peM>#~%jk$w=bc92 z4l4UYUUX2Jtoeryxd*5T+iS^%xSs3nI@4L6fsT5Y=soW`-Q6{40&IgeJuGnE>7llB zSl-+!%F7{dyYUsz>TfXZpwwX8iBy2G>!lvu zRlLm8FKJrLG9gVNWe}AzjqP3<$xEXc`!m_luE+ zbyUd@N`7th1am$>{6>7emw@&<@P_i<#B z#$65~Fg1(?FXt>|EKq48Q}dz%JN6tJN|j#nDlccHtV<0oU#1UcUH$dqgx?M6uEwh(C;b3MXd z5e*Be7fbo9qhTS9s3cLVGq8XJLAap=k1{tPlBboIOQdN*!y>7P=ci$^^IJi~BW`FWV^{C4m#gxz=HVUl}U zn+SHP)_xeQdzN;@^bXgf_ruh}>v23xLU2oX*g{WF!NcTO+ZG;XiQ+}_Flm>zhKDVr z`NqTEc-T+B9~ODUdrilZe#FRzQ%6eOh-@NiaHtvRbEwrDX28Q}Wn03) zY*D;S28I@CTNs!n&DY1kJR(mW&6yn%>-BVE z9V@<_N&Y-%l2OEh*R&Tl_vBg4pa}7CkPzZg0{O*nGZ*uU+e8J9S(w-l{4Z;Tzc#CtyC%VBc4}J+3?HU6MTGkI5j{64tZH;ORfi zT|TDrH*yml-l3i`k;0WErZAb!OB5VPCMF zRMjhgy$EjjzjyWf-Fqz`?Xuu+V!ko;;1VR%AL1Rw!1P@w|I-aLj0XarIE2*5zt?IU zGsoA)RXyv$ub^eux-lt0UsK}i}d zgSm_n@fnr9Djm~|lI{HK(&y!@0s~qFW`V#|X!^Nmnt8LhKLiZMGT>LnG9Vxxcs<54 zFxcy0fnY)Eu`~=AA!L$>P{8I$m}VRUTsDJYZQJ@nG0)}$0|Ik5>2P0I29wyg3=ac? zZ2_<(quhSFsRi$SkjQr{!JxlFKs=>oz-o+Tcw#X45kzM4P{5H+NJ$zK#uFk);wAyO zX)+Z^ty#q345DAhqQmed$tE^TLl8Arb?4xjV?vx9M<$)|ET3U$mJFoQiJt_<+o>p7 zoir|Li~#i!jXG&qP$=_ zfN#(UZYnH!HRHul6orcZQstzJ=Y0Z_fGgA$V0NTbcJ^-m>;)(_Xmpy+8d#s67CaRt zhM~)_JIBdHGMk!-9Ciimka^V?2$BOC=@?^`gcCJzIFtBgGQpJNy!w5Ss6y-yA;d4! q`hob!_2HmWT9@x{JK44s@uEmN9vI@YD##l4T`?eA?JW(K0r58@08wKA diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile1.prefab index 791aa7024b86f1c5d82dd826e25448137402b79b..afd6060a2e8ead8eb112e98821021ed6168a3cf8 100644 GIT binary patch literal 20188 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 literal 14395 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 L&z5?6Nl1SIgP5{b diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile11.prefab index b0ab49b04a5bd0baae73d264e758a9acaab95c2d..fe647f06d7921288e421cb3533f9a5edb90071d6 100644 GIT binary patch literal 19644 zcmeHO4RBq>b>1h*e?SdRLqaf+XJU-ak7M}2h`b!qxz+RoUGOM~$=4M{pC4Pcr{h5^EK3T7q=Y29>4nUY_gyKqE|@#7 z|0?yt*w|QNGH3|`V`Epo^)G+^lS{twPuK04bnoh4ZrwWr)ZfE35!V5w!mDwi$rv6{ z(z(tOVDNaO3ZF`-un82h(=2Tj;!Mk%RCpHd4Y*vqLH!*#egbs1Z`62*+@u6r%mx2X zFdzSwMO)JAdUH%*ox>~MK&3{r2o=^`qs4%en%Ts1KRP&!w)86g> z88vu99me>UfX?|n6Ze)-or9ZB;Gby5{O}^qIc!Nq@kTv=)4_vt^J~PFi?@Sz2imjk z)Ec}=&BXX_2A%lXHTVQaKkS&xe}bc*X*Ia94-a(q?_;>4iTYcKzCQ`2aD2Z`Fs#(5 z9{j=rE_M) zJ1`>;>#|Zwd&f2e zwO<^R8tuiFbSbmd*FEECpwh$Bdas=E>9e1Csd?Y7k*EIlM{_`Z0vDB3g5iDS*oJrx40kmi zX$o{~_3*Wz5;q<6CS9Ya1Ho7>)uU*yxV)x$+T9h-}rjV%C`j+KrL z8(TSH{LaQk$A*oqoai_i7|6y($JSCtIe(4n73g0!Haa#JZ*n#+I<{&&YG273JfZpD z4Lav<2Cf7yNz`97aJd*jH6G>vnHoHy+dl|8?Qf>WL*yoj{XB|C%D)6xLhV6rQnmfe z0=XV8`nxm+7yU7ainc#R$KFv$d)cl+$tz()P$Ozo-Kn<0V{3Y6p_tKh``nGXKEP#z znQUL+)3dL@wxPX#SD{c^8}#Y2ZoGUr>jy3QfvjI#nZd@vL?c7GY=7(H+h6TE`sNeg z9l7Z0#`mV){MDB33$8dLc>SCGM-w}5p$%klQBRZLmp=0S|9^e|9{9Ffp+oADzCY1| z%qFfKzLcy2F23Jgn+Y`t-|^4DxwgvDcDcQ~w(0v()uJrBdlP-Xi`NFViI6+2N!7m3 z1hrAz^?fF&b#biQs-QNC8~F>+DG6#5VJPC+f5-Qlpf-xT@=Z|d;!*h~sEy(Y#eKOG z7w7lG2x_VSjo?ka()UN5`ziS@-FT*rEZe-2$2iqK(lHgX*}}GUftN4#7lIrm8~2k? zTed&4YwX*_8y+b?smUg1v0DC&7+mBt^b{^ENqdpc(9^{e`qhSK9_;^2!jZ)OasIvl z8gYi6(L|i~AA*>`#n3bAeg)rUafY7NIQjo6$mBnpcqE;Y`_64{8NhkMy3rwX{?J|W zf>LLJk)nx0bDNjv`wSts`Q}VtX^@d;p;%g7=*#qHbfDRq>B|H@&JqfFFAKP3xKvm_ z)aRA_Na)%U_@3^y*3a13cP8I8XXA>^@2*KLz5MBEJEk*gkR6Kk7;UCls7jo!@s3dW z_B`GZD!akyY{cb8BPLq840Of_tmEPdwE#44oFi1>A9sW*{7?1>RrpV->7U#GGivaJ zIv#f~{JG>>a7p5F;hUQDzurm1N>t{XKHHj;25D`U8_ikxpAE>JUzb0l%_zRNq0eIn2F8gwONoHSOQLVL&U zc#M;iGM;hLM;*&JF9#lHoC|@CXPm-6&Nzkt$r`8dk26l;f3n6Y{Ns#M_}4SecFd3L zC2__n{Ns#M_*WYz_1^*G=3bG&MW+@`g3GIzeie$WF5*0flJo7jW3aoxl=cyK40eyj z6iDrW!MivWzxeR8+-Sxt7gr5_Sv_e{QNHt z-TLDDFMJNrqYXyGtad5~Bec-*ya6MUV|jxsfX8`*MZm`M2Esqi8wmfC^#;N}&Kn5- zll2C|pB5WgOjt{1D-r(nyg>(6tE@(SFajQuxEdL`-3S6#Grd7H3C_ruIK6=`@Qx(7 z;|*BRCc(GknPhr{XcGKk5Q!UaP^lsKA6wjbgIfGs7T4Y&<>Cybz7G=Z%XkA9=T`k= ziyLp?;`}xC7a;NAM0~dAO?O6F+M4<~sOZ;OD@&*nWNtjxP>0&ex7={)>RE!A1LGxl@-v_kg1N*OE^U z7Wm75Wh6a?>~PLsyVVZ@gj8(GpN`t|x<<|$0>#eM4egqZU-W~m{`wwHNc%v(5cq3w zYU^c-D+16b(O1k&`cSSBnKF`ZuE<xzsB@js=*K&s z;9?yw=(`wo=oBEbYSEcRE3Y7|<1T7AZP2`N&L@O_T+k={Pd4Zi{&7K{@UIv2ML%&m zljA$auR)y4M2g|BN!7oEGw4g`@VJ8C1dZK+3x3)B8s^~Um-u#I)Gvd+X(2M3u<1F! z1~KTHc1Tdla)TPa0!Cj0i8ElNeDY_|=kjmTpSTTzPMkrXi%)RmGw7R^LS|C}A0cwn zkuL$x1>KcDQ3tg$eg=Im-lU44F(~EO81%XL1l|5V&^dn$`s(2iTbw~(J^U*cXV6y< zm!OtGUp@SB+nzyRJ^bqyXV6yvN-)jJ$%sOSH$2&i!_GpJ<$8T8e| z_gQ>i9h~bApZMzb&2{j-z@N7`gT8A1Z2zLg7sTK{vN(Nxz4kw|ICWHwzXxn;gV8^O zK39K@dVPP~;tcxENg=a|`x{^SE&xvd#Gub@@A^jueQtZ#KYot5<;@%Y;~em&f1+=> z7MF`R=_9hMQHQ?&I*liho0L!!w0)(3Q-4cvouiTlL@s!%#jlUS+bq7c25(ZMcqv_B z<)<``%qH@u{w~Hd<+tFPrb6T<5$8*(?0>BwySSO(F7W64E(3n7`E4V92$@aQ`_FRF z-T7-&9(Z$p$$tg$&^E@6FU{2Nkd=Q!4estgD~YF&*;Kv%a36K$Pt^LOeCqE;jVFL{Cy3)sh=dC zZ^Px{ll1&QZO6Y^1s&zb^(C`F;#8 z^80J>N!ous5Bapz0gWTGiR+X8?Ryqyoa)Y>@n7EuPXCf29@@sZRmacJLzVvA{b397 zN^`VtRIh=z=r3D?oBiP})ZzNcX*`MCB>LZ|{_-HZ`ZKu9Um*sU`5UUijr@14{4dnt zuKXYd7x|3E>-A6Mmum1PJ-+{deClsljvZ)hZ`b7q2z{0B6W)HyT3uZ4Wt$AcP4>YSPGAM~>X zIM>gYG?LUgGifjV+o6%9&Y1}={rgRgBz4YAaOvMe8cFJ$8RgTz;0!?b@8L3H3Xx9@ zPwgkd@@IQHqT!S5=*LgwB#3WnRlx#G)rN=6c$Kf zp%fNL;VLOyErrEWxJC-i71m|m&1L4zW$w*o_RZjL``ON|#sqJP9@B?rdSmH^pVyOs-dD{k{ReEhr4xS~+jz#^KyhOFAeNi!11d7=qKmphrR4FKbzI3d}%2dIwxGyOH%OC>EQrJgq>M0?dSO4PSHWM`Mtvf zbKPD)kLRs61G-$Hxg`8VHU& z^L@6|io@7GlI+jL_)d!d(8bf(H8>WIvT5xhMddR1Qr{a<8O1O5*Y@{QUPmUsrKots z86jA?I42Fr4=!?)^ z-(hHzAzo-Ve&;i~?LoN011ORE!gFV8+OEkJ+8Yne*R*%QB83t?=Z4n|?L0gP?fvdF z5d0K`wwrK=c-8l|p>04tp}l?dr>_h&{BGiQ2nrfBg?H zY>{rk16cD(dwQ=7lG{kIKOL&&B|0r!qfZ{P)^pB>KQ z2aaSP{#$W4TS^9gQQIE_7n{zO0`6S`n`WDP;jrMWHv1!`z*Fk0&-m9i2Ft$u$Zh8j z?r!|q1`gsBk~9}vA}g6cmZ@)gpk}=CL1k)vzU1MfkUnD7iF0`(DY}*_?Lr(VywU1D zlNK)3IsqW|%sR3zSQgu7S?rr-v1^u3N0NTac%wEHeMI{#cF(r7Tm7q2 zcJXP~hxjqmN6tA+_+RIKi}%NN@4g<{)_F!N3kqEk!9NCHZPl9i2LbYAF_u~P9<^vk6_$J zKcM6J5UwyKb!07{%sdDW-bFqg+>bAfBF9&j_D*fxDfV412R)$&;h!+6fx0IHil9E1 z&gRpJq;M(Q^5U4SO`xw&Mf}l;@T=67bshCfvd6JjWnIrd?RF$_N2NC`asJEeI#tn! zp%W83ayK|4CzeFMRy~^jD%N#$&yZM!qmX!nWr=H8=DP0B7Vy2m>0j3p^HEMERp#B$ z^m^txNl6{ihdiI`UF4tax|a5ie63tr)74{fYL5FL{Ohf2>Lqz*a$Fv6g%5vSM`I6( zN!f?Wx^6!0>ssCuDCfPVMS4B|ySbhk{m z`=66KEK^E@-Z9|YLKWI(W!dsf&&M^_pnorBn+e)JnsAOZQJ*DMYD(#ouP)luuua{+ z=ZlyA#|i)GCiN6&)wrSH^Z|X?59*&D5zgPPA?cksa4KS+7Y=i5=%t zhx3>BWD4(0Pwk$t#J~0K=s0DJQCY{(C##7*Q`9G)&Daj9-%&N)Zs{Ld|8Z(Wjo>$dMrpM3LUroQ6* gr?Atu;-+7Xg~ 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 WMMgY+WOmuQQ#eSq5%o;g0r4O44P%i2 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile12.prefab index 0784e3c0ed811a88fb1eb950db2741d79ffaa251..d010aec30394ed29cf712e08258f74341c3466ae 100644 GIT binary patch literal 19908 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 literal 14412 zcmeHOTT|P}5`O1bXdgCDK+WhbzZnRLPeDRq!l|vTQ`ATr+d8WYCCLPKYybP{o{Ke> zm!gvg7K}$dcD1`OAR@Xj{GL*mz(pO~rj8qUo-4b1#vXXBhxq}dF|ux}x@Ea5 zTE1fQXUp=e&8Jfz64wZX04aGDY&ft3vtVmzT zU^`v}Q&p;Q4N;}d%<`(Lg(bW^MvKAk1V#(9Q!?C!(F)Y|Er4bPqXGvzt46Tx0U%<8 z$YtQMt3cZmD5)0MXCtzlN>4>($Fbfh!8F{0kXzFZv4id8dtlu$@i=`YL@LCRrkkLo`YMrE202YMQ6|uhd`U+X3|{M8Ter< zr)_QF8gL4K%z zXK?W40(Z$14!&qF_2i*sMV5R_l6;wR;i=-hKd*2hyoU9#s#i6fW%EUQQCBhl)Uf#~ z?4n1Bx8 z*DKLa=4Dm$55N{!-ketT@d8|<6W&U>>wZswGy$#E-|8!C&-b3 zrsn2}kuwU2qEQTV$V0pj{Tv81>UQNk(uxgJAVH!mz5fR9+wpsxFcM)Q`5KLvSO<33YRrR@m+FR0ZTi> zWjks1mf2UpWhrq8oO2BC^USvI^B@&B$mkCy`_Eyrk>~p1D`K*drW(UelxDIHoZN+x zZ%3MhZ8BMTcpHk1g_rlJ#5i`sqY@VM6^}}}NaA1sj?^R)Q4~L%=Ne@P4+_-L?SWQR z&%^o>w|(l_t=xEes&}4MXG)#J( z&~wDR9fo7y3&PMB)M+?_?Eq<(taxy{5lQdgwc9B6zjgzn(d-PE9g44c%Gs@ia|#65 zsMH|6^7xi2$_o@&W_$JluGH{TVObsEq6O{-=@sZ8MfEL6ub65(LV8V6e3ztGz|yXe zUPGF_1^x%=g^Bx4)e>;R5{`D?B&h@UY zXEN)8-&B{;?O@=lE{}HX#-NK0DLo|4 zpplsAYf6X8bUkb7T1gwmpjvkgqtN5j7=OBZV5YCws2fpun$t-r0 z#J1ho54T2{*AE9hzT-M-xkRvT&Tf^(}^EvGfX+l%HO&~`N`Z7gpsC7KM;kxJ?I!a37_EHx1w(Y XQOWrFk=sFooAdfJCakCTZO#7xh>p2< diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile13.prefab index 1b8e3e28c7f1b6af88505b2ee0f4c2810043f214..37de88cdd9a55cc50918d9867ec99133c2b2c30d 100644 GIT binary patch literal 19644 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile14.prefab index 601aad6ed89c8d316d54aa24f0107f956da6f1cf..b4fd52c9e42651802e4e724cf0548010552ddc69 100644 GIT binary patch literal 19644 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 literal 13346 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 literal 12296 zcmeHN+iu%P5`EWKa2_U4mcZtndXr^4(ZWs)%kg5dSQt&RC2@xrgQOgL7W400)fcKo zQHkS;JtHFoM2f|}SM}*r)&1+gCKu-h8Ii%S*OT|gFY8~7hAzkJB5fY+WE7YAk!2Dx z9t?*={7Q^>g!ooq4c^n7eTx3e;$}QBjQm#o|Bxo^EThYMY?xd;Evt&vcV&^J#d2P* zt61eS{3*zPmC`Kzoh3J{s?)L<8=kB_ zhq_t88#y$fKk{``y5qa1wpR5w4uXpD`!vTA5% z@tUvca^6(X>9O&-fH7UNgv)0!wyxXvkM#b6)vK*C=M8Pr_%unIvf3KcSv`rH^d2fC zN-vJ_PV{4NUD2XmlvVyWP)mNRS;?l)!h(d-&&!x*S0#3pkIMs$=#lZr@4xf=7wD#z z_Oh(gowOtS$bi(AmTnH^q7gxXgck^RNFs}xuF@>27--_(|KVymqscMm`dM^$hK{~lg2l|mG>;o8h{aQ zD1RxH*|%nD8p8H!D-|&<(^9y~K~}pl?LYoixC*L~sN=cDJ2}e+$K}Jc%rYQxhcXm^ zs!08`;gCi*tFNmRSXWEYwid1)!YEeuIgm)PlJ~I&SY5C{Bo+M&y#;0^5s91C6)RvY z4`npBhA6+C(z=O@Wc$v(Go}(9f1dS+S4c8_=viE34@WsL=^)#JH<=&%i|jH>POb&y;B1 zq%Z`khB>2o>)*{8s*NRr2MTk?oP1+L})~J*yhl5Whfd4)TC{ngiO-e?lpMqL@4R?*%a@_L9i)qKtF^{f!Cya!&;ddpXytwlz$5|M}tEL zP*2hEcIr5`7kZL{Z-iP@WFriHJK)x#mkHz{l>B?gi$9|3jE#pucuv&Itd&D=b5L9p3o+DLy z20XF+vWYfryRp7&Id2Ib1eYEBMI1IE!3;G7y0>VCr z+YVoy+=?jQpMqPfHLb&e+l>l;!tIN}EyNyhJEa?d7|1Ba32o@#V#iK+_Ry*vcIJR= z?%iFI4aYF5+^K+F63D}QVz?flD{~yNXJML)&Lt=p+*Ja8o=EQP?u67zN51HfoS^=0#XiZST<6*8bvJn?!CGBC#s;v@+p--%p2B53*W0)h5L z23qHF>!oT$z zgUp2n@sh}Z)hJ|mVPkMDD~{|ivSLC)(@&_GETSlgm=$`kZXhz`w~|F1ui*^qoHe-N z&Dq3PmLWK4v3)SoFu3T7Cg~bC^ZC}h6nlafcEw0!S4vC1UCLY0o4$@*xvnk6mab7@_ z6K~!}1das4^A8D&)=RaJ=eJu&twmqp zSOtucJSi+hxKIO!Q^HS+1xn7-;s;ce?VV}!cz Vi_Afct$S3uHwdSn$?Key{Xgbg8gu{v diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile2.prefab index edca0c999be7b7bc7a55817a311151a2dea541ee..c568d01b3658d185030350a64aaac09c18a48fb2 100644 GIT binary patch literal 20188 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 literal 15443 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 Xw)I5Yir4oHQD2<7*ig>OnUVhk^6~!L diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile3.prefab index 0042c820f3e4f82c08c5e997e5a968ef1852f4d9..04a879a9a9abb6a2030d7f28de7c5f3bc4ee74bd 100644 GIT binary patch literal 19908 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 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile5.prefab index 484ac7510d1c8da24119214fdb1b0def430c3a14..eec6785f2011763632caecb04af2ae911c8397e8 100644 GIT binary patch literal 19908 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 RrWNUlXyr)4pA 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 bA@TaYQEeMYrjw7KnE$X&tlm*iFERXoJB_zt diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile6.prefab index 6378fb003c6c533f2c2fd2c5ed3ebf4953b1af9b..4bdc6f2f2f149e9ae898db3afc0f7f66bb332c07 100644 GIT binary patch literal 19908 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 literal 14394 zcmeHOS#R4&5`Oou;5E$e?-Uhv5Yl>AE+y{LJ{;z`-GtW5Z5%lC29@V5W4;dRc6{7;@<^Sa5aa%B0c z`vvsPOEJg;3+AI5Qj>K1pzN{keZ&cjvsBueCXCS(_)PY2H@#8c!$9IBD}c=#Xl; zxYipvkG-p!l}%RFiyuHNiyK2rR&$mbB!&LIN?37O;Zy}*?t!EG*2Bm;Acp}7faBr5 z^`{_yhQEpy7?m%oCSO%PutjZh=*VhD!722FY6V?TQ3(D*%TyLQp65kcbCAuy|04u- z#@aawxD%D@Q9^xL`m(Cpk9CUQrMSgBPL~C*$K|Zx&AS|QPV^4x* zP_4c5s;rLqoZaQHR(3;#rzMLEo}xCQA&?5YVF;#4o!^=Zmr@Vc6)h_`<6cA`#DBC|R(=BDXBERKnJBMi>YFpE^=T)kDKakuw%G10CBMI8g3eBSN zvaLSdrmW>F<(1}gTyq9$(rF3kh#h!-_=?PJXyZKZ~oaJo(w2J$U`x534?zdmVz5C}cHks{7qu|D-QEVZQf5i0)g>>1m%GBvH5S2=WKBDr zv$XmQC|@qKOP+85q&@1%L&+9-@-az@Wy%FyMSyT#;cj>hn_^XWExgZX^Y)^yV*aUN zv##tV&kDJF4t+x=0>T!k`J6R>fYq=gH}V5J@`TvVl^!&>f)7?ujuM9eKpb8h+4i-8 z!Zh3IxJ>31Dpb!y zS~2OmDwg1X-SN7HRk>MG7}iNCDlFKomJ_&GpyGG@({;!A$*inu{s9~YRy1c-eLM$r zbi!N7bv^D0_)Xy3lBabAXtzzlA_J_Ke{fwD9Pb66UCe(X5J4jeZL(~x_NhJF+Qg@<5}Iyzvk}TrOfaGt&jV{~QH+(E z?o1TJSt&$si+yes!)0;CsGr7B3e4dNVch4GaF=<$pTvN$pA*GU;X%W-1@Fy`B1&!7 ziQu0fsIbKuoYPgGS3$t_Sb|G}R~1VzR>M$e*8%yGNN{G@!unnSr@fC9uz|CYr%=a$ z6N|Bg@NaTr#pHLw?h3X0CU#evT^YDNpb%IvTHSDDsR|{)5t1zS>|laC1b&_?D^zed zTvWzcV)#qb^=lf4Kl#bPzs%jLVqDWLwT|)VNOHcUUtS~ zzUNCH{ZOk8jRlHh~W&oUxkqI<3f7u4^yqv@h2 z96OE^!qeSlL&6`y|Gi7kbA71mh0M0#nd&;aA52r#^#gcDHu&lex2IenVT`xFW00XG zp0`RI3yNY^L}QNzQD9S_MJ!1@;`?#xBuN}QBqey-djM^2R|Y*WtrPma6TY65p0F;U zl|bJ$9qyaT;BHk0U2RC{A#nzk#H6nY9U9Z^tkJcQHk3j2?ixy==c(td2WZ}(q71q` zDg!FQ3n&8*VmI;QERKj1xV9gYG+=HT2b{R6m*MH{18-Y#mgeDf(Sk&`O~1nhy7s zWzfXFWq6u0m=*wA(!%Z2buV}~m8zo;Dueop3h_NH19qb=!}nGO-%D5wyH@1KZsbLF zmNCywISJy#A$|tRu((ku;%EuKahdWKv*84qcw`%bB+T_6PFR*8U9vP^Vy2(S%TvU6 z9Md;P7W!?9G%YIpwT6q?dx~^i~O)#B`c13QOIOM*-o;0KLmFhFI*bf0TxF{WfpI{ciY3w6$YIo z%Nh>&)FXcZ}xsk^M629vjPAB diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile7.prefab index b1a00b67d62803fe40c7f591b1b974699558730c..fcd0a072be600100c6fe0fc2008011fea1b66f5d 100644 GIT binary patch literal 19644 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 literal 13344 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 TVENeh$sY; literal 15459 zcmeHOTT|P}5`O1bXdgCDn9}GjzZnCGPeDRq!l|vTQ`ATr8=cjKl4JtAwg3He&qW#w znGjA$FpH`{R;x9a?pDvI?w((No17dQWRL9pdOmq?{IdGRXy|ghD$?f8PWIw5-?dCa z#yg|Y2=5Z(9WgD>c6Q#=oPCP^%i?CdV;K3R`28VG*ilB8_1G{ud0JK#tFOxhRHR@G@)j15nA zpF`iQ;Da0)Fduo@weDDU;0HK_;rq7jI*xB`X7F4maLEG2lswAgQtOxd25hS;FbF7^l=1*hhME!s@HF7UvCZ()ch*o3dI{#H^mg zO?m^}5v5GWcqb;mb6(M+UX)e-0(6;QYNplAS(u%$l;bj{*;$EG<#M?NdF~o_{QsZ) z{}-61#(P@UX~#Pvd%ny0$*zI?8s{8ZM%%+C_aqaZfz1(Y)2lQ~DhB%a{XbkeN3^*@ zmA2|}EX%fKqi1E=e5w+>Z*y)w_QO@is!6fTSp6Xd;}rerQ}|mc$+nGm(gb%<+ec~E zKx@3MpZd-{LQgneO)j89)7mwbt26=W_72v&-Zh%LYtRJ9QTiUwHQvd0ZD+r{ot9Y! z-ey}wK|yQaqcm|y3z^mDRSIu<>l6+P8f6SbL_o;{p3UOApM$p(b^}HXrY}rc8vPVJ z9yZ9$c+jjYFe~YoxLKXC0%W-@(p(c!emSLeGryuq`32S;lv;jy#$pEEu17t%D`=j^ zpW--MC5-z*WIid;Ib6V6R#t5b$LaE_IjzcweXi-Ublb=pG6Y+&6d0C$#

D^dtem8LV!sqYPCcc^#ixOKlj73_3P*#z6 z2XQe5V-lCsa)mxeEYRA+=&SDAC!gk|h_6cB$0?uL3hAQER)7d@SXIGWdA}L%SZ4*7 zYEG|}o?y`j6Te}fFIvIRmPJ{ykFXlitUfBM=@qS-1J($st8vd@C9eP}H1B7MG;dN6 zf$Cw-Xx_q*IYXtfL@bQL*m34CP~nzO(jv`QIqyrnT4F_>teW!k#R)Q z3rs6`07cohO&s$9pys(|K*YK`jN~laH;K)=$S>DWlfYq%tSl?8i64){_~f?(hoRYN zi0SD#Yz?z%EovCd5sTM%LSVw|z>^4uVBJq{0s87w;th$}-W0~icrVd4Y#$73))`R%}9Xm%Q6 z`hPK)3?4vOOl$NW3?mYT!3U6FdvYjDX!vPBj9cKA0I^O@&jG~vtF|pbOcTY61Y+DR zZ4D6Xr1|=Q*jp&_Aj3X=QxENkbaEXsX$MQ>8b-oN0yqo%>$nka()_evAyag|={2@gWt zwGe>ESmY)#)H^Jag%deJ5XC-a5JL`VE2 zy~z>?=aAdf0{;zUI8MvKOfVRlw5`J;*}&7X{5wq=$heX{RsB#mCuJggABoJ^eww6} z$faO9QV@AA<2nIk))}vemQE^0F&Uv1fVhrpzow7gHeLU)w{=Vh64)ULRrLFQCC52b zwEQez%V)6_zLwjM<}ZhQEqKjGRB{B5NFhArS>c7$aHG}w0uG^u}f)X!@!UTlFVv{nD5tBI- z@KPK>T1iB2zs+^af-5bb3o19mz%?N^2~}X07f2*_1jQ-km#(a8-GPQaFuo$Vs=XpZ z6?V35K~RuOX4u0*RgVqt8NMaM43N1EEO)ct#i*fJ$bNj(kWYRq{4O`U@8WlVP63_J z@VDYxQ9#Ena66)gnwp*?YRF%;Er}ZHqIi)}L++NgC2FWiv$xE?70^M^^jiVlKd68X zfEyOT_R-spgm?$Ep)VrVA%Y4psvK&m0UvFw2bKfJFHl)q3U#gU44;Vs@C#tD18Da83(uu7N7WA* zgBp~w33c5nUkOD`STQIgP-jJl^L=A*HX4I^Y)I*WX%8BSPG3_xG^W~FqbnudGX~i^ zeEheEnx~p~dqey27-LZE*bW-P4=@G>2JQsR^ld-%B9l5!sa_Swzfd;5hv_p;*TL zurX{LTVE*ZT0NkQK%EsG&Yfpa#J*>EoH6Jg09#VZ?bB5+c-D=or4Jf|yo(0$oSp%@ zQJ&$Mjll_^W{CO>3K@Ny#3Au$L>P(8$c2(FPh<=vir8Pl9=ADbaFYT@6Avsyus3Es zpJ5oBbVieOg&Q#Vb_q%Rz;MIJ*uVlHNt$OR?(=fc8YO9(rFn!;`hp0%p_c5RDzDY! z=*D23q__WC<=2zAD(hO?pCN9h#Ti?|HXV_`5FO^USkY|CvP|sp5bea>^&SC9z~Rdd zkR2hF&fc`w5Rwvuj^kB@xs!~>EC+Fj-5Z9HuxPbZ3weIIwjoo@1-8O~jO0#2K|QPK!S}qS#5h4;y(BsUO${1s!kL^u?uhd3f9Ku?_4BL(uWaFnpIF+R#of G!Sz4k$php7 diff --git a/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab b/Assets/Examples/Prefabs/DungeonTiles/Tile9.prefab index 579069b0a9a6f698a0ecc4725c7d7fc0ba89bb1a..b6068c9b0aae1535624f80bae3108f116b05835e 100644 GIT binary patch literal 19908 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 ZU06D3N+tV|KdpbVTDsg{msxv@lWANPuN@nq z{k_R#!tWyM6+$HR+`V_SU>~DDS={dLSypi=f4|QX_BN->X5X@f_^_&L)?8I(l9kIv zwXS3Rl=V-VkD`{D@7wG7W7A5_O-j7<70<6Vf;Qqt_=sm1mnOBa7bixkLfL|bvHl2XzW|((4kPg z_na;lZ4F)Cw?36HqDz(t`8?)r8}|GIy*^>hYNN(QOWQ1dlVojGZ;a@?nZ<2(4X;Cb zR$S|q?8V-BP0J>&>f$??l;YCBNZ)6PA2o(mO!KpfcU6qb4UFe&>sEaKExtcPH;uBV zRg?8)!;Qj5u?1Ai5d`%iQ6GFmeX6FzRhB0;EBP2r`i8lfxJUt^n<1At*mHT+X35a8 z-C#@Tg|@(kS<)r8ukihrwkwX9u5KkitE%>6o%CQj=A-gvowIsYE_2qr&j7!oGlTx> zMTr0a+c4cbsmkhrt>|?I>uxsy@us9v&JvDoPAU@qTcomx>+H%T0faohMqzlC>kOWD zX_Qh#k|<1ITv%*VMi{c0OFcs3$bD_Kw^slVEHNWjukpsioHoro0p7^cj8BZXrgBdG)zpj6jBZu3)B|5PS9uBG3-w_Y3sCFQ}A01BPhQ?Wj5L>%BQqGx~;%_gNPhM8hP zm=i&VFjc(Z14-5T{SPsJTXffNw8f>td9En^KXG1AWNaBiKzn3q;5~E(M<_}rm*#sVcg{aRjj9>vQTTdx!Z_qa{-Hp^R3phR8&R}=9r zYs8o*-d;nwL$+f(TBDTPXaCLmpW>HhSC|~dJ;bwKskOFuP~9AYN(jdBt_%fmD>tc) z;ZU%fH|KQ*_H1YRZfsv8hPcGh0*rHM!;BeZu*dKUxxJx2o5pIb#I72ggoU{|c_ zu7=}mxoS`ADq^1+y6noHu{4+4=h!_yh~T6UB!5DizkoGBmkNpRgq~QkCkhA6z*a^! zwn0Ud*4AJt*y%uEtPS3L>Df4-ZM>S7X~k={tTd}(P}Y%LgM2f$tVUiQR%>qm$_?Il znCp<+_!QlomGPjK|Ipk5>ADEE0CTl{r*#0gAWUq zAv9v>p;$oEHB1aW(2#b0lCsX7Vd!DR1?%GlS-pn0XiUulXQ2-s0j>dzt69V&;54|W zfP+IX4E1im?QKl+s;b4*KEEC&I=>Ton1J0k(ZdEi6Q{DF4hD`T?!5d)8kl6fueFS& z1}4C_8yc7~Lr`do(2X+K0mY$hG`OcB*NH+XqFoX zNx(dc0uqKGVF8$g(&MchdWIVHLkIi!=wQB&k@JFdFrcIRTwOXQ2EjVuf&d(WN)gyr zrex$n8e`9|PKkc(ggPY<^d)s_>f1i}AOpj_WhNQ4lu)+U` zJ3vO|kGR9XDDD9Hc|2}7Ow!v^nS4jIrQbzpT4ujNs|pA~gG>L;Fsf=ePc&8`IS2>B zGomM!2MMe$b6x2gvh8$mba6RdKx8(9RA1`?j{2d`;xZQBfgP#Xx4h;;2>9bD(v^u~ zc5J)0=X!8JDrQXKz{8li{Utenib5*qupTWJZ{ls|?ZooE;@b(}#6N>W_j9wUn}y7} z;5X9G==bnUQ^+V12d{?@1Lz&%EQDYFf*Iz~gZC8j4aDy|XPg%l#Vq6}7<(S%clq%4 z08`sf9iL&J(v)~KhI%GY=iOk?&C;0A*WKjnLD3!71vCisSm4FzCm|COx+C zC`e5C#-u}Kx}FWWo}?`>sJFWYD0Dw{zjXu6^FzR(%kz3d_&fs`A}8?(bHL+ELXxI7 zg2e}+LJudz^Aex`*Wi9IY=J;`VmK)JTHn_o&}ShZGJ`HWWCl6XoEh|?Cy`$V0D>_& zmkk*}mm8CJ^^AdmvjQ7VFav>3@?iENHo=`60`5 znHnSOiTmp*f;9t&FY6G+xk_agZ@X*9Pl=izNFKX8SB^Il{xfsa Yinfg;)A8F6bO&wv=0{Q=W}ATcFQ@IciU0rr diff --git a/Assets/Examples/Scenes/1_multiple_agent_sizes.unity b/Assets/Examples/Scenes/1_multiple_agent_sizes.unity index 906c30ff..ad3a3cc7 100644 --- a/Assets/Examples/Scenes/1_multiple_agent_sizes.unity +++ b/Assets/Examples/Scenes/1_multiple_agent_sizes.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,42 +38,67 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,94 +118,16 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &17170408 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 17170409} - - component: {fileID: 17170412} - - component: {fileID: 17170411} - - component: {fileID: 17170410} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &17170409 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 17170408} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.53, z: -0.119999886} - m_LocalScale: {x: 1, y: 3, z: 1} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &17170410 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 17170408} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &17170411 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 17170408} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &17170412 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 17170408} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &47548335 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 47548337} - component: {fileID: 47548336} @@ -193,8 +141,9 @@ GameObject: --- !u!114 &47548336 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 47548335} m_Enabled: 1 m_EditorHideFlags: 0 @@ -208,8 +157,9 @@ MonoBehaviour: --- !u!4 &47548337 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 47548335} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.23} @@ -227,9 +177,10 @@ Transform: --- !u!1 &59713031 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 59713032} - component: {fileID: 59713035} @@ -245,8 +196,9 @@ GameObject: --- !u!4 &59713032 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 59713031} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.53, z: -5.34} @@ -258,15 +210,20 @@ Transform: --- !u!23 &59713033 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 59713031} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -276,21 +233,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &59713034 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 59713031} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -301,16 +262,18 @@ BoxCollider: --- !u!33 &59713035 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 59713031} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &96236896 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 96236897} - component: {fileID: 96236900} @@ -326,8 +289,9 @@ GameObject: --- !u!4 &96236897 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 96236896} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.53, z: 4.29} @@ -339,15 +303,20 @@ Transform: --- !u!23 &96236898 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 96236896} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -357,21 +326,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &96236899 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 96236896} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -382,97 +355,18 @@ BoxCollider: --- !u!33 &96236900 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 96236896} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &223766995 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 223766996} - - component: {fileID: 223766999} - - component: {fileID: 223766998} - - component: {fileID: 223766997} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &223766996 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 223766995} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.53, z: 4.29} - m_LocalScale: {x: 1, y: 3, z: 2} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &223766997 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 223766995} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &223766998 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 223766995} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &223766999 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 223766995} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &285406944 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 285406948} - component: {fileID: 285406947} @@ -488,15 +382,20 @@ GameObject: --- !u!23 &285406945 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285406944} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -506,21 +405,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &285406946 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285406944} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -531,15 +434,17 @@ BoxCollider: --- !u!33 &285406947 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285406944} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &285406948 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285406944} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 3.06, z: -0.26999998} @@ -551,9 +456,10 @@ Transform: --- !u!1 &521821143 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 521821144} - component: {fileID: 521821147} @@ -569,8 +475,9 @@ GameObject: --- !u!4 &521821144 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 521821143} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -0.89, y: 0, z: 0.33} @@ -582,15 +489,20 @@ Transform: --- !u!23 &521821145 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 521821143} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -600,178 +512,51 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!64 &521821146 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 521821143} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!33 &521821147 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 521821143} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &628198134 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 628198135} - - component: {fileID: 628198138} - - component: {fileID: 628198137} - - component: {fileID: 628198136} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &628198135 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 628198134} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.53, z: 1.7299998} - m_LocalScale: {x: 1, y: 3, z: 1} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &628198136 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 628198134} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &628198137 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 628198134} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &628198138 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 628198134} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &680190724 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 680190725} - - component: {fileID: 680190726} - m_Layer: 0 - m_Name: Gates (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &680190725 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 680190724} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.23000002} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 17170409} - - {fileID: 1059262767} - - {fileID: 1780454810} - - {fileID: 628198135} - - {fileID: 223766996} - - {fileID: 1064128645} - m_Father: {fileID: 1140663889} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &680190726 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 680190724} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1e3fdca004f2d45fe8abbed571a8abd5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_OverrideArea: 1 - m_Area: 1 - m_IgnoreFromBuild: 0 - m_AffectedAgents: --- !u!1 &866309334 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 866309339} - component: {fileID: 866309338} - - component: {fileID: 866309337} - component: {fileID: 866309336} - component: {fileID: 866309335} m_Layer: 0 @@ -784,34 +569,36 @@ GameObject: --- !u!81 &866309335 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 866309334} m_Enabled: 1 --- !u!124 &866309336 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 866309334} - m_Enabled: 1 ---- !u!92 &866309337 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 866309334} m_Enabled: 1 --- !u!20 &866309338 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 866309334} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -832,15 +619,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &866309339 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 866309334} m_LocalRotation: {x: -0.29831523, y: -0.43440217, z: 0.15508185, w: -0.835615} m_LocalPosition: {x: -10.930777, y: 15.820303, z: -9.310078} @@ -853,9 +643,10 @@ Transform: --- !u!1 &1022714482 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1022714484} - component: {fileID: 1022714483} @@ -869,16 +660,19 @@ GameObject: --- !u!108 &1022714483 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1022714482} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -888,6 +682,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -895,16 +707,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &1022714484 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1022714482} m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} m_LocalPosition: {x: 5.2, y: 15.4, z: -9} @@ -913,174 +732,13 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1059262766 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 1059262767} - - component: {fileID: 1059262770} - - component: {fileID: 1059262769} - - component: {fileID: 1059262768} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1059262767 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1059262766} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.53, z: -5.34} - m_LocalScale: {x: 1, y: 3, z: 1} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1059262768 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1059262766} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1059262769 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1059262766} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1059262770 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1059262766} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1064128644 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 1064128645} - - component: {fileID: 1064128648} - - component: {fileID: 1064128647} - - component: {fileID: 1064128646} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1064128645 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1064128644} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.53, z: -2.26} - m_LocalScale: {x: 1, y: 3, z: 1} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1064128646 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1064128644} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1064128647 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1064128644} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1064128648 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1064128644} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1140663883 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1140663889} - component: {fileID: 1140663885} @@ -1095,8 +753,9 @@ GameObject: --- !u!114 &1140663884 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1140663883} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1119,12 +778,13 @@ MonoBehaviour: m_OverrideVoxelSize: 0 m_VoxelSize: 0.33333334 m_BuildHeightMesh: 0 - m_BakedNavMeshData: {fileID: 23800000, guid: e3102e40dfee54ef4b9e05daad8492d3, type: 2} + m_NavMeshData: {fileID: 23800000, guid: e3102e40dfee54ef4b9e05daad8492d3, type: 2} --- !u!114 &1140663885 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1140663883} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1147,12 +807,13 @@ MonoBehaviour: m_OverrideVoxelSize: 0 m_VoxelSize: 0.16666667 m_BuildHeightMesh: 0 - m_BakedNavMeshData: {fileID: 23800000, guid: 16f366ac098d14128924f8cb99c76613, type: 2} + m_NavMeshData: {fileID: 23800000, guid: 16f366ac098d14128924f8cb99c76613, type: 2} --- !u!4 &1140663889 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1140663883} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 4.91, y: 0.24, z: 4.68} @@ -1160,16 +821,16 @@ Transform: m_Children: - {fileID: 521821144} - {fileID: 47548337} - - {fileID: 680190725} m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1324941544 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1324941545} - component: {fileID: 1324941547} @@ -1184,8 +845,9 @@ GameObject: --- !u!4 &1324941545 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1324941544} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -1198,12 +860,14 @@ Transform: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1324941544} m_Text: 'Click on the ground to move agents. - Notice the red agent can pass only the rightmost gate' + Notice the red agent can pass + only the rightmost gate' m_OffsetZ: 0 m_CharacterSize: 0.5 m_LineSpacing: 1 @@ -1220,15 +884,20 @@ TextMesh: --- !u!23 &1324941547 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1324941544} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -1238,22 +907,26 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!1 &1332002821 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1332002822} - component: {fileID: 1332002825} @@ -1269,8 +942,9 @@ GameObject: --- !u!4 &1332002822 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1332002821} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.53, z: -0.119999886} @@ -1282,15 +956,20 @@ Transform: --- !u!23 &1332002823 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1332002821} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -1300,21 +979,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &1332002824 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1332002821} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -1325,16 +1008,18 @@ BoxCollider: --- !u!33 &1332002825 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1332002821} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1632243708 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1632243714} - component: {fileID: 1632243713} @@ -1351,8 +1036,9 @@ GameObject: --- !u!114 &1632243709 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632243708} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1362,8 +1048,9 @@ MonoBehaviour: --- !u!195 &1632243710 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632243708} m_Enabled: 1 m_AgentTypeID: 0 @@ -1383,15 +1070,20 @@ NavMeshAgent: --- !u!23 &1632243711 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632243708} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -1401,28 +1093,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1632243713 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632243708} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1632243714 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1632243708} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.58, y: 1, z: 6.92} @@ -1431,93 +1128,13 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1780454809 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 1780454810} - - component: {fileID: 1780454813} - - component: {fileID: 1780454812} - - component: {fileID: 1780454811} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1780454810 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1780454809} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 3.06, z: -0.26999998} - m_LocalScale: {x: 1, y: 1, z: 11.13} - m_Children: [] - m_Father: {fileID: 680190725} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1780454811 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1780454809} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1780454812 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1780454809} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1780454813 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1780454809} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1815214394 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1815214395} - component: {fileID: 1815214398} @@ -1533,8 +1150,9 @@ GameObject: --- !u!4 &1815214395 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815214394} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.53, z: 1.7299998} @@ -1546,15 +1164,20 @@ Transform: --- !u!23 &1815214396 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815214394} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -1564,21 +1187,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &1815214397 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815214394} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -1589,16 +1216,18 @@ BoxCollider: --- !u!33 &1815214398 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1815214394} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1911787635 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1911787636} - component: {fileID: 1911787639} @@ -1614,8 +1243,9 @@ GameObject: --- !u!4 &1911787636 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1911787635} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.53, z: -2.26} @@ -1627,15 +1257,20 @@ Transform: --- !u!23 &1911787637 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1911787635} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -1645,21 +1280,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &1911787638 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1911787635} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -1670,16 +1309,18 @@ BoxCollider: --- !u!33 &1911787639 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1911787635} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &2032738794 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 2032738800} - component: {fileID: 2032738799} @@ -1696,8 +1337,9 @@ GameObject: --- !u!114 &2032738795 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2032738794} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1707,8 +1349,9 @@ MonoBehaviour: --- !u!195 &2032738796 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2032738794} m_Enabled: 1 m_AgentTypeID: -1372625422 @@ -1728,15 +1371,20 @@ NavMeshAgent: --- !u!23 &2032738797 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2032738794} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 5195427c0d27644ed90d87ebe86d468a, type: 2} m_StaticBatchInfo: @@ -1746,28 +1394,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &2032738799 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2032738794} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &2032738800 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2032738794} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.17, y: 1, z: 3.51} diff --git a/Assets/Examples/Scenes/2_drop_plank.unity b/Assets/Examples/Scenes/2_drop_plank.unity index 5cb0eadb..75708590 100644 --- a/Assets/Examples/Scenes/2_drop_plank.unity +++ b/Assets/Examples/Scenes/2_drop_plank.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,42 +38,67 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,13 +118,16 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &17731332 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 17731336} - component: {fileID: 17731335} @@ -116,15 +145,20 @@ GameObject: --- !u!23 &17731333 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 5195427c0d27644ed90d87ebe86d468a, type: 2} m_StaticBatchInfo: @@ -134,21 +168,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &17731334 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_Material: {fileID: 0} m_IsTrigger: 1 @@ -159,15 +197,17 @@ BoxCollider: --- !u!33 &17731335 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &17731336 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_LocalRotation: {x: 0.3389773, y: 0.14708798, z: 0.28642634, w: 0.8839794} m_LocalPosition: {x: -0.42, y: 6.01, z: 48.89} @@ -179,8 +219,9 @@ Transform: --- !u!114 &17731337 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_Enabled: 1 m_EditorHideFlags: 0 @@ -193,8 +234,9 @@ MonoBehaviour: --- !u!114 &17731338 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 17731332} m_Enabled: 1 m_EditorHideFlags: 0 @@ -205,9 +247,10 @@ MonoBehaviour: --- !u!1 &49280205 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 49280209} - component: {fileID: 49280208} @@ -224,15 +267,20 @@ GameObject: --- !u!23 &49280206 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 49280205} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: ade8fca681f724cd89b5a568642f15ae, type: 2} m_StaticBatchInfo: @@ -242,21 +290,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &49280207 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 49280205} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -267,15 +319,17 @@ BoxCollider: --- !u!33 &49280208 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 49280205} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &49280209 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 49280205} m_LocalRotation: {x: 0, y: -0.010297261, z: 0, w: 0.999947} m_LocalPosition: {x: 0, y: 0, z: 49.3} @@ -287,8 +341,9 @@ Transform: --- !u!114 &49280210 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 49280205} m_Enabled: 1 m_EditorHideFlags: 0 @@ -298,9 +353,10 @@ MonoBehaviour: --- !u!1 &137038668 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 137038669} - component: {fileID: 137038673} @@ -317,8 +373,9 @@ GameObject: --- !u!4 &137038669 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137038668} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 26.67} @@ -330,8 +387,9 @@ Transform: --- !u!114 &137038670 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137038668} m_Enabled: 1 m_EditorHideFlags: 0 @@ -341,15 +399,20 @@ MonoBehaviour: --- !u!23 &137038671 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137038668} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 5c9ea827aaa4145c8900e81ca1395aae, type: 2} m_StaticBatchInfo: @@ -359,21 +422,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &137038672 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137038668} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -384,16 +451,18 @@ BoxCollider: --- !u!33 &137038673 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137038668} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &176201395 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 176201399} - component: {fileID: 176201398} @@ -410,15 +479,20 @@ GameObject: --- !u!23 &176201396 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 176201395} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: ade8fca681f724cd89b5a568642f15ae, type: 2} m_StaticBatchInfo: @@ -428,21 +502,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &176201397 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 176201395} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -453,15 +531,17 @@ BoxCollider: --- !u!33 &176201398 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 176201395} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &176201399 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 176201395} m_LocalRotation: {x: 0, y: -0.113550045, z: 0, w: 0.9935323} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -473,8 +553,9 @@ Transform: --- !u!114 &176201400 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 176201395} m_Enabled: 1 m_EditorHideFlags: 0 @@ -484,9 +565,10 @@ MonoBehaviour: --- !u!1 &337089815 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 337089819} - component: {fileID: 337089818} @@ -503,15 +585,20 @@ GameObject: --- !u!23 &337089816 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337089815} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -521,21 +608,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &337089817 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337089815} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -546,15 +637,17 @@ BoxCollider: --- !u!33 &337089818 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337089815} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &337089819 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337089815} m_LocalRotation: {x: 0, y: 0.02922992, z: 0, w: -0.99957275} m_LocalPosition: {x: 0, y: 0, z: 35.5} @@ -566,8 +659,9 @@ Transform: --- !u!114 &337089820 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 337089815} m_Enabled: 1 m_EditorHideFlags: 0 @@ -577,9 +671,10 @@ MonoBehaviour: --- !u!1 &413743877 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 413743879} - component: {fileID: 413743878} @@ -593,16 +688,19 @@ GameObject: --- !u!108 &413743878 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 413743877} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -612,6 +710,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -619,16 +735,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &413743879 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 413743877} m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} m_LocalPosition: {x: 0, y: 3, z: 0} @@ -640,9 +763,10 @@ Transform: --- !u!1 &479450997 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 479450998} - component: {fileID: 479451002} @@ -659,8 +783,9 @@ GameObject: --- !u!4 &479450998 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479450997} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 11.5} @@ -672,8 +797,9 @@ Transform: --- !u!114 &479450999 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479450997} m_Enabled: 1 m_EditorHideFlags: 0 @@ -683,15 +809,20 @@ MonoBehaviour: --- !u!23 &479451000 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479450997} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -701,21 +832,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &479451001 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479450997} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -726,16 +861,18 @@ BoxCollider: --- !u!33 &479451002 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479450997} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &554462357 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 554462361} - component: {fileID: 554462360} @@ -752,15 +889,20 @@ GameObject: --- !u!23 &554462358 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 554462357} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -770,21 +912,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &554462359 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 554462357} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -795,15 +941,17 @@ BoxCollider: --- !u!33 &554462360 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 554462357} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &554462361 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 554462357} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 19.2} @@ -815,8 +963,9 @@ Transform: --- !u!114 &554462362 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 554462357} m_Enabled: 1 m_EditorHideFlags: 0 @@ -826,9 +975,10 @@ MonoBehaviour: --- !u!1 &691732394 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 691732395} - component: {fileID: 691732396} @@ -842,8 +992,9 @@ GameObject: --- !u!4 &691732395 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 691732394} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 4} @@ -855,22 +1006,24 @@ Transform: --- !u!114 &691732396 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 691732394} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: c751607f01df8445c86b012985b8b152, type: 3} m_Name: m_EditorClassIdentifier: - m_Prefab: {fileID: 162510, guid: c9c7047f49d1a47f8b32b67338d4fc92, type: 2} + m_Prefab: {fileID: 162510, guid: c9c7047f49d1a47f8b32b67338d4fc92, type: 3} m_KeyCode: 32 --- !u!1 &1190262315 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1190262320} - component: {fileID: 1190262319} @@ -889,8 +1042,9 @@ GameObject: --- !u!136 &1190262316 CapsuleCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_Material: {fileID: 0} m_IsTrigger: 1 @@ -902,15 +1056,20 @@ CapsuleCollider: --- !u!23 &1190262317 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -920,21 +1079,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!54 &1190262318 Rigidbody: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} serializedVersion: 2 m_Mass: 1 @@ -948,15 +1111,17 @@ Rigidbody: --- !u!33 &1190262319 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1190262320 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 6.01, z: 26.2} @@ -970,8 +1135,9 @@ Transform: --- !u!114 &1190262321 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_Enabled: 1 m_EditorHideFlags: 0 @@ -981,8 +1147,9 @@ MonoBehaviour: --- !u!195 &1190262322 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190262315} m_Enabled: 1 m_AgentTypeID: 0 @@ -1002,9 +1169,10 @@ NavMeshAgent: --- !u!1 &1211694722 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1211694724} - component: {fileID: 1211694723} @@ -1018,8 +1186,9 @@ GameObject: --- !u!114 &1211694723 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1211694722} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1031,8 +1200,9 @@ MonoBehaviour: --- !u!4 &1211694724 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1211694722} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 26.2} @@ -1044,9 +1214,10 @@ Transform: --- !u!1 &1264455848 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1264455852} - component: {fileID: 1264455851} @@ -1063,15 +1234,20 @@ GameObject: --- !u!23 &1264455849 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264455848} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -1081,21 +1257,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!65 &1264455850 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264455848} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -1106,15 +1286,17 @@ BoxCollider: --- !u!33 &1264455851 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264455848} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1264455852 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264455848} m_LocalRotation: {x: 0, y: 0.013089597, z: 0, w: 0.99991435} m_LocalPosition: {x: 0, y: 0, z: 42.7} @@ -1126,8 +1308,9 @@ Transform: --- !u!114 &1264455853 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264455848} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1137,9 +1320,10 @@ MonoBehaviour: --- !u!1 &1645357701 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1645357702} m_Layer: 0 @@ -1152,8 +1336,9 @@ GameObject: --- !u!4 &1645357702 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1645357701} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1172,13 +1357,13 @@ Transform: --- !u!1 &1830412286 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1830412291} - component: {fileID: 1830412290} - - component: {fileID: 1830412289} - component: {fileID: 1830412288} - component: {fileID: 1830412287} m_Layer: 2 @@ -1191,34 +1376,36 @@ GameObject: --- !u!81 &1830412287 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1830412286} m_Enabled: 1 --- !u!124 &1830412288 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1830412286} - m_Enabled: 1 ---- !u!92 &1830412289 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1830412286} m_Enabled: 1 --- !u!20 &1830412290 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1830412286} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -1239,15 +1426,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1830412291 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1830412286} m_LocalRotation: {x: 0.20933227, y: 0.007333945, z: -0.0015698979, w: 0.9778158} m_LocalPosition: {x: -0.11062211, y: 3.309309, z: -7.3740253} @@ -1260,9 +1450,10 @@ Transform: --- !u!1 &1958554905 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1958554906} - component: {fileID: 1958554908} @@ -1277,8 +1468,9 @@ GameObject: --- !u!4 &1958554906 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958554905} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -1291,12 +1483,14 @@ Transform: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958554905} m_Text: 'Click on the ground to move agent. - Press space to drop a walkable plank.' + Press space to drop a walkable + plank.' m_OffsetZ: 0 m_CharacterSize: 0.5 m_LineSpacing: 1 @@ -1313,15 +1507,20 @@ TextMesh: --- !u!23 &1958554908 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958554905} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -1331,13 +1530,16 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 diff --git a/Assets/Examples/Scenes/3_free_orientation.unity b/Assets/Examples/Scenes/3_free_orientation.unity index b79aa6d7..732dcddf 100644 --- a/Assets/Examples/Scenes/3_free_orientation.unity +++ b/Assets/Examples/Scenes/3_free_orientation.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,42 +38,67 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.450203, g: 0.5002427, b: 0.5753938, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,17 +118,19 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &215284572 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 215284577} - component: {fileID: 215284576} - - component: {fileID: 215284575} - component: {fileID: 215284574} - component: {fileID: 215284573} m_Layer: 0 @@ -115,34 +143,36 @@ GameObject: --- !u!81 &215284573 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 215284572} m_Enabled: 1 --- !u!124 &215284574 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 215284572} - m_Enabled: 1 ---- !u!92 &215284575 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 215284572} m_Enabled: 1 --- !u!20 &215284576 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 215284572} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -163,15 +193,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &215284577 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 215284572} m_LocalRotation: {x: 0, y: 0.000000014901161, z: 0.000000022351742, w: 1} m_LocalPosition: {x: -0.17193186, y: 8.0741825, z: 15.32492} @@ -184,9 +217,10 @@ Transform: --- !u!1 &513374599 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 513374600} - component: {fileID: 513374602} @@ -201,8 +235,9 @@ GameObject: --- !u!4 &513374600 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 513374599} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -215,12 +250,14 @@ Transform: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 513374599} m_Text: 'Click on the plane to move agent. - Notice the up-vector of navmesh is different from the world y-axis.' + Notice the up-vector of navmesh + is different from the world y-axis.' m_OffsetZ: 0 m_CharacterSize: 0.5 m_LineSpacing: 1 @@ -237,15 +274,20 @@ TextMesh: --- !u!23 &513374602 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 513374599} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -255,22 +297,26 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!1 &563535072 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 563535074} - component: {fileID: 563535073} @@ -284,16 +330,19 @@ GameObject: --- !u!108 &563535073 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 563535072} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 0.37208048, g: 0.8161765, b: 0.8161765, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -303,6 +352,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -310,16 +377,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &563535074 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 563535072} m_LocalRotation: {x: -0.44825655, y: 0.22926131, z: -0.120109804, w: -0.85561615} m_LocalPosition: {x: 0, y: 3, z: 0} @@ -331,9 +405,10 @@ Transform: --- !u!1 &574844796 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 574844802} - component: {fileID: 574844799} @@ -350,8 +425,9 @@ GameObject: --- !u!114 &574844797 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574844796} m_Enabled: 1 m_EditorHideFlags: 0 @@ -361,8 +437,9 @@ MonoBehaviour: --- !u!195 &574844798 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574844796} m_Enabled: 1 m_AgentTypeID: 0 @@ -382,15 +459,20 @@ NavMeshAgent: --- !u!23 &574844799 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574844796} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -400,28 +482,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &574844800 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574844796} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &574844802 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 574844796} m_LocalRotation: {x: -0.38268343, y: 0, z: 0, w: 0.92387956} m_LocalPosition: {x: -2.08, y: 10.91, z: 26.67} @@ -433,9 +520,10 @@ Transform: --- !u!1 &1282037949 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1282037954} - component: {fileID: 1282037953} @@ -452,8 +540,9 @@ GameObject: --- !u!114 &1282037950 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1282037949} m_Enabled: 1 m_EditorHideFlags: 0 @@ -476,20 +565,25 @@ MonoBehaviour: m_OverrideVoxelSize: 0 m_VoxelSize: 0.16666667 m_BuildHeightMesh: 0 - m_BakedNavMeshData: {fileID: 238755646918240070, guid: df1140b6a36a84fcc80e4e177275c22b, + m_NavMeshData: {fileID: 238755646918240070, guid: df1140b6a36a84fcc80e4e177275c22b, type: 2} --- !u!23 &1282037951 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1282037949} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -499,42 +593,47 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!64 &1282037952 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1282037949} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!33 &1282037953 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1282037949} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1282037954 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1282037949} m_LocalRotation: {x: -0.3826835, y: 0, z: 0, w: 0.9238795} m_LocalPosition: {x: -0.27426943, y: 8.925922, z: 25.682312} @@ -546,9 +645,10 @@ Transform: --- !u!1 &1982491631 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1982491633} - component: {fileID: 1982491632} @@ -562,16 +662,19 @@ GameObject: --- !u!108 &1982491632 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1982491631} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.7810258, b: 0.18382353, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -581,6 +684,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -588,16 +709,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &1982491633 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1982491631} m_LocalRotation: {x: 0.314395, y: -0.2447256, z: 0.084241904, w: 0.91332823} m_LocalPosition: {x: 0, y: 3, z: 0} diff --git a/Assets/Examples/Scenes/4_sliding_window_infinite.unity b/Assets/Examples/Scenes/4_sliding_window_infinite.unity index 17010e1a..c5952f95 100644 --- a/Assets/Examples/Scenes/4_sliding_window_infinite.unity +++ b/Assets/Examples/Scenes/4_sliding_window_infinite.unity @@ -1,19 +1,19 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!29 &1 -SceneSettings: +OcclusionCullingSettings: m_ObjectHideFlags: 0 - m_PVSData: - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] + serializedVersion: 2 m_OcclusionBakeSettings: smallestOccluder: 5 smallestHole: 0.25 backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -38,41 +39,66 @@ RenderSettings: m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,13 +118,16 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &107292542 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 107292544} - component: {fileID: 107292543} @@ -112,16 +141,19 @@ GameObject: --- !u!108 &107292543 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107292542} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 0.5514706, g: 0.45573467, b: 0.19463666, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -131,6 +163,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -138,16 +188,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &107292544 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107292542} m_LocalRotation: {x: 0.8445521, y: 0.116420306, z: -0.48104066, w: 0.20439675} m_LocalPosition: {x: 0, y: 10, z: 0} @@ -159,9 +216,10 @@ Transform: --- !u!1 &108111938 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 108111941} - component: {fileID: 108111940} @@ -177,8 +235,9 @@ GameObject: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108111938} m_Text: 'Click on ground to move agent. @@ -199,15 +258,20 @@ TextMesh: --- !u!23 &108111940 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108111938} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -217,21 +281,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!4 &108111941 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108111938} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -243,9 +311,10 @@ Transform: --- !u!1 &326844925 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 326844928} - component: {fileID: 326844927} @@ -260,15 +329,16 @@ GameObject: --- !u!114 &326844926 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 326844925} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 0805752a20e62489680c7c8ba929bccc, type: 3} m_Name: m_EditorClassIdentifier: - m_Prefab: {fileID: 131166, guid: c1f4492f15da844ebae2767c08ef4aab, type: 2} + m_Prefab: {fileID: 131166, guid: c1f4492f15da844ebae2767c08ef4aab, type: 3} m_PoolSize: 250 m_InstancesPerTile: 1 m_RandomPosition: 0 @@ -279,15 +349,16 @@ MonoBehaviour: --- !u!114 &326844927 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 326844925} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 0805752a20e62489680c7c8ba929bccc, type: 3} m_Name: m_EditorClassIdentifier: - m_Prefab: {fileID: 183886, guid: 46d69f622d1354ee0820b7921e262b38, type: 2} + m_Prefab: {fileID: 183886, guid: 46d69f622d1354ee0820b7921e262b38, type: 3} m_PoolSize: 250 m_InstancesPerTile: 10 m_RandomPosition: 1 @@ -298,8 +369,9 @@ MonoBehaviour: --- !u!4 &326844928 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 326844925} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -311,13 +383,13 @@ Transform: --- !u!1 &1151172701 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1151172706} - component: {fileID: 1151172705} - - component: {fileID: 1151172704} - component: {fileID: 1151172703} - component: {fileID: 1151172702} m_Layer: 0 @@ -330,34 +402,36 @@ GameObject: --- !u!81 &1151172702 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151172701} m_Enabled: 1 --- !u!124 &1151172703 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1151172701} - m_Enabled: 1 ---- !u!92 &1151172704 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151172701} m_Enabled: 1 --- !u!20 &1151172705 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151172701} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -378,15 +452,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1151172706 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151172701} m_LocalRotation: {x: 0.14133064, y: -0.03563044, z: 0.005090132, w: 0.989308} m_LocalPosition: {x: 2.0097656, y: 10.291893, z: -31.478638} @@ -399,9 +476,10 @@ Transform: --- !u!1 &1391876972 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1391876977} - component: {fileID: 1391876976} @@ -418,8 +496,9 @@ GameObject: --- !u!114 &1391876973 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1391876972} m_Enabled: 1 m_EditorHideFlags: 0 @@ -429,8 +508,9 @@ MonoBehaviour: --- !u!195 &1391876974 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1391876972} m_Enabled: 1 m_AgentTypeID: 0 @@ -450,15 +530,20 @@ NavMeshAgent: --- !u!23 &1391876975 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1391876972} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -468,28 +553,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1391876976 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1391876972} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1391876977 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1391876972} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 979.6, y: 0, z: 940.8} @@ -503,9 +593,10 @@ Transform: --- !u!1 &1604493934 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1604493936} - component: {fileID: 1604493935} @@ -519,16 +610,19 @@ GameObject: --- !u!108 &1604493935 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1604493934} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 0.8392157, g: 0.9866937, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -538,6 +632,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -545,16 +657,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &1604493936 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1604493934} m_LocalRotation: {x: -0.39746866, y: 0.12510414, z: -0.054799743, w: -0.9073944} m_LocalPosition: {x: 0, y: 10, z: 0} @@ -566,9 +685,10 @@ Transform: --- !u!1 &1939004444 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1939004446} - component: {fileID: 1939004445} @@ -582,8 +702,9 @@ GameObject: --- !u!114 &1939004445 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1939004444} m_Enabled: 1 m_EditorHideFlags: 0 @@ -595,8 +716,9 @@ MonoBehaviour: --- !u!4 &1939004446 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1939004444} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 971.27466, y: 59.49215, z: 910.20105} diff --git a/Assets/Examples/Scenes/5_sliding_window_terrain.unity b/Assets/Examples/Scenes/5_sliding_window_terrain.unity index b176b905..44bba6fd 100644 --- a/Assets/Examples/Scenes/5_sliding_window_terrain.unity +++ b/Assets/Examples/Scenes/5_sliding_window_terrain.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -38,41 +39,66 @@ RenderSettings: m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,17 +118,19 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &107160192 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 107160193} - component: {fileID: 107160197} - - component: {fileID: 107160196} - component: {fileID: 107160195} - component: {fileID: 107160194} m_Layer: 2 @@ -115,8 +143,9 @@ GameObject: --- !u!4 &107160193 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107160192} m_LocalRotation: {x: 0.20933227, y: 0.007333945, z: -0.0015698979, w: 0.9778158} m_LocalPosition: {x: -0.11062211, y: 3.309309, z: -7.3740253} @@ -129,34 +158,36 @@ Transform: --- !u!81 &107160194 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107160192} m_Enabled: 1 --- !u!124 &107160195 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 107160192} - m_Enabled: 1 ---- !u!92 &107160196 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107160192} m_Enabled: 1 --- !u!20 &107160197 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 107160192} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -177,16 +208,19 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!1 &479004265 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 479004267} - component: {fileID: 479004266} @@ -200,16 +234,19 @@ GameObject: --- !u!108 &479004266 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479004265} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -219,6 +256,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -226,16 +281,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &479004267 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 479004265} m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} m_LocalPosition: {x: 0, y: 3, z: 0} @@ -247,9 +309,10 @@ Transform: --- !u!1 &602558287 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 602558289} - component: {fileID: 602558288} @@ -263,8 +326,9 @@ GameObject: --- !u!114 &602558288 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 602558287} m_Enabled: 1 m_EditorHideFlags: 0 @@ -276,8 +340,9 @@ MonoBehaviour: --- !u!4 &602558289 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 602558287} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1007.9, y: 56, z: 938} @@ -289,9 +354,10 @@ Transform: --- !u!1 &1364867115 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1364867122} - component: {fileID: 1364867121} @@ -310,8 +376,9 @@ GameObject: --- !u!54 &1364867116 Rigidbody: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} serializedVersion: 2 m_Mass: 1 @@ -325,8 +392,9 @@ Rigidbody: --- !u!136 &1364867117 CapsuleCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_Material: {fileID: 0} m_IsTrigger: 1 @@ -338,8 +406,9 @@ CapsuleCollider: --- !u!114 &1364867118 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_Enabled: 1 m_EditorHideFlags: 0 @@ -349,8 +418,9 @@ MonoBehaviour: --- !u!195 &1364867119 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_Enabled: 1 m_AgentTypeID: 0 @@ -370,15 +440,20 @@ NavMeshAgent: --- !u!23 &1364867120 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -388,28 +463,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1364867121 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1364867122 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364867115} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 755, y: 42, z: 1277} @@ -422,9 +502,10 @@ Transform: --- !u!1 &1444751911 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1444751914} - component: {fileID: 1444751913} @@ -440,8 +521,9 @@ GameObject: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1444751911} m_Text: Building navmesh for local section of terrain m_OffsetZ: 0 @@ -460,15 +542,20 @@ TextMesh: --- !u!23 &1444751913 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1444751911} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -478,21 +565,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!4 &1444751914 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1444751911} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -504,9 +595,10 @@ Transform: --- !u!1 &1598387892 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1598387895} - component: {fileID: 1598387894} @@ -522,8 +614,9 @@ GameObject: --- !u!154 &1598387893 TerrainCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1598387892} m_Material: {fileID: 0} m_Enabled: 1 @@ -532,11 +625,12 @@ TerrainCollider: --- !u!218 &1598387894 Terrain: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1598387892} m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 6 m_TerrainData: {fileID: 15600000, guid: 94511fbc8bb3e4f94aa3a65d6f584b9d, type: 2} m_TreeDistance: 2000 m_TreeBillboardDistance: 50 @@ -547,24 +641,26 @@ Terrain: m_HeightmapPixelError: 5 m_SplatMapDistance: 1000 m_HeightmapMaximumLOD: 0 - m_CastShadows: 1 + m_ShadowCastingMode: 2 m_DrawHeightmap: 1 + m_DrawInstanced: 0 m_DrawTreesAndFoliage: 1 m_ReflectionProbeUsage: 1 - m_MaterialType: 0 - m_LegacySpecular: - serializedVersion: 2 - rgba: 4286545791 - m_LegacyShininess: 0.078125 - m_MaterialTemplate: {fileID: 0} + m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0} m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 m_ScaleInLightmap: 0.0512 m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 0 --- !u!4 &1598387895 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1598387892} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -576,8 +672,9 @@ Transform: --- !u!114 &1598387896 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1598387892} m_Enabled: 1 m_EditorHideFlags: 0 diff --git a/Assets/Examples/Scenes/6_modify_mesh.unity b/Assets/Examples/Scenes/6_modify_mesh.unity index 8b7a54d3..8235ef33 100644 --- a/Assets/Examples/Scenes/6_modify_mesh.unity +++ b/Assets/Examples/Scenes/6_modify_mesh.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -38,42 +39,67 @@ RenderSettings: m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 112000000, guid: b7f15963ee5cf4a27b6fd0628035d020, type: 2} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -93,13 +119,16 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &33953883 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 33953889} - component: {fileID: 33953888} @@ -116,21 +145,22 @@ GameObject: --- !u!114 &33953884 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 33953883} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!195 &33953886 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 33953883} m_Enabled: 1 m_AgentTypeID: 0 @@ -150,15 +180,20 @@ NavMeshAgent: --- !u!23 &33953887 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 33953883} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -168,28 +203,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &33953888 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 33953883} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &33953889 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 33953883} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -10.09, y: 0.24, z: 3.97} @@ -201,9 +241,10 @@ Transform: --- !u!1 &35163881 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 35163887} - component: {fileID: 35163886} @@ -220,21 +261,22 @@ GameObject: --- !u!114 &35163882 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 35163881} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!195 &35163884 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 35163881} m_Enabled: 1 m_AgentTypeID: 0 @@ -254,15 +296,20 @@ NavMeshAgent: --- !u!23 &35163885 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 35163881} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -272,28 +319,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &35163886 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 35163881} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &35163887 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 35163881} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 9.72, y: 0.24, z: -3.62} @@ -305,9 +357,10 @@ Transform: --- !u!1 &158642966 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 158642971} - component: {fileID: 158642970} @@ -324,22 +377,23 @@ GameObject: --- !u!64 &158642967 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 158642966} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!114 &158642968 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 158642966} m_Enabled: 1 m_EditorHideFlags: 0 @@ -349,15 +403,20 @@ MonoBehaviour: --- !u!23 &158642969 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 158642966} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -367,28 +426,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &158642970 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 158642966} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &158642971 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 158642966} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -5, y: 0, z: -10} @@ -400,9 +464,10 @@ Transform: --- !u!1 &162129343 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 162129344} - component: {fileID: 162129346} @@ -417,8 +482,9 @@ GameObject: --- !u!4 &162129344 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 162129343} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -431,12 +497,14 @@ Transform: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 162129343} m_Text: 'Use mouse to rotate view. WASD to move camera. - lmb or ''space'' raises ground. + lmb or ''space'' raises + ground. rmb or ''left shift+space'' lowers ground. @@ -457,15 +525,20 @@ TextMesh: --- !u!23 &162129346 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 162129343} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -475,22 +548,26 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!1 &254691816 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 254691822} - component: {fileID: 254691821} @@ -507,21 +584,22 @@ GameObject: --- !u!114 &254691817 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 254691816} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!195 &254691819 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 254691816} m_Enabled: 1 m_AgentTypeID: 0 @@ -541,15 +619,20 @@ NavMeshAgent: --- !u!23 &254691820 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 254691816} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -559,28 +642,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &254691821 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 254691816} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &254691822 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 254691816} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 7.7, y: 0.24, z: 7.92} @@ -592,9 +680,10 @@ Transform: --- !u!1 &372174613 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 372174618} - component: {fileID: 372174617} @@ -611,22 +700,23 @@ GameObject: --- !u!64 &372174614 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 372174613} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!114 &372174615 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 372174613} m_Enabled: 1 m_EditorHideFlags: 0 @@ -636,15 +726,20 @@ MonoBehaviour: --- !u!23 &372174616 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 372174613} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -654,28 +749,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &372174617 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 372174613} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &372174618 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 372174613} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -25, y: 0, z: 10} @@ -687,9 +787,10 @@ Transform: --- !u!1 &643512201 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 643512203} - component: {fileID: 643512202} @@ -703,16 +804,19 @@ GameObject: --- !u!108 &643512202 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 643512201} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 0.5514706, g: 0.45573467, b: 0.19463666, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -722,6 +826,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -729,16 +851,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &643512203 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 643512201} m_LocalRotation: {x: 0.8445521, y: 0.116420306, z: -0.48104066, w: 0.20439675} m_LocalPosition: {x: 0, y: 10, z: 0} @@ -750,9 +879,10 @@ Transform: --- !u!1 &671862446 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 671862452} - component: {fileID: 671862451} @@ -769,21 +899,22 @@ GameObject: --- !u!114 &671862447 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671862446} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!195 &671862449 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671862446} m_Enabled: 1 m_AgentTypeID: 0 @@ -803,15 +934,20 @@ NavMeshAgent: --- !u!23 &671862450 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671862446} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -821,28 +957,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &671862451 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671862446} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &671862452 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671862446} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -2.54, y: 0.24, z: 10.95} @@ -854,9 +995,10 @@ Transform: --- !u!1 &829783106 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 829783108} - component: {fileID: 829783109} @@ -870,8 +1012,9 @@ GameObject: --- !u!4 &829783108 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 829783106} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -5.7, y: 0, z: 0} @@ -883,8 +1026,9 @@ Transform: --- !u!114 &829783109 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 829783106} m_Enabled: 1 m_EditorHideFlags: 0 @@ -896,9 +1040,10 @@ MonoBehaviour: --- !u!1 &910780640 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 910780645} - component: {fileID: 910780644} @@ -915,22 +1060,23 @@ GameObject: --- !u!64 &910780641 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910780640} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!114 &910780642 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910780640} m_Enabled: 1 m_EditorHideFlags: 0 @@ -940,15 +1086,20 @@ MonoBehaviour: --- !u!23 &910780643 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910780640} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -958,28 +1109,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &910780644 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910780640} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &910780645 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910780640} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 15, y: 0, z: 10} @@ -991,9 +1147,10 @@ Transform: --- !u!1 &1143978481 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1143978487} - component: {fileID: 1143978486} @@ -1010,21 +1167,22 @@ GameObject: --- !u!114 &1143978482 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1143978481} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!195 &1143978484 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1143978481} m_Enabled: 1 m_AgentTypeID: 0 @@ -1044,15 +1202,20 @@ NavMeshAgent: --- !u!23 &1143978485 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1143978481} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -1062,28 +1225,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1143978486 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1143978481} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1143978487 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1143978481} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -8.69, y: 0.24, z: -9.42} @@ -1095,9 +1263,10 @@ Transform: --- !u!1 &1341862483 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1341862485} - component: {fileID: 1341862484} @@ -1111,8 +1280,9 @@ GameObject: --- !u!114 &1341862484 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1341862483} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1132,8 +1302,9 @@ MonoBehaviour: --- !u!4 &1341862485 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1341862483} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.45043564, y: 0.2367382, z: 0.295578} @@ -1145,9 +1316,10 @@ Transform: --- !u!1 &1522610508 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1522610509} m_Layer: 0 @@ -1160,8 +1332,9 @@ GameObject: --- !u!4 &1522610509 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1522610508} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1180,9 +1353,10 @@ Transform: --- !u!1 &1554633489 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1554633494} - component: {fileID: 1554633493} @@ -1199,22 +1373,23 @@ GameObject: --- !u!64 &1554633490 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554633489} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!114 &1554633491 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554633489} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1224,15 +1399,20 @@ MonoBehaviour: --- !u!23 &1554633492 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554633489} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -1242,28 +1422,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1554633493 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554633489} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1554633494 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554633489} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -25, y: -0, z: -10} @@ -1275,13 +1460,13 @@ Transform: --- !u!1 &1557957664 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1557957669} - component: {fileID: 1557957668} - - component: {fileID: 1557957667} - component: {fileID: 1557957666} - component: {fileID: 1557957665} - component: {fileID: 1557957670} @@ -1295,34 +1480,36 @@ GameObject: --- !u!81 &1557957665 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1557957664} m_Enabled: 1 --- !u!124 &1557957666 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1557957664} - m_Enabled: 1 ---- !u!92 &1557957667 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1557957664} m_Enabled: 1 --- !u!20 &1557957668 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1557957664} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -1343,15 +1530,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1557957669 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1557957664} m_LocalRotation: {x: 0.042841204, y: 0.9523507, z: -0.25681403, w: 0.15886937} m_LocalPosition: {x: -14.847079, y: 25.968092, z: 35.253548} @@ -1365,8 +1555,9 @@ Transform: --- !u!114 &1557957670 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1557957664} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1385,9 +1576,10 @@ MonoBehaviour: --- !u!1 &1634654713 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1634654719} - component: {fileID: 1634654718} @@ -1404,8 +1596,9 @@ GameObject: --- !u!195 &1634654715 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634654713} m_Enabled: 1 m_AgentTypeID: 0 @@ -1425,15 +1618,20 @@ NavMeshAgent: --- !u!23 &1634654716 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634654713} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -1443,41 +1641,46 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!114 &1634654717 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634654713} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: dd76b8ee2dbcf4be6998e917c65cd6ed, type: 3} m_Name: m_EditorClassIdentifier: - m_range: 25 - m_relative: 0 + m_Range: 25 --- !u!33 &1634654718 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634654713} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1634654719 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634654713} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.12, y: 0.24, z: 0.3} @@ -1489,9 +1692,10 @@ Transform: --- !u!1 &1664473225 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1664473227} - component: {fileID: 1664473226} @@ -1505,16 +1709,19 @@ GameObject: --- !u!108 &1664473226 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1664473225} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 0.8392157, g: 0.9866937, b: 1, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -1524,6 +1731,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -1531,16 +1756,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &1664473227 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1664473225} m_LocalRotation: {x: -0.39746866, y: 0.12510414, z: -0.054799743, w: -0.9073944} m_LocalPosition: {x: 0, y: 10, z: 0} @@ -1552,9 +1784,10 @@ Transform: --- !u!1 &1688803692 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1688803693} - component: {fileID: 1688803696} @@ -1570,8 +1803,9 @@ GameObject: --- !u!4 &1688803693 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1688803692} m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} m_LocalPosition: {x: 0, y: -19, z: 0} @@ -1583,8 +1817,9 @@ Transform: --- !u!114 &1688803694 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1688803692} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1594,15 +1829,20 @@ MonoBehaviour: --- !u!23 &1688803695 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1688803692} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 0 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 1e1c6a0a64beb49ec96272beefa468a5, type: 2} m_StaticBatchInfo: @@ -1612,29 +1852,34 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1688803696 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1688803692} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1764570984 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1764570985} - component: {fileID: 1764570989} @@ -1651,8 +1896,9 @@ GameObject: --- !u!4 &1764570985 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1764570984} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 15, y: 0, z: -10} @@ -1664,8 +1910,9 @@ Transform: --- !u!114 &1764570986 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1764570984} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1675,15 +1922,20 @@ MonoBehaviour: --- !u!23 &1764570987 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1764570984} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -1693,43 +1945,48 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1764570989 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1764570984} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!64 &1764570991 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1764570984} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &2072502900 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 2072502905} - component: {fileID: 2072502904} @@ -1746,22 +2003,23 @@ GameObject: --- !u!64 &2072502901 MeshCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2072502900} m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Convex: 0 - m_InflateMesh: 0 - m_SkinWidth: 0.01 + m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!114 &2072502902 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2072502900} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1771,15 +2029,20 @@ MonoBehaviour: --- !u!23 &2072502903 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2072502900} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: 0aa37164acf594e03876b4e0b590280e, type: 2} m_StaticBatchInfo: @@ -1789,28 +2052,33 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &2072502904 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2072502900} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &2072502905 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2072502900} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -5, y: 0, z: 10} @@ -1822,9 +2090,10 @@ Transform: --- !u!1 &2143570744 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 2143570746} - component: {fileID: 2143570745} @@ -1838,15 +2107,20 @@ GameObject: --- !u!212 &2143570745 SpriteRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2143570744} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: @@ -1856,25 +2130,36 @@ SpriteRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 0 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 20 m_Sprite: {fileID: 21300000, guid: 28d2c2677149d45e290e8fa042b1b80f, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!4 &2143570746 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2143570744} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 2} diff --git a/Assets/Examples/Scenes/7_dungeon.unity b/Assets/Examples/Scenes/7_dungeon.unity index e740bca9..d77442ff 100644 --- a/Assets/Examples/Scenes/7_dungeon.unity +++ b/Assets/Examples/Scenes/7_dungeon.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -38,41 +39,66 @@ RenderSettings: m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,13 +118,16 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &172077183 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 172077185} - component: {fileID: 172077184} @@ -112,16 +141,19 @@ GameObject: --- !u!108 &172077184 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 172077183} m_Enabled: 1 - serializedVersion: 7 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -131,6 +163,24 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -138,16 +188,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &172077185 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 172077183} m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} m_LocalPosition: {x: 0, y: 3, z: 0} @@ -159,9 +216,10 @@ Transform: --- !u!1 &643401653 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 643401655} - component: {fileID: 643401654} @@ -175,8 +233,9 @@ GameObject: --- !u!114 &643401654 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 643401653} m_Enabled: 1 m_EditorHideFlags: 0 @@ -187,27 +246,28 @@ MonoBehaviour: m_Height: 6 m_Spacing: 4 m_Tiles: - - {fileID: 188650, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - - {fileID: 152096, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - - {fileID: 111830, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - - {fileID: 182416, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - - {fileID: 183732, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - - {fileID: 121048, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - - {fileID: 139950, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - - {fileID: 113850, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - - {fileID: 154532, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - - {fileID: 116954, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - - {fileID: 108734, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - - {fileID: 127282, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - - {fileID: 158542, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - - {fileID: 134590, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - - {fileID: 162052, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - - {fileID: 153206, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} + - {fileID: 188650, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + - {fileID: 152096, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + - {fileID: 111830, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} + - {fileID: 182416, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + - {fileID: 183732, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + - {fileID: 121048, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + - {fileID: 139950, guid: cd19d9115d9a14e4193a39766437a679, type: 3} + - {fileID: 113850, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + - {fileID: 154532, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} + - {fileID: 116954, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + - {fileID: 108734, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} + - {fileID: 127282, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + - {fileID: 158542, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + - {fileID: 134590, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + - {fileID: 162052, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + - {fileID: 153206, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} --- !u!4 &643401655 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 643401653} m_LocalRotation: {x: 0, y: -0.0724137, z: 0, w: 0.9973747} m_LocalPosition: {x: -0.27, y: 0, z: -2.61} @@ -219,9 +279,10 @@ Transform: --- !u!1 &677226639 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 677226640} - component: {fileID: 677226642} @@ -236,8 +297,9 @@ GameObject: --- !u!4 &677226640 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 677226639} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -250,8 +312,9 @@ Transform: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 677226639} m_Text: 'Press play to generate maze. @@ -272,15 +335,20 @@ TextMesh: --- !u!23 &677226642 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 677226639} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -290,26 +358,29 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!1 &899821198 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 899821203} - component: {fileID: 899821202} - - component: {fileID: 899821201} - component: {fileID: 899821200} - component: {fileID: 899821199} m_Layer: 0 @@ -322,34 +393,36 @@ GameObject: --- !u!81 &899821199 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 899821198} m_Enabled: 1 --- !u!124 &899821200 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 899821198} - m_Enabled: 1 ---- !u!92 &899821201 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 899821198} m_Enabled: 1 --- !u!20 &899821202 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 899821198} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -370,15 +443,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &899821203 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 899821198} m_LocalRotation: {x: 0.44250405, y: -0.005380552, z: 0.0026550672, w: 0.89674646} m_LocalPosition: {x: 10.194305, y: 20.730028, z: -6.978447} @@ -391,9 +467,10 @@ Transform: --- !u!1 &1670767831 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1670767836} - component: {fileID: 1670767835} @@ -412,8 +489,9 @@ GameObject: --- !u!114 &1670767832 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Enabled: 1 m_EditorHideFlags: 0 @@ -423,15 +501,20 @@ MonoBehaviour: --- !u!23 &1670767833 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 2100000, guid: c07befab8ca1540368e662cfe2fddf6b, type: 2} m_StaticBatchInfo: @@ -441,21 +524,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 1 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!136 &1670767834 CapsuleCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -467,15 +554,17 @@ CapsuleCollider: --- !u!33 &1670767835 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1670767836 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: 0} @@ -487,8 +576,9 @@ Transform: --- !u!195 &1670767837 NavMeshAgent: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Enabled: 1 m_AgentTypeID: 0 @@ -508,8 +598,9 @@ NavMeshAgent: --- !u!114 &1670767838 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1670767831} m_Enabled: 1 m_EditorHideFlags: 0 diff --git a/Assets/Examples/Scenes/7b_dungeon_tile_prefabs.unity b/Assets/Examples/Scenes/7b_dungeon_tile_prefabs.unity index ce07d4f4..ff4f2208 100644 --- a/Assets/Examples/Scenes/7b_dungeon_tile_prefabs.unity +++ b/Assets/Examples/Scenes/7b_dungeon_tile_prefabs.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,42 +38,67 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 4 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 0 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_DirectLightInLightProbes: 1 m_FinalGather: 0 m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &5 NavMeshSettings: serializedVersion: 2 @@ -92,6713 +118,723 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &27929185 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 182128, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 27929186} - - component: {fileID: 27929189} - - component: {fileID: 27929188} - - component: {fileID: 27929187} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &27929186 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 448614, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 27929185} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1406059171} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &27929187 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2343822, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 27929185} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &27929188 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6585554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 27929185} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &27929189 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3308162, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 27929185} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &37380752 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 102634, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 37380753} - - component: {fileID: 37380756} - - component: {fileID: 37380755} - - component: {fileID: 37380754} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &37380753 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 423878, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 37380752} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1010536976} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &37380754 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2306490, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 37380752} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &37380755 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6548512, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 37380752} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &37380756 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3354472, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 37380752} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &56011192 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 182416, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 56011194} - - component: {fileID: 56011193} - m_Layer: 0 - m_Name: Tile3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &56011193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010490614464, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 56011192} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238817638144178146, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_FollowTransform: 0 ---- !u!4 &56011194 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 56011192} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 30, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 410140445} - - {fileID: 960085731} - - {fileID: 261414338} - - {fileID: 1007830262} - - {fileID: 2068530230} - m_Father: {fileID: 0} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &78923438 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 104102, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 78923439} - - component: {fileID: 78923442} - - component: {fileID: 78923441} - - component: {fileID: 78923440} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &78923439 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 450928, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 78923438} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1010536976} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &78923440 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2398154, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 78923438} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &78923441 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6588566, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 78923438} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &78923442 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3307946, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 78923438} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &102648398 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 162052, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 102648400} - - component: {fileID: 102648399} - m_Layer: 0 - m_Name: Tile14 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &102648399 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013912606354, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 102648398} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238737442254228608, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_FollowTransform: 0 ---- !u!4 &102648400 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 102648398} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 140, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1919448289} - - {fileID: 784101124} - - {fileID: 1510212152} - - {fileID: 1599400978} - - {fileID: 817727139} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &122265191 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 176630, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 122265192} - - component: {fileID: 122265195} - - component: {fileID: 122265194} - - component: {fileID: 122265193} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &122265192 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 422982, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 122265191} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 933610693} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &122265193 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2374690, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 122265191} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &122265194 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6505370, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 122265191} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &122265195 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3307784, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 122265191} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &146631642 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 139950, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 146631644} - - component: {fileID: 146631643} - m_Layer: 0 - m_Name: Tile6 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &146631643 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013633334184, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 146631642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238499112439393678, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_FollowTransform: 0 ---- !u!4 &146631644 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 146631642} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 60, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1709521697} - - {fileID: 502087102} - - {fileID: 2129492482} - - {fileID: 839378686} - - {fileID: 781901142} - m_Father: {fileID: 0} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &159678913 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 198978, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 159678914} - - component: {fileID: 159678915} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &159678914 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 497380, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 159678913} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1750600049} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &159678915 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012371500414, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 159678913} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &166138696 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 164016, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 166138697} - - component: {fileID: 166138700} - - component: {fileID: 166138699} - - component: {fileID: 166138698} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &166138697 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 436412, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 166138696} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 881006039} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &166138698 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2395990, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 166138696} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &166138699 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6563762, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 166138696} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &166138700 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3387882, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 166138696} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &189687338 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 189687340} - - component: {fileID: 189687339} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &189687339 -Light: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 189687338} - m_Enabled: 1 - serializedVersion: 7 - m_Type: 1 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_Lightmapping: 4 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &189687340 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 189687338} - m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 17 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &208177980 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalPosition.x - value: 110 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - propertyPath: m_RootOrder - value: 9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_RootGameObject: {fileID: 912909579} - m_IsPrefabParent: 0 ---- !u!1 &211787205 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 159254, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 211787206} - - component: {fileID: 211787209} - - component: {fileID: 211787208} - - component: {fileID: 211787207} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &211787206 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 465582, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 211787205} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1382264935} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &211787207 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2309270, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 211787205} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &211787208 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6516534, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 211787205} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &211787209 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3394696, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 211787205} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &261414337 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 179308, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 261414338} - - component: {fileID: 261414341} - - component: {fileID: 261414340} - - component: {fileID: 261414339} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &261414338 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 481946, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 261414337} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 56011194} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &261414339 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2313782, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 261414337} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &261414340 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6519910, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 261414337} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &261414341 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3351148, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 261414337} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &293847778 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 188012, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 293847779} - - component: {fileID: 293847782} - - component: {fileID: 293847781} - - component: {fileID: 293847780} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &293847779 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 462354, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 293847778} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 881006039} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &293847780 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2370558, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 293847778} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &293847781 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6532668, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 293847778} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &293847782 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3360048, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 293847778} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &303573767 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 140784, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 303573768} - - component: {fileID: 303573771} - - component: {fileID: 303573770} - - component: {fileID: 303573769} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &303573768 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 473438, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 303573767} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1750600049} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &303573769 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2395906, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 303573767} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &303573770 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6586664, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 303573767} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &303573771 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3362282, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 303573767} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &347351337 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 162252, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 347351338} - - component: {fileID: 347351341} - - component: {fileID: 347351340} - - component: {fileID: 347351339} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &347351338 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 449518, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 347351337} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1518209866} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &347351339 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2380480, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 347351337} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &347351340 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6506318, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 347351337} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &347351341 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3363186, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 347351337} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &410140444 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 174154, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 410140445} - - component: {fileID: 410140448} - - component: {fileID: 410140447} - - component: {fileID: 410140446} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &410140445 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 406006, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 410140444} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 56011194} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &410140446 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2310922, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 410140444} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &410140447 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6573024, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 410140444} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &410140448 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3366092, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 410140444} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &417852502 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalPosition.x - value: 80 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - propertyPath: m_RootOrder - value: 8 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_RootGameObject: {fileID: 1010536974} - m_IsPrefabParent: 0 ---- !u!1 &440796701 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 121048, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 440796703} - - component: {fileID: 440796702} - m_Layer: 0 - m_Name: Tile5 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &440796702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012634645946, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 440796701} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238703659830128490, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_FollowTransform: 0 ---- !u!4 &440796703 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 440796701} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 50, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1785953685} - - {fileID: 897236962} - - {fileID: 530986215} - - {fileID: 1326446149} - - {fileID: 1564496585} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &456890156 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 130636, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 456890157} - - component: {fileID: 456890160} - - component: {fileID: 456890159} - - component: {fileID: 456890158} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &456890157 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 413244, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 456890156} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 912909581} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &456890158 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2341450, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 456890156} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &456890159 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6548580, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 456890156} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &456890160 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3331160, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 456890156} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &495138592 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 125652, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 - m_Component: - - component: {fileID: 495138593} - - component: {fileID: 495138594} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &495138593 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 447340, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 495138592} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1503488962} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &495138594 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011410039596, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 495138592} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &502087101 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 127568, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 502087102} - - component: {fileID: 502087105} - - component: {fileID: 502087104} - - component: {fileID: 502087103} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &502087102 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 493872, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 502087101} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 146631644} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &502087103 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2377800, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 502087101} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &502087104 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6589762, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 502087101} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &502087105 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3356474, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 502087101} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &517198498 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 194954, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 517198499} - - component: {fileID: 517198502} - - component: {fileID: 517198501} - - component: {fileID: 517198500} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &517198499 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 497556, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 517198498} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 933610693} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &517198500 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2355170, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 517198498} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &517198501 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6524256, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 517198498} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &517198502 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3353878, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 517198498} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &523335795 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 107828, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 523335796} - - component: {fileID: 523335797} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &523335796 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 437794, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 523335795} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1069496846} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &523335797 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013707939698, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 523335795} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &523914450 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 129130, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 523914451} - - component: {fileID: 523914452} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &523914451 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 493782, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 523914450} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 912909581} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &523914452 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012214706434, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 523914450} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &530986214 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 166678, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 530986215} - - component: {fileID: 530986218} - - component: {fileID: 530986217} - - component: {fileID: 530986216} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &530986215 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 495076, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 530986214} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 440796703} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &530986216 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2322854, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 530986214} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &530986217 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6548368, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 530986214} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &530986218 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3311708, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 530986214} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &546842854 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 165104, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 546842855} - - component: {fileID: 546842858} - - component: {fileID: 546842857} - - component: {fileID: 546842856} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &546842855 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 498038, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 546842854} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1984199761} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &546842856 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2398554, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 546842854} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &546842857 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6541700, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 546842854} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &546842858 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3312886, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 546842854} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &598489875 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 117760, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 598489876} - - component: {fileID: 598489879} - - component: {fileID: 598489878} - - component: {fileID: 598489877} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &598489876 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 420910, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 598489875} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 933610693} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &598489877 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2398160, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 598489875} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &598489878 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6568266, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 598489875} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &598489879 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3304496, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 598489875} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &660343288 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalPosition.x - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - propertyPath: m_RootOrder - value: 6 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_RootGameObject: {fileID: 1750600047} - m_IsPrefabParent: 0 ---- !u!1001 &664672538 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalPosition.x - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - propertyPath: m_RootOrder - value: 15 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_RootGameObject: {fileID: 1984199759} - m_IsPrefabParent: 0 ---- !u!1001 &695709082 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalPosition.x - value: 120 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - propertyPath: m_RootOrder - value: 12 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_RootGameObject: {fileID: 1382264933} - m_IsPrefabParent: 0 ---- !u!1 &753341574 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 134862, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 753341575} - - component: {fileID: 753341576} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &753341575 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 430854, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 753341574} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1984199761} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &753341576 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010214624828, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 753341574} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &781901141 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 105994, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 781901142} - - component: {fileID: 781901143} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &781901142 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 419040, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 781901141} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 146631644} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &781901143 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011381061570, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 781901141} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &784101123 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 115056, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 784101124} - - component: {fileID: 784101127} - - component: {fileID: 784101126} - - component: {fileID: 784101125} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &784101124 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 494554, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 784101123} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 102648400} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &784101125 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2322222, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 784101123} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &784101126 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6520114, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 784101123} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &784101127 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3372694, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 784101123} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &787767079 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 124530, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 787767080} - - component: {fileID: 787767083} - - component: {fileID: 787767082} - - component: {fileID: 787767081} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &787767080 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 408030, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 787767079} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1069496846} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &787767081 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2301910, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 787767079} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &787767082 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6584176, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 787767079} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &787767083 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3354840, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 787767079} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &817727138 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 145962, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 817727139} - - component: {fileID: 817727140} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &817727139 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 404440, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 817727138} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 102648400} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &817727140 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012116104676, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 817727138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &832748649 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 129790, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 832748650} - - component: {fileID: 832748651} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &832748650 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 445994, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 832748649} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 933610693} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &832748651 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011459392344, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 832748649} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &839378685 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 169166, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 839378686} - - component: {fileID: 839378687} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &839378686 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 433436, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 839378685} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 146631644} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &839378687 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011723076330, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 839378685} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &861323372 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 150042, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 861323373} - - component: {fileID: 861323376} - - component: {fileID: 861323375} - - component: {fileID: 861323374} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &861323373 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 427462, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 861323372} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1518209866} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &861323374 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2315718, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 861323372} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &861323375 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6586122, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 861323372} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &861323376 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3364066, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 861323372} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &877615565 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 183348, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 877615566} - - component: {fileID: 877615569} - - component: {fileID: 877615568} - - component: {fileID: 877615567} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &877615566 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 450104, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 877615565} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1984199761} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &877615567 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2390718, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 877615565} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &877615568 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6552230, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 877615565} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &877615569 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3376762, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 877615565} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &881006037 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 116954, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 881006039} - - component: {fileID: 881006038} - m_Layer: 0 - m_Name: Tile9 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &881006038 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013633848396, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 881006037} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238926158337688270, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_FollowTransform: 0 ---- !u!4 &881006039 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 881006037} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 90, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 166138697} - - {fileID: 293847779} - - {fileID: 1031947579} - - {fileID: 2142539133} - - {fileID: 885364518} - m_Father: {fileID: 0} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &885364517 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 129350, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 885364518} - - component: {fileID: 885364519} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &885364518 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 446070, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 885364517} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 881006039} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &885364519 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012947219628, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 885364517} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1001 &888865117 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalPosition.x - value: 140 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_RootGameObject: {fileID: 102648398} - m_IsPrefabParent: 0 ---- !u!1 &897236961 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 168890, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 897236962} - - component: {fileID: 897236965} - - component: {fileID: 897236964} - - component: {fileID: 897236963} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &897236962 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 408592, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 897236961} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 440796703} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &897236963 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2391180, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 897236961} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &897236964 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6561474, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 897236961} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &897236965 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3392240, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 897236961} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &912909579 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 127282, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 912909581} - - component: {fileID: 912909580} - m_Layer: 0 - m_Name: Tile11 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &912909580 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013761466070, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 912909579} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238506205261310830, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_FollowTransform: 0 ---- !u!4 &912909581 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 912909579} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 110, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1453986886} - - {fileID: 456890157} - - {fileID: 1644390363} - - {fileID: 1795174266} - - {fileID: 523914451} - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &913681317 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalPosition.x - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_RootGameObject: {fileID: 440796701} - m_IsPrefabParent: 0 ---- !u!1 &933610691 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 108734, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 933610693} - - component: {fileID: 933610692} - m_Layer: 0 - m_Name: Tile10 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &933610692 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000014033652892, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 933610691} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238232249414703486, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_FollowTransform: 0 ---- !u!4 &933610693 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 933610691} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 100, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 598489876} - - {fileID: 122265192} - - {fileID: 517198499} - - {fileID: 2146245282} - - {fileID: 832748650} - m_Father: {fileID: 0} - m_RootOrder: 14 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &960085730 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 115920, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 960085731} - - component: {fileID: 960085734} - - component: {fileID: 960085733} - - component: {fileID: 960085732} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &960085731 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 491914, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 960085730} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 56011194} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &960085732 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2307298, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 960085730} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &960085733 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6534288, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 960085730} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &960085734 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3323694, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 960085730} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1007830261 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 149838, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 1007830262} - - component: {fileID: 1007830263} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1007830262 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 446846, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 1007830261} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 56011194} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1007830263 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013717137746, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 1007830261} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1010536974 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 154532, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 1010536976} - - component: {fileID: 1010536975} - m_Layer: 0 - m_Name: Tile8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1010536975 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000014040209196, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1010536974} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238098503315482684, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1010536976 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1010536974} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 80, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1505930385} - - {fileID: 1694437333} - - {fileID: 78923439} - - {fileID: 37380753} - - {fileID: 1165959141} - m_Father: {fileID: 0} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1031947578 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 138700, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 1031947579} - - component: {fileID: 1031947582} - - component: {fileID: 1031947581} - - component: {fileID: 1031947580} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1031947579 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 492048, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 1031947578} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 881006039} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1031947580 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2310170, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 1031947578} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1031947581 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6511670, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 1031947578} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1031947582 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3332106, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 1031947578} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1069496844 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 113850, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 1069496846} - - component: {fileID: 1069496845} - m_Layer: 0 - m_Name: Tile7 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1069496845 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012350257974, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1069496844} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238960200379394454, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1069496846 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1069496844} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 70, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 787767080} - - {fileID: 1494765252} - - {fileID: 523335796} - - {fileID: 1277305572} - - {fileID: 1586835911} - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1123475952 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_RootGameObject: {fileID: 1406059169} - m_IsPrefabParent: 0 ---- !u!1 &1135668558 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 199530, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 1135668559} - - component: {fileID: 1135668562} - - component: {fileID: 1135668561} - - component: {fileID: 1135668560} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1135668559 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 491958, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1135668558} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1382264935} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1135668560 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2369634, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1135668558} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1135668561 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6578860, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1135668558} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1135668562 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3338532, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1135668558} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1165959140 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 132578, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 1165959141} - - component: {fileID: 1165959142} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1165959141 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 452720, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1165959140} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1010536976} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1165959142 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010683566244, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1165959140} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1173653482 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 117282, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 1173653483} - - component: {fileID: 1173653484} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1173653483 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 475026, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1173653482} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1750600049} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1173653484 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010465539956, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1173653482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1001 &1208452010 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalPosition.x - value: 130 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_RootGameObject: {fileID: 1939621152} - m_IsPrefabParent: 0 ---- !u!1001 &1267420139 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalPosition.x - value: 100 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - propertyPath: m_RootOrder - value: 14 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_RootGameObject: {fileID: 933610691} - m_IsPrefabParent: 0 ---- !u!1 &1277305571 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 195652, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 1277305572} - - component: {fileID: 1277305573} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1277305572 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 453290, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1277305571} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1069496846} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1277305573 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010941754334, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1277305571} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1288426182 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 196976, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 1288426183} - - component: {fileID: 1288426186} - - component: {fileID: 1288426185} - - component: {fileID: 1288426184} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1288426183 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 496882, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1288426182} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1406059171} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1288426184 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2371358, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1288426182} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1288426185 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6551098, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1288426182} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1288426186 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3340058, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1288426182} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1293806452 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 157124, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 1293806453} - - component: {fileID: 1293806456} - - component: {fileID: 1293806455} - - component: {fileID: 1293806454} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1293806453 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 467390, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1293806452} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1382264935} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1293806454 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2359266, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1293806452} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1293806455 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6530112, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1293806452} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1293806456 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3332182, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1293806452} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1326446148 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 194376, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 1326446149} - - component: {fileID: 1326446150} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1326446149 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 440242, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1326446148} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 440796703} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1326446150 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012344806978, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1326446148} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1339296350 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 163006, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 1339296351} - - component: {fileID: 1339296354} - - component: {fileID: 1339296353} - - component: {fileID: 1339296352} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1339296351 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 478762, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1339296350} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1518209866} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1339296352 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2310452, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1339296350} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1339296353 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6517166, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1339296350} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1339296354 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3358584, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1339296350} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1340534895 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 167428, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 - m_Component: - - component: {fileID: 1340534896} - - component: {fileID: 1340534899} - - component: {fileID: 1340534898} - - component: {fileID: 1340534897} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1340534896 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 480808, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1340534895} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1503488962} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1340534897 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2367746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1340534895} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1340534898 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6533234, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1340534895} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1340534899 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3393312, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1340534895} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1382264933 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 158542, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 1382264935} - - component: {fileID: 1382264934} - m_Layer: 0 - m_Name: Tile12 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1382264934 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012137059112, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1382264933} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238758083010604980, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1382264935 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1382264933} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 120, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1293806453} - - {fileID: 211787206} - - {fileID: 1135668559} - - {fileID: 1920785691} - - {fileID: 2103940231} - m_Father: {fileID: 0} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1392756195 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 160216, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 1392756196} - - component: {fileID: 1392756199} - - component: {fileID: 1392756198} - - component: {fileID: 1392756197} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1392756196 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 473290, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1392756195} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1406059171} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1392756197 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2360516, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1392756195} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1392756198 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6515570, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1392756195} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1392756199 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3373832, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1392756195} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1406059169 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 188650, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 1406059171} - - component: {fileID: 1406059170} - m_Layer: 0 - m_Name: Tile0 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1406059170 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011231313860, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1406059169} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238891995730992468, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1406059171 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1406059169} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 27929186} - - {fileID: 1288426183} - - {fileID: 1773526684} - - {fileID: 1697630995} - - {fileID: 1392756196} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1420494771 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 123108, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 1420494772} - - component: {fileID: 1420494775} - - component: {fileID: 1420494774} - - component: {fileID: 1420494773} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1420494772 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 491780, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1420494771} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1939621154} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1420494773 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2321140, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1420494771} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1420494774 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6557270, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1420494771} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1420494775 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3334318, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1420494771} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1453986885 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 170286, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 1453986886} - - component: {fileID: 1453986889} - - component: {fileID: 1453986888} - - component: {fileID: 1453986887} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1453986886 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 472242, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1453986885} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 912909581} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1453986887 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2364724, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1453986885} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1453986888 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6509560, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1453986885} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1453986889 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3312348, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1453986885} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &1474641186 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalPosition.x - value: 60 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - propertyPath: m_RootOrder - value: 7 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_RootGameObject: {fileID: 146631642} - m_IsPrefabParent: 0 ---- !u!1 &1494765251 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 143392, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 1494765252} - - component: {fileID: 1494765255} - - component: {fileID: 1494765254} - - component: {fileID: 1494765253} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1494765252 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 442868, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1494765251} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1069496846} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1494765253 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2336878, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1494765251} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1494765254 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6531774, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1494765251} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1494765255 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3368592, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1494765251} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1503488960 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 111830, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 - m_Component: - - component: {fileID: 1503488962} - - component: {fileID: 1503488961} - m_Layer: 0 - m_Name: Tile2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1503488961 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013793850774, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1503488960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238007120443016764, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1503488962 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1503488960} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 20, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2032751502} - - {fileID: 2098680121} - - {fileID: 1340534896} - - {fileID: 1837297889} - - {fileID: 495138593} - m_Father: {fileID: 0} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1505930384 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 103546, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 1505930385} - - component: {fileID: 1505930388} - - component: {fileID: 1505930387} - - component: {fileID: 1505930386} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1505930385 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 480282, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1505930384} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1010536976} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1505930386 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2370132, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1505930384} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1505930387 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6508130, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1505930384} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1505930388 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3331408, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1505930384} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1510212151 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 199564, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 1510212152} - - component: {fileID: 1510212153} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1510212152 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 476772, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1510212151} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 102648400} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1510212153 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000014247103362, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1510212151} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1518209864 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 183732, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 1518209866} - - component: {fileID: 1518209865} - m_Layer: 0 - m_Name: Tile4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1518209865 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012744094164, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1518209864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238571762410112910, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1518209866 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1518209864} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 40, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 861323373} - - {fileID: 1339296351} - - {fileID: 1700424183} - - {fileID: 347351338} - - {fileID: 1959855590} - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1564496584 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 153820, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 1564496585} - - component: {fileID: 1564496586} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1564496585 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 483212, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1564496584} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 440796703} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1564496586 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013975638402, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1564496584} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1586835910 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 197818, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - serializedVersion: 5 - m_Component: - - component: {fileID: 1586835911} - - component: {fileID: 1586835912} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1586835911 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 401848, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1586835910} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1069496846} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1586835912 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010784858376, guid: 7af464697e0ab41a5be05dee6f5c2b73, - type: 2} - m_PrefabInternal: {fileID: 1864714052} - m_GameObject: {fileID: 1586835910} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1599400977 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 126832, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 1599400978} - - component: {fileID: 1599400979} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1599400978 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 409792, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1599400977} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 102648400} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1599400979 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013424175420, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1599400977} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1631385505 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 163118, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 1631385506} - - component: {fileID: 1631385509} - - component: {fileID: 1631385508} - - component: {fileID: 1631385507} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1631385506 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 460940, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1631385505} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1984199761} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1631385507 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2337666, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1631385505} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1631385508 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6598804, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1631385505} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1631385509 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3397184, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1631385505} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1638589967 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 148848, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 1638589968} - - component: {fileID: 1638589971} - - component: {fileID: 1638589970} - - component: {fileID: 1638589969} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1638589968 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 404704, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1638589967} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1939621154} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1638589969 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2373352, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1638589967} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1638589970 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6539562, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1638589967} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1638589971 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3389570, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1638589967} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1644390362 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 193386, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 1644390363} - - component: {fileID: 1644390364} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1644390363 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 449500, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1644390362} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 912909581} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1644390364 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013594907432, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1644390362} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1694437332 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 197684, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - serializedVersion: 5 - m_Component: - - component: {fileID: 1694437333} - - component: {fileID: 1694437336} - - component: {fileID: 1694437335} - - component: {fileID: 1694437334} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1694437333 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 486602, guid: 29ceda01ee5384847a4e46a74595d08c, type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1694437332} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1010536976} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1694437334 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2378256, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1694437332} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1694437335 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6543486, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1694437332} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1694437336 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3328564, guid: 29ceda01ee5384847a4e46a74595d08c, - type: 2} - m_PrefabInternal: {fileID: 417852502} - m_GameObject: {fileID: 1694437332} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1697630994 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 161500, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 1697630995} - - component: {fileID: 1697630998} - - component: {fileID: 1697630997} - - component: {fileID: 1697630996} - m_Layer: 0 - m_Name: wall4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1697630995 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 449262, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1697630994} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1406059171} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1697630996 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2342946, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1697630994} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1697630997 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6549542, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1697630994} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1697630998 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3363878, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1697630994} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1700424182 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 160206, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 1700424183} - - component: {fileID: 1700424186} - - component: {fileID: 1700424185} - - component: {fileID: 1700424184} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1700424183 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 430566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1700424182} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1518209866} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1700424184 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2345008, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1700424182} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1700424185 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6518950, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1700424182} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1700424186 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3327348, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1700424182} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1709521696 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 136034, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 1709521697} - - component: {fileID: 1709521700} - - component: {fileID: 1709521699} - - component: {fileID: 1709521698} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1709521697 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 472382, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 1709521696} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 146631644} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1709521698 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2351224, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 1709521696} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1709521699 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6581254, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 1709521696} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1709521700 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3367300, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 1709521696} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1744456128 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 198982, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 1744456129} - - component: {fileID: 1744456130} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1744456129 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 434328, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1744456128} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1939621154} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1744456130 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011637418280, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1744456128} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1750600047 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 153206, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 1750600049} - - component: {fileID: 1750600048} - m_Layer: 0 - m_Name: Tile15 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1750600048 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012681520700, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1750600047} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238361702938023640, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1750600049 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1750600047} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 150, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 303573768} - - {fileID: 1842343243} - - {fileID: 1173653483} - - {fileID: 159678914} - - {fileID: 2112903960} - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1773526683 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 116758, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - serializedVersion: 5 - m_Component: - - component: {fileID: 1773526684} - - component: {fileID: 1773526687} - - component: {fileID: 1773526686} - - component: {fileID: 1773526685} - m_Layer: 0 - m_Name: wall2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1773526684 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 422658, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1773526683} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1406059171} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1773526685 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2324182, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1773526683} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1773526686 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6558046, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1773526683} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1773526687 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3352534, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, - type: 2} - m_PrefabInternal: {fileID: 1123475952} - m_GameObject: {fileID: 1773526683} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1785953684 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 194520, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - serializedVersion: 5 - m_Component: - - component: {fileID: 1785953685} - - component: {fileID: 1785953688} - - component: {fileID: 1785953687} - - component: {fileID: 1785953686} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1785953685 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 420838, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1785953684} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 440796703} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1785953686 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2316470, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1785953684} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1785953687 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6539920, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1785953684} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1785953688 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3362034, guid: 5031ae0cd920f4015b78bf393dd8d327, - type: 2} - m_PrefabInternal: {fileID: 913681317} - m_GameObject: {fileID: 1785953684} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1795174265 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 164304, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - serializedVersion: 5 - m_Component: - - component: {fileID: 1795174266} - - component: {fileID: 1795174267} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1795174266 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 486780, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1795174265} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 912909581} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1795174267 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010443357676, guid: d8f00be40153543d0ab1f0d99a74df6c, - type: 2} - m_PrefabInternal: {fileID: 208177980} - m_GameObject: {fileID: 1795174265} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1837297888 +--- !u!1 &189687338 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 187762, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - - component: {fileID: 1837297889} - - component: {fileID: 1837297892} - - component: {fileID: 1837297891} - - component: {fileID: 1837297890} + - component: {fileID: 189687340} + - component: {fileID: 189687339} m_Layer: 0 - m_Name: wall8 + m_Name: Directional Light m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1837297889 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 407570, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1837297888} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1503488962} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1837297890 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2325994, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1837297888} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1837297891 -BoxCollider: +--- !u!108 &189687339 +Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6556872, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1837297888} - m_Material: {fileID: 0} - m_IsTrigger: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189687338} m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1837297892 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3332220, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 1837297888} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1842343242 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 175246, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 1842343243} - - component: {fileID: 1842343244} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1842343243 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &189687340 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 436962, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1842343242} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189687338} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} + m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 1750600049} - m_RootOrder: 1 + m_Father: {fileID: 0} + m_RootOrder: 17 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1842343244 -MonoBehaviour: +--- !u!1001 &208177980 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000012819341654, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 1842343242} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1001 &1864714052 -Prefab: + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalPosition.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 424096, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d8f00be40153543d0ab1f0d99a74df6c, type: 3} +--- !u!1001 &417852502 +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalPosition.x - value: 70 + value: 80 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} + - target: {fileID: 422330, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} propertyPath: m_RootOrder - value: 5 + value: 8 objectReference: {fileID: 0} m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 2} - m_RootGameObject: {fileID: 1069496844} - m_IsPrefabParent: 0 ---- !u!1001 &1874067281 -Prefab: + m_SourcePrefab: {fileID: 100100000, guid: 29ceda01ee5384847a4e46a74595d08c, type: 3} +--- !u!1001 &660343288 +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalPosition.x - value: 30 + value: 150 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} + - target: {fileID: 404654, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ccf62cf2152f44840bc4038e037a7075, type: 3} +--- !u!1001 &664672538 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalPosition.x value: 10 objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_RootGameObject: {fileID: 56011192} - m_IsPrefabParent: 0 ---- !u!1 &1879967851 -GameObject: + m_SourcePrefab: {fileID: 100100000, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 3} +--- !u!1001 &695709082 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 127558, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 1879967852} - - component: {fileID: 1879967853} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1879967852 -Transform: + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalPosition.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 426602, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 02a96c93422fc486489a73449bf5dc57, type: 3} +--- !u!1001 &888865117 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 473118, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1879967851} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1939621154} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1879967853 -MonoBehaviour: + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalPosition.x + value: 140 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 436022, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 3} +--- !u!1001 &913681317 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010505600212, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1879967851} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1001 &1898018650 -Prefab: + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalPosition.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 477044, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5031ae0cd920f4015b78bf393dd8d327, type: 3} +--- !u!1001 &1123475952 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 492554, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7d7ea54c92e3c4ca3bdd081adb6953e3, type: 3} +--- !u!1001 &1208452010 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalPosition.x + value: 130 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 3} +--- !u!1001 &1267420139 +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalPosition.x - value: 40 + value: 100 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} + - target: {fileID: 408038, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} propertyPath: m_RootOrder - value: 1 + value: 14 objectReference: {fileID: 0} m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_RootGameObject: {fileID: 1518209864} - m_IsPrefabParent: 0 ---- !u!1 &1919448288 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 112986, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - serializedVersion: 5 - m_Component: - - component: {fileID: 1919448289} - - component: {fileID: 1919448292} - - component: {fileID: 1919448291} - - component: {fileID: 1919448290} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1919448289 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 414430, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1919448288} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 102648400} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1919448290 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2386778, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1919448288} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &1919448291 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6502206, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1919448288} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1919448292 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3388300, guid: 9a4dcf0d36e2c40188dbb2e26e6bebb4, - type: 2} - m_PrefabInternal: {fileID: 888865117} - m_GameObject: {fileID: 1919448288} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1920785690 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 139604, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 1920785691} - - component: {fileID: 1920785692} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1920785691 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 413900, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1920785690} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1382264935} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1920785692 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013221347554, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 1920785690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1001 &1932661082 -Prefab: + m_SourcePrefab: {fileID: 100100000, guid: d8eccfbc35cf449459e0a29707a8601a, type: 3} +--- !u!1001 &1474641186 +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalPosition.x - value: 90 + value: 60 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} + - target: {fileID: 451016, guid: cd19d9115d9a14e4193a39766437a679, type: 3} propertyPath: m_RootOrder - value: 13 + value: 7 objectReference: {fileID: 0} m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_RootGameObject: {fileID: 881006037} - m_IsPrefabParent: 0 ---- !u!1 &1939621152 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 134590, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 1939621154} - - component: {fileID: 1939621153} - m_Layer: 0 - m_Name: Tile13 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1939621153 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013344693078, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1939621152} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238049416425005162, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1939621154 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 493456, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 1939621152} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 130, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1420494772} - - {fileID: 1638589968} - - {fileID: 1879967852} - - {fileID: 2081389995} - - {fileID: 1744456129} - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1959855589 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 172038, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - serializedVersion: 5 - m_Component: - - component: {fileID: 1959855590} - - component: {fileID: 1959855591} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1959855590 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 431308, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1959855589} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1518209866} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1959855591 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011669534524, guid: 90dfa7f7fe66347389d869f92b1b6a9f, - type: 2} - m_PrefabInternal: {fileID: 1898018650} - m_GameObject: {fileID: 1959855589} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &1984199759 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 152096, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 1984199761} - - component: {fileID: 1984199760} - m_Layer: 0 - m_Name: Tile1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1984199760 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013172165866, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1984199759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4abfa16db9d114ec0ae6e10e4a566cb4, type: 3} - m_Name: - m_EditorClassIdentifier: - m_NavMesh: {fileID: 238864135012467344, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_FollowTransform: 0 ---- !u!4 &1984199761 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 489896, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 1984199759} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 10, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 546842855} - - {fileID: 877615566} - - {fileID: 1631385506} - - {fileID: 2084397813} - - {fileID: 753341575} - m_Father: {fileID: 0} - m_RootOrder: 15 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2032751501 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 129888, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 - m_Component: - - component: {fileID: 2032751502} - - component: {fileID: 2032751505} - - component: {fileID: 2032751504} - - component: {fileID: 2032751503} - m_Layer: 0 - m_Name: floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2032751502 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 455644, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2032751501} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 4, y: 0.5, z: 4} - m_Children: [] - m_Father: {fileID: 1503488962} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &2032751503 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2372454, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2032751501} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 3adb56b3302734c8d8e5a18699302e85, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &2032751504 -BoxCollider: + m_SourcePrefab: {fileID: 100100000, guid: cd19d9115d9a14e4193a39766437a679, type: 3} +--- !u!1001 &1864714052 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6596040, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2032751501} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &2032751505 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3341982, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2032751501} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &2068530229 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 160002, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - serializedVersion: 5 - m_Component: - - component: {fileID: 2068530230} - - component: {fileID: 2068530231} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2068530230 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 475832, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 2068530229} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 56011194} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2068530231 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011985487054, guid: b33f2fc7081e8459fb6d76b57d008b89, - type: 2} - m_PrefabInternal: {fileID: 1874067281} - m_GameObject: {fileID: 2068530229} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &2081389994 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 178372, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - serializedVersion: 5 - m_Component: - - component: {fileID: 2081389995} - - component: {fileID: 2081389996} - m_Layer: 0 - m_Name: portal4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2081389995 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 452204, guid: e161c87f6a4c3413c881fcb2dfdd9b28, type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 2081389994} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: -2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1939621154} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2081389996 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000011763043840, guid: e161c87f6a4c3413c881fcb2dfdd9b28, - type: 2} - m_PrefabInternal: {fileID: 1208452010} - m_GameObject: {fileID: 2081389994} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &2084397812 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 111826, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - serializedVersion: 5 - m_Component: - - component: {fileID: 2084397813} - - component: {fileID: 2084397816} - - component: {fileID: 2084397815} - - component: {fileID: 2084397814} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2084397813 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 424316, guid: 00022e44e06ba4686a52ff33cd6af19b, type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 2084397812} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 1984199761} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &2084397814 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2329598, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 2084397812} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &2084397815 -BoxCollider: + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalPosition.x + value: 70 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 410510, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7af464697e0ab41a5be05dee6f5c2b73, type: 3} +--- !u!1001 &1874067281 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalPosition.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 481092, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b33f2fc7081e8459fb6d76b57d008b89, type: 3} +--- !u!1001 &1898018650 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6533312, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 2084397812} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &2084397816 -MeshFilter: + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 433566, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 90dfa7f7fe66347389d869f92b1b6a9f, type: 3} +--- !u!1001 &1932661082 +PrefabInstance: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3312628, guid: 00022e44e06ba4686a52ff33cd6af19b, - type: 2} - m_PrefabInternal: {fileID: 664672538} - m_GameObject: {fileID: 2084397812} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalPosition.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 452732, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 3} --- !u!1 &2090097528 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 2090097531} - component: {fileID: 2090097530} @@ -6814,8 +850,9 @@ GameObject: TextMesh: serializedVersion: 3 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2090097528} m_Text: Contains all prefabs used in 'dungeon' scene. m_OffsetZ: 0 @@ -6834,15 +871,20 @@ TextMesh: --- !u!23 &2090097530 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2090097528} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: @@ -6852,21 +894,25 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!4 &2090097531 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2090097528} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -14, y: 11, z: 20} @@ -6875,239 +921,57 @@ Transform: m_Father: {fileID: 2126705000} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2098680120 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 144424, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - serializedVersion: 5 - m_Component: - - component: {fileID: 2098680121} - - component: {fileID: 2098680124} - - component: {fileID: 2098680123} - - component: {fileID: 2098680122} - m_Layer: 0 - m_Name: wall1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2098680121 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 481544, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2098680120} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.75, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 1.5, z: 4} - m_Children: [] - m_Father: {fileID: 1503488962} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &2098680122 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2387928, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2098680120} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &2098680123 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6561998, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2098680120} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &2098680124 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3372186, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, - type: 2} - m_PrefabInternal: {fileID: 2121676647} - m_GameObject: {fileID: 2098680120} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &2103940230 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 195468, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - serializedVersion: 5 - m_Component: - - component: {fileID: 2103940231} - - component: {fileID: 2103940232} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2103940231 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 499708, guid: 02a96c93422fc486489a73449bf5dc57, type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 2103940230} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1382264935} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2103940232 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013602896292, guid: 02a96c93422fc486489a73449bf5dc57, - type: 2} - m_PrefabInternal: {fileID: 695709082} - m_GameObject: {fileID: 2103940230} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &2112903959 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 194566, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - serializedVersion: 5 - m_Component: - - component: {fileID: 2112903960} - - component: {fileID: 2112903961} - m_Layer: 0 - m_Name: portal8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2112903960 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 465896, guid: ccf62cf2152f44840bc4038e037a7075, type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 2112903959} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0.3, z: -2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1750600049} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2112903961 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000013293926272, guid: ccf62cf2152f44840bc4038e037a7075, - type: 2} - m_PrefabInternal: {fileID: 660343288} - m_GameObject: {fileID: 2112903959} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 --- !u!1001 &2121676647 -Prefab: +PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalPosition.x value: 20 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} + - target: {fileID: 461746, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} propertyPath: m_RootOrder value: 11 objectReference: {fileID: 0} m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 2} - m_RootGameObject: {fileID: 1503488960} - m_IsPrefabParent: 0 + m_SourcePrefab: {fileID: 100100000, guid: ecf4f05d57d0b4d8aae8ee4c7cdc7ed3, type: 3} --- !u!1 &2126704995 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 2126705000} - component: {fileID: 2126704999} - - component: {fileID: 2126704998} - component: {fileID: 2126704997} - component: {fileID: 2126704996} m_Layer: 0 @@ -7120,34 +984,36 @@ GameObject: --- !u!81 &2126704996 AudioListener: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2126704995} m_Enabled: 1 --- !u!124 &2126704997 Behaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 2126704995} - m_Enabled: 1 ---- !u!92 &2126704998 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2126704995} m_Enabled: 1 --- !u!20 &2126704999 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2126704995} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -7168,15 +1034,18 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &2126705000 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2126704995} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} @@ -7186,183 +1055,3 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 16 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2129492481 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 140768, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - serializedVersion: 5 - m_Component: - - component: {fileID: 2129492482} - - component: {fileID: 2129492485} - - component: {fileID: 2129492484} - - component: {fileID: 2129492483} - m_Layer: 0 - m_Name: wall8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2129492482 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 423516, guid: cd19d9115d9a14e4193a39766437a679, type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 2129492481} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -1.75} - m_LocalScale: {x: 4, y: 1.5, z: 0.5} - m_Children: [] - m_Father: {fileID: 146631644} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &2129492483 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2367952, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 2129492481} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &2129492484 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6573358, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 2129492481} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &2129492485 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3399098, guid: cd19d9115d9a14e4193a39766437a679, - type: 2} - m_PrefabInternal: {fileID: 1474641186} - m_GameObject: {fileID: 2129492481} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &2142539132 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 177312, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - serializedVersion: 5 - m_Component: - - component: {fileID: 2142539133} - - component: {fileID: 2142539134} - m_Layer: 0 - m_Name: portal1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2142539133 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 495906, guid: 828a29cbf25f8441dabc6d11c2acb77b, type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 2142539132} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 2, y: 0.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 881006039} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2142539134 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010486408870, guid: 828a29cbf25f8441dabc6d11c2acb77b, - type: 2} - m_PrefabInternal: {fileID: 1932661082} - m_GameObject: {fileID: 2142539132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 ---- !u!1 &2146245281 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 175646, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - serializedVersion: 5 - m_Component: - - component: {fileID: 2146245282} - - component: {fileID: 2146245283} - m_Layer: 0 - m_Name: portal2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2146245282 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 404432, guid: d8eccfbc35cf449459e0a29707a8601a, type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 2146245281} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 933610693} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2146245283 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 114000010820819280, guid: d8eccfbc35cf449459e0a29707a8601a, - type: 2} - m_PrefabInternal: {fileID: 1267420139} - m_GameObject: {fileID: 2146245281} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AgentTypeID: 0 - m_StartPoint: {x: 0, y: 0, z: -0.8} - m_EndPoint: {x: 0, y: 0, z: 0.8} - m_Width: 1.6 - m_Bidirectional: 1 - m_AutoUpdatePosition: 0 - m_Area: 0 diff --git a/Packages/manifest.json b/Packages/manifest.json index 25cf5d31..01243652 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -2,12 +2,12 @@ "dependencies": { "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", - "com.unity.ide.rider": "1.0.8", + "com.unity.ide.rider": "1.1.4", "com.unity.ide.visualstudio": "1.0.11", - "com.unity.ide.vscode": "1.0.7", + "com.unity.ide.vscode": "1.1.4", "com.unity.multiplayer-hlapi": "1.0.4", - "com.unity.test-framework": "1.0.16", - "com.unity.timeline": "1.1.0", + "com.unity.test-framework": "1.1.9", + "com.unity.timeline": "1.2.10", "com.unity.ugui": "1.0.0", "com.unity.xr.legacyinputhelpers": "2.0.4", "com.unity.modules.ai": "1.0.0", diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index 97fdc861..8154aabe 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -3,7 +3,7 @@ --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 9 m_ExternalVersionControlSupport: Hidden Meta Files m_SerializationMode: 2 m_LineEndingsForNewScripts: 1 @@ -16,9 +16,20 @@ EditorSettings: m_EtcTextureFastCompressor: 2 m_EtcTextureNormalCompressor: 2 m_EtcTextureBestCompressor: 5 - m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref m_ProjectGenerationRootNamespace: - m_UserGeneratedProjectSuffix: m_CollabEditorSettings: inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 1 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 9b448a03..798259ba 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2019.3.0a10 -m_EditorVersionWithRevision: 2019.3.0a10 (d046aa12c0d7) +m_EditorVersion: 2019.3.0f6 +m_EditorVersionWithRevision: 2019.3.0f6 (27ab2135bccf) From 5855b3265dc61a77050f23b0b57a048bc52890d2 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Wed, 5 Feb 2020 12:54:45 +0100 Subject: [PATCH 72/82] Remove unnecessary packages. --- Packages/manifest.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index 01243652..f789928a 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,15 +1,10 @@ { "dependencies": { - "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.tilemap": "1.0.0", "com.unity.ide.rider": "1.1.4", "com.unity.ide.visualstudio": "1.0.11", "com.unity.ide.vscode": "1.1.4", - "com.unity.multiplayer-hlapi": "1.0.4", - "com.unity.test-framework": "1.1.9", - "com.unity.timeline": "1.2.10", + "com.unity.test-framework": "1.1.11", "com.unity.ugui": "1.0.0", - "com.unity.xr.legacyinputhelpers": "2.0.4", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", From 21289d036f557a6970233f52f98c2f93a13995f1 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Wed, 5 Feb 2020 13:01:10 +0100 Subject: [PATCH 73/82] Update README.md with the latest branch names. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0472ea72..34065af0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released version, [2018.3](../../tree/2018.3), [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). +> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released version, [2019.3](../../tree/2019.3), [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). # Components for Runtime NavMesh Building From fab96bc3a2e65edc7608a34101315b650fd08d69 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Mon, 10 Feb 2020 11:26:00 +0100 Subject: [PATCH 74/82] Repair the updated serialization of the tile prefabs. --- .gitattributes | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index e18c9458..144808aa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,6 +8,5 @@ *.md5 text *.compute text *.md text -*.prefab text */ProjectSettings/*.asset text From a886e1e126eaf426af7369e556b498ef00686ecd Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Mon, 20 Jul 2020 15:35:43 +0200 Subject: [PATCH 75/82] Update project to 2019.4.0f1 (LTS). --- Packages/manifest.json | 4 ++-- ProjectSettings/ProjectVersion.txt | 4 ++-- README.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index f789928a..98c3e164 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -2,8 +2,8 @@ "dependencies": { "com.unity.ide.rider": "1.1.4", "com.unity.ide.visualstudio": "1.0.11", - "com.unity.ide.vscode": "1.1.4", - "com.unity.test-framework": "1.1.11", + "com.unity.ide.vscode": "1.2.0", + "com.unity.test-framework": "1.1.14", "com.unity.ugui": "1.0.0", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 798259ba..d6e47130 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2019.3.0f6 -m_EditorVersionWithRevision: 2019.3.0f6 (27ab2135bccf) +m_EditorVersion: 2019.4.0f1 +m_EditorVersionWithRevision: 2019.4.0f1 (0af376155913) diff --git a/README.md b/README.md index 34065af0..727eb434 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released version, [2019.3](../../tree/2019.3), [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). +> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). # Components for Runtime NavMesh Building From 500e2928a7550e109ad4bf4c86a227c0af818fe8 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 21 Jul 2020 13:05:05 +0200 Subject: [PATCH 76/82] Update README with information about the 2020.1 branch. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 727eb434..0ee0aad8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). +> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2020.1](../../tree/2020.1), [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). # Components for Runtime NavMesh Building From 638f82de65b6044e5c9139c94e2698ed18c0c434 Mon Sep 17 00:00:00 2001 From: Maxime Plantady Date: Fri, 13 Nov 2020 10:56:22 -0500 Subject: [PATCH 77/82] 2020.1 compatibility --- .../Editor/NavMeshAssetManager.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs index e824bf6c..f372c61b 100644 --- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs +++ b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs @@ -41,11 +41,20 @@ static string GetAndEnsureTargetPath(NavMeshSurface surface) { var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject); var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surface.gameObject); - if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.prefabAssetPath)) + + if (isPartOfPrefab) { - var prefabDirectoryName = Path.GetDirectoryName(prefabStage.prefabAssetPath); - if (!string.IsNullOrEmpty(prefabDirectoryName)) - targetPath = prefabDirectoryName; +#if UNITY_2020_1_OR_NEWER + var assetPath = prefabStage.assetPath; +#else + var assetPath = prefabStage.prefabAssetPath; +#endif + if (!string.IsNullOrEmpty(assetPath)) + { + var prefabDirectoryName = Path.GetDirectoryName(assetPath); + if (!string.IsNullOrEmpty(prefabDirectoryName)) + targetPath = prefabDirectoryName; + } } } if (!Directory.Exists(targetPath)) From c84826c9025a23819fc5ee505f453b5e4dcd536e Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Tue, 8 Dec 2020 23:50:54 +0100 Subject: [PATCH 78/82] Mention the package branch in the README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ee0aad8..68addb6a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2020.1](../../tree/2020.1), [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). +> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2020.1](../../tree/2020.1), [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ +> You can use the [package](../../tree/package) branch in Unity 2019.4 or newer in order to add this code to a project in the form of a package. # Components for Runtime NavMesh Building From b49831ec276038a41fc9b3c48f5c858f9c622516 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Mon, 14 Dec 2020 12:43:27 +0100 Subject: [PATCH 79/82] Add link to the setup section of the README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68addb6a..c73d066c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ > Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2020.1](../../tree/2020.1), [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ -> You can use the [package](../../tree/package) branch in Unity 2019.4 or newer in order to add this code to a project in the form of a package. +> You can use the [package](../../tree/package) branch in Unity 2019.4 or newer in order to add this code to a project in the form of a package. For instructions please refer to the [Setup](../../tree/package#setup) section of the README file. # Components for Runtime NavMesh Building From e29b9511470e9f0e19a32754223fdab29dde35c5 Mon Sep 17 00:00:00 2001 From: Adrian Turcanu Date: Mon, 14 Dec 2020 13:14:27 +0100 Subject: [PATCH 80/82] Mention the 2020.2 version in the README file --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c73d066c..3c7cf643 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version, [2020.1](../../tree/2020.1), [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ +> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version and up to 2020.2, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ > You can use the [package](../../tree/package) branch in Unity 2019.4 or newer in order to add this code to a project in the form of a package. For instructions please refer to the [Setup](../../tree/package#setup) section of the README file. # Components for Runtime NavMesh Building From 83c499597d830f8d970a3d7cc5b7d3afbbdd1e03 Mon Sep 17 00:00:00 2001 From: Maxime Plantady <32418388+mplantady@users.noreply.github.com> Date: Wed, 21 Jul 2021 10:58:34 -0400 Subject: [PATCH 81/82] Update readme with information about AI Navigation package --- README.md | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3c7cf643..172b5981 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,23 @@ -> Please use the branch matching the version of your Unity editor: [master](../../tree/master) for the latest released LTS version and up to 2020.2, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ -> You can use the [package](../../tree/package) branch in Unity 2019.4 or newer in order to add this code to a project in the form of a package. For instructions please refer to the [Setup](../../tree/package#setup) section of the README file. +# Status of the project -# Components for Runtime NavMesh Building +## Development +This project is now developed as part of the new [AI Navigation package](https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest), please install this package to continue working with *NavMesh building components* workflow and get access to newer versions. + +The content of this repository will remain available for older Unity version, but no further development will be made here. + +## Questions and feature requests +Please use [AI & Navigation Previews](https://forum.unity.com/forums/ai-navigation-previews.122/) section of the forum to discuss about *AI Navigation* package and learn about new releases. + +[Unity roadmap](https://unity.com/roadmap/unity-platform/navigation-game-ai) is a portal where you can learn about *AI Navigation* future developments and share your feature requests. + + +## Bug Reporting +The issue section in this repository is closed, please use the [Unity built-in report system](https://unity3d.com/unity/qa/bug-reporting +) to report bugs you found in *AI Navigation* package. + +# NavMesh building components + +## Components for Runtime NavMesh Building Here we introduce four components for the navigation system: @@ -14,12 +30,15 @@ These components comprise the high level controls for building and using NavMesh Detailed information can be found in the [Documentation](Documentation) section or in the [NavMesh building components](https://docs.unity3d.com/Manual/NavMesh-BuildingComponents.html) section of the Unity Manual. -# How To Get Started +## How To Get Started Download and install Unity 5.6 or newer. Clone or download this repository and open the project in Unity. -Alternatively, you can copy the contents of `Assets/NavMeshComponents` to an existing project. Make sure to select a branch of the repository that matches the Unity version. +Alternatively, you can copy the contents of `Assets/NavMeshComponents` to an existing project. + +Make sure to select a branch of the repository that matches the Unity version: +> [master](../../tree/master) for the latest released LTS version and up to 2020.2, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ Additional examples are available in the `Assets/Examples` folder. The examples are provided "as is". They are neither generic nor robust, but serve as inspiration. @@ -27,7 +46,7 @@ The examples are provided "as is". They are neither generic nor robust, but serv _Note: During the beta cycle features and API are subject to change.\ **Make sure to backup an existing project before opening it with a beta build.**_ -# FAQ +## FAQ Q: Can I bake a NavMesh at runtime? A: Yes. From 41744345b26421464c448f0cb521e06e38a6770a Mon Sep 17 00:00:00 2001 From: Maxime Plantady <32418388+mplantady@users.noreply.github.com> Date: Tue, 27 Jul 2021 08:46:35 -0400 Subject: [PATCH 82/82] Reviewed readme --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 172b5981..c5055834 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,20 @@ # Status of the project ## Development -This project is now developed as part of the new [AI Navigation package](https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest), please install this package to continue working with *NavMesh building components* workflow and get access to newer versions. +This project is now developed as part of the [AI Navigation](https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest) package. Please add that package to your project in order to continue building the NavMesh using these components and to get access to newer versions. -The content of this repository will remain available for older Unity version, but no further development will be made here. +The content of this repository remains available for older Unity versions but no further development will be made here. ## Questions and feature requests -Please use [AI & Navigation Previews](https://forum.unity.com/forums/ai-navigation-previews.122/) section of the forum to discuss about *AI Navigation* package and learn about new releases. - -[Unity roadmap](https://unity.com/roadmap/unity-platform/navigation-game-ai) is a portal where you can learn about *AI Navigation* future developments and share your feature requests. +Please use the [AI & Navigation Previews](https://forum.unity.com/forums/ai-navigation-previews.122/) section of the forum to discuss about the **AI Navigation** package and to stay informed about major releases. +You can learn about the future developments of **AI Navigation** and also share your feature requests in the [Unity Platform Roadmap](https://unity.com/roadmap/unity-platform/navigation-game-ai) portal. ## Bug Reporting -The issue section in this repository is closed, please use the [Unity built-in report system](https://unity3d.com/unity/qa/bug-reporting -) to report bugs you found in *AI Navigation* package. +The _Issues_ section of this repository is closed. Please use the [Unity built-in report system](https://unity3d.com/unity/qa/bug-reporting +) to report any bugs that you find in the **AI Navigation** package. -# NavMesh building components +# Using This Repository ## Components for Runtime NavMesh Building @@ -38,7 +37,7 @@ Clone or download this repository and open the project in Unity. Alternatively, you can copy the contents of `Assets/NavMeshComponents` to an existing project. Make sure to select a branch of the repository that matches the Unity version: -> [master](../../tree/master) for the latest released LTS version and up to 2020.2, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6).\ +> [master](../../tree/master) for 2020.3-LTS, [2019.3](../../tree/2019.3) for up to 2019.4-LTS, [2018.3](../../tree/2018.3) for up to 2018.4-LTS and 2019.2, [2018.2](../../tree/2018.2), [2018.1](../../tree/2018.1), [2017.2](../../tree/2017.2) for up to 2017.4-LTS, [2017.1](../../tree/2017.1), [5.6](../../tree/5.6). Additional examples are available in the `Assets/Examples` folder. The examples are provided "as is". They are neither generic nor robust, but serve as inspiration.