From 1bb64c6b746258d81b524d2875ff3aa33cf67b33 Mon Sep 17 00:00:00 2001 From: Sascha Date: Wed, 16 Aug 2023 10:59:30 +0200 Subject: [PATCH] Multi-Floors Pathfinding Links --- Assets/Editor.meta | 8 + Assets/Editor/PathfindingLinkEditor.cs | 18 + Assets/Editor/PathfindingLinkEditor.cs.meta | 2 + Assets/PathfindingLink.cs | 6 + Assets/PathfindingLink.cs.meta | 2 + Assets/PathfindingLinkMonoBehaviour.cs | 14 + Assets/PathfindingLinkMonoBehaviour.cs.meta | 2 + Assets/Scenes/GameScene_MultiFloors.unity | 924 ++++++-------------- Assets/Scripts/Actions/MoveAction.cs | 4 +- Assets/Scripts/Grid/GridSystem.cs | 6 +- Assets/Scripts/Grid/LevelGrid.cs | 5 +- Assets/Scripts/Pathfinding.cs | 27 +- ProjectSettings/TagManager.asset | 2 +- 13 files changed, 368 insertions(+), 652 deletions(-) create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/PathfindingLinkEditor.cs create mode 100644 Assets/Editor/PathfindingLinkEditor.cs.meta create mode 100644 Assets/PathfindingLink.cs create mode 100644 Assets/PathfindingLink.cs.meta create mode 100644 Assets/PathfindingLinkMonoBehaviour.cs create mode 100644 Assets/PathfindingLinkMonoBehaviour.cs.meta diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 00000000..20652553 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1278225c3a080127396f090021967166 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/PathfindingLinkEditor.cs b/Assets/Editor/PathfindingLinkEditor.cs new file mode 100644 index 00000000..3d0fe712 --- /dev/null +++ b/Assets/Editor/PathfindingLinkEditor.cs @@ -0,0 +1,18 @@ +using UnityEditor; +using UnityEngine; + +[CustomEditor(typeof(PathfindingLinkMonoBehaviour))] +public class PathfindingLinkEditor : Editor { + private void OnSceneGUI() { + PathfindingLinkMonoBehaviour pathfindingLinkMonoBehaviour = (PathfindingLinkMonoBehaviour)target; + EditorGUI.BeginChangeCheck(); + Vector3 newLinkPositionA = Handles.PositionHandle(pathfindingLinkMonoBehaviour.LinkPositionA, Quaternion.identity); + Vector3 newLinkPositionB = Handles.PositionHandle(pathfindingLinkMonoBehaviour.LinkPositionB, Quaternion.identity); + + if (!EditorGUI.EndChangeCheck()) return; + + Undo.RecordObject(pathfindingLinkMonoBehaviour, "Change Link Position"); + pathfindingLinkMonoBehaviour.LinkPositionA = newLinkPositionA; + pathfindingLinkMonoBehaviour.LinkPositionB = newLinkPositionB; + } +} \ No newline at end of file diff --git a/Assets/Editor/PathfindingLinkEditor.cs.meta b/Assets/Editor/PathfindingLinkEditor.cs.meta new file mode 100644 index 00000000..c131a7da --- /dev/null +++ b/Assets/Editor/PathfindingLinkEditor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: eef5642de1af99e2d976de6155441fda \ No newline at end of file diff --git a/Assets/PathfindingLink.cs b/Assets/PathfindingLink.cs new file mode 100644 index 00000000..34dd418e --- /dev/null +++ b/Assets/PathfindingLink.cs @@ -0,0 +1,6 @@ +using Grid; + +public class PathfindingLink { + public GridPosition GridPositionA; + public GridPosition GridPositionB; +} \ No newline at end of file diff --git a/Assets/PathfindingLink.cs.meta b/Assets/PathfindingLink.cs.meta new file mode 100644 index 00000000..61105616 --- /dev/null +++ b/Assets/PathfindingLink.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4dd28b160b7902eabb1c6abe6c48e782 \ No newline at end of file diff --git a/Assets/PathfindingLinkMonoBehaviour.cs b/Assets/PathfindingLinkMonoBehaviour.cs new file mode 100644 index 00000000..a3e70fc9 --- /dev/null +++ b/Assets/PathfindingLinkMonoBehaviour.cs @@ -0,0 +1,14 @@ +using Grid; +using UnityEngine; + +public class PathfindingLinkMonoBehaviour : MonoBehaviour { + public Vector3 LinkPositionA; + public Vector3 LinkPositionB; + + public PathfindingLink GetPathfindingLink() { + return new() { + GridPositionA = LevelGrid.Instance.GetGridPosition(LinkPositionA), + GridPositionB = LevelGrid.Instance.GetGridPosition(LinkPositionB), + }; + } +} \ No newline at end of file diff --git a/Assets/PathfindingLinkMonoBehaviour.cs.meta b/Assets/PathfindingLinkMonoBehaviour.cs.meta new file mode 100644 index 00000000..4f28a8db --- /dev/null +++ b/Assets/PathfindingLinkMonoBehaviour.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1b5c3d4155bb2e3d3a906744c85a39ac \ No newline at end of file diff --git a/Assets/Scenes/GameScene_MultiFloors.unity b/Assets/Scenes/GameScene_MultiFloors.unity index eb4ab1b2..f835b198 100644 --- a/Assets/Scenes/GameScene_MultiFloors.unity +++ b/Assets/Scenes/GameScene_MultiFloors.unity @@ -158,6 +158,7 @@ MonoBehaviour: floorLayerMask: serializedVersion: 2 m_Bits: 64 + pathfindingLinkContainer: {fileID: 1458351572} --- !u!4 &18574386 Transform: m_ObjectHideFlags: 0 @@ -179,6 +180,95 @@ Transform: type: 3} m_PrefabInstance: {fileID: 2010953147} m_PrefabAsset: {fileID: 0} +--- !u!1001 &26008513 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1917598936} + m_Modifications: + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_RootOrder + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalScale.x + value: 1.2432851 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalScale.z + value: 0.55558336 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.333 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalPosition.y + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalPosition.z + value: 2.95875 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3438048684508788708, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + propertyPath: m_Name + value: Wall1 (23) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} +--- !u!4 &26008514 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, + type: 3} + m_PrefabInstance: {fileID: 26008513} + m_PrefabAsset: {fileID: 0} --- !u!1 &36003318 GameObject: m_ObjectHideFlags: 0 @@ -1830,100 +1920,6 @@ MonoBehaviour: m_FrequencyGain: 5 m_Duration: 0.5 m_NoiseOffsets: {x: 0, y: 0, z: 0} ---- !u!1001 &156905346 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_RootOrder - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalScale.x - value: 0.11106779 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalScale.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalScale.z - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.000000026492279 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalPosition.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.2999997 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3438048684508788708, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - propertyPath: m_Name - value: Wall1 (23) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} ---- !u!4 &156905347 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, - type: 3} - m_PrefabInstance: {fileID: 156905346} - m_PrefabAsset: {fileID: 0} --- !u!1001 &175134249 PrefabInstance: m_ObjectHideFlags: 0 @@ -2002,12 +1998,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1a531e276d6ed5766a7e85e6d4642ff3, type: 3} ---- !u!4 &207768079 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - m_PrefabInstance: {fileID: 577707735} - m_PrefabAsset: {fileID: 0} --- !u!1001 &240934145 PrefabInstance: m_ObjectHideFlags: 0 @@ -2568,7 +2558,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} serializedVersion: 2 - m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379} + m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379} m_LocalPosition: {x: 3.01, y: 7, z: -6.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -2669,7 +2659,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalScale.x - value: 0.4132431 + value: 0.33255738 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -2689,7 +2679,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalPosition.z - value: 1.2487 + value: 1.402 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -2846,7 +2836,7 @@ PrefabInstance: - target: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3, type: 3} propertyPath: m_LocalPosition.x - value: 0.41635415 + value: 0.6385875 objectReference: {fileID: 0} - target: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3, type: 3} @@ -2949,12 +2939,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1348776055} m_PrefabAsset: {fileID: 0} ---- !u!4 &376754370 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - m_PrefabInstance: {fileID: 1430791378} - m_PrefabAsset: {fileID: 0} --- !u!4 &384036476 stripped Transform: m_CorrespondingSourceObject: {fileID: 1448231662597988608, guid: d61c9cdff2aa262c5977c6361c76745f, @@ -3334,12 +3318,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 448453891} m_PrefabAsset: {fileID: 0} ---- !u!4 &449012478 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - m_PrefabInstance: {fileID: 1194013357} - m_PrefabAsset: {fileID: 0} --- !u!1001 &454877309 PrefabInstance: m_ObjectHideFlags: 0 @@ -3698,7 +3676,7 @@ PrefabInstance: - target: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3, type: 3} propertyPath: m_LocalPosition.x - value: 0.41635415 + value: 0.6385875 objectReference: {fileID: 0} - target: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3, type: 3} @@ -3964,84 +3942,6 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 624214429} m_PrefabAsset: {fileID: 0} ---- !u!1001 &577707735 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.x - value: 0.055558335 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.z - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.6385875 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.2487 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6801323546823109225, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_Name - value: Door (1) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b451938283bd5b7efb58f17e427b40f5, type: 3} --- !u!1001 &579363797 PrefabInstance: m_ObjectHideFlags: 0 @@ -4291,7 +4191,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 598754947} serializedVersion: 2 - m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379} + m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379} m_LocalPosition: {x: 3.01, y: 7, z: -6.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 @@ -4565,7 +4465,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalScale.x - value: 2.9998362 + value: 2.8998473 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -4585,7 +4485,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalPosition.z - value: 1.2999995 + value: 1.3999997 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -5007,15 +4907,61 @@ Transform: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 656768578} + m_GameObject: {fileID: 656768578} + serializedVersion: 2 + 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_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &670619183 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670619184} + - component: {fileID: 670619185} + m_Layer: 8 + m_Name: PathfindingLink (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &670619184 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670619183} serializedVersion: 2 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_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1458351572} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &670619185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670619183} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b5c3d4155bb2e3d3a906744c85a39ac, type: 3} + m_Name: + m_EditorClassIdentifier: + LinkPositionA: {x: 0, y: 0, z: 10} + LinkPositionB: {x: 0, y: 3, z: 12} --- !u!224 &684963193 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 5865150429396454086, guid: 51df14b2dfd12ded6b0f0972c05cf8d4, @@ -5206,6 +5152,52 @@ Transform: type: 3} m_PrefabInstance: {fileID: 717161485} m_PrefabAsset: {fileID: 0} +--- !u!1 &729685065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 729685066} + - component: {fileID: 729685067} + m_Layer: 8 + m_Name: PathfindingLink + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &729685066 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729685065} + serializedVersion: 2 + 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_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1458351572} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &729685067 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729685065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b5c3d4155bb2e3d3a906744c85a39ac, type: 3} + m_Name: + m_EditorClassIdentifier: + LinkPositionA: {x: 2, y: 0, z: 10} + LinkPositionB: {x: 2, y: 3, z: 12} --- !u!4 &731997492 stripped Transform: m_CorrespondingSourceObject: {fileID: 9142444727976197465, guid: 1a531e276d6ed5766a7e85e6d4642ff3, @@ -5317,7 +5309,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalScale.x - value: 2.9998362 + value: 1.338031 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -5337,7 +5329,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalPosition.z - value: 1.2999995 + value: 1.4 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -6487,12 +6479,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1001586278} m_PrefabAsset: {fileID: 0} ---- !u!4 &1032642359 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - m_PrefabInstance: {fileID: 7995715121813558043} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1042109074 PrefabInstance: m_ObjectHideFlags: 0 @@ -6619,6 +6605,52 @@ Transform: - {fileID: 462482035} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1061471707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1061471708} + - component: {fileID: 1061471709} + m_Layer: 8 + m_Name: PathfindingLink (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1061471708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1061471707} + serializedVersion: 2 + 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_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1458351572} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1061471709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1061471707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b5c3d4155bb2e3d3a906744c85a39ac, type: 3} + m_Name: + m_EditorClassIdentifier: + LinkPositionA: {x: 6, y: 0, z: 26} + LinkPositionB: {x: 4, y: 3, z: 26} --- !u!1001 &1069442162 PrefabInstance: m_ObjectHideFlags: 0 @@ -7490,84 +7522,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d61c9cdff2aa262c5977c6361c76745f, type: 3} ---- !u!1001 &1194013357 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.x - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.z - value: 0.055558335 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.30245963 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.z - value: 2.3537 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.70710677 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6801323546823109225, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_Name - value: Door (5) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b451938283bd5b7efb58f17e427b40f5, type: 3} --- !u!1 &1222726809 GameObject: m_ObjectHideFlags: 0 @@ -8368,7 +8322,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalPosition.x - value: 0.27779168 + value: 0.277 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -8378,7 +8332,7 @@ PrefabInstance: - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} propertyPath: m_LocalPosition.z - value: 1.9487 + value: 2.101 objectReference: {fileID: 0} - target: {fileID: 984941225145064001, guid: 11a89251962355a48a163d8c97bfe0d1, type: 3} @@ -9942,84 +9896,6 @@ MonoBehaviour: m_Spacing: {x: 15, y: 0} m_Constraint: 2 m_ConstraintCount: 1 ---- !u!1001 &1430791378 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.x - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.z - value: 0.055558335 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.30245984 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.z - value: 2.1536999 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.70710677 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6801323546823109225, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_Name - value: Door (6) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b451938283bd5b7efb58f17e427b40f5, type: 3} --- !u!1001 &1436808942 PrefabInstance: m_ObjectHideFlags: 0 @@ -10109,6 +9985,40 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1436808942} m_PrefabAsset: {fileID: 0} +--- !u!1 &1458351571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1458351572} + m_Layer: 0 + m_Name: PathfindingLinks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1458351572 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458351571} + serializedVersion: 2 + 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_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 729685066} + - {fileID: 670619184} + - {fileID: 1061471708} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1467514632 PrefabInstance: m_ObjectHideFlags: 0 @@ -12199,7 +12109,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.x - value: 0.043738976 + value: 0.038733926 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -12209,12 +12119,12 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.z - value: 0.31345853 + value: 0.28847986 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.x - value: 0.14121817 + value: 0.1352 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -12224,7 +12134,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.z - value: 2.7220707 + value: 2.84697 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -15771,100 +15681,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1868768697} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1874718369 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_RootOrder - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalScale.x - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalScale.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalScale.z - value: 0.55 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.27779168 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.y - value: -2.842171e-14 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.9487 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071079 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.70710576 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7247649765323194955, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_Name - value: WallDoorDouble (1) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 69db74e98958f844faf6f9f1e2375043, type: 3} ---- !u!4 &1874718370 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - m_PrefabInstance: {fileID: 1874718369} - m_PrefabAsset: {fileID: 0} --- !u!1 &1917598935 GameObject: m_ObjectHideFlags: 0 @@ -15896,7 +15712,6 @@ Transform: m_Children: - {fileID: 1042109075} - {fileID: 1605435716} - - {fileID: 156905347} - {fileID: 1499896364} - {fileID: 330832437} - {fileID: 1069442163} @@ -15915,8 +15730,7 @@ Transform: - {fileID: 8481341002284463381} - {fileID: 636294209} - {fileID: 753507437} - - {fileID: 3445944460884554663} - - {fileID: 1874718370} + - {fileID: 26008514} - {fileID: 6506699288722003284} - {fileID: 386759697} - {fileID: 839669423} @@ -15942,20 +15756,16 @@ Transform: - {fileID: 1284578980} - {fileID: 731997492} - {fileID: 966684261} - - {fileID: 1032642359} - {fileID: 1316703008} - {fileID: 384036476} - {fileID: 597335112} - {fileID: 945993368} - {fileID: 372115962} - - {fileID: 207768079} - {fileID: 481773592} - {fileID: 486504515} - {fileID: 1095562248} - {fileID: 1799558266} - {fileID: 45872841} - - {fileID: 449012478} - - {fileID: 376754370} - {fileID: 327680673} - {fileID: 1723875925} - {fileID: 25161319} @@ -16738,89 +16548,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 8a85e6921455453f799be4437edc21f3, type: 3} ---- !u!1001 &1402837731774236407 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_RootOrder - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalScale.x - value: 0.11111667 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalScale.z - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.413 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.3486999 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7247649765323194955, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - propertyPath: m_Name - value: WallDoorDouble - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 69db74e98958f844faf6f9f1e2375043, type: 3} --- !u!1001 &1588284869853455352 PrefabInstance: m_ObjectHideFlags: 0 @@ -16997,12 +16724,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} ---- !u!4 &3445944460884554663 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 686072294256164430, guid: 69db74e98958f844faf6f9f1e2375043, - type: 3} - m_PrefabInstance: {fileID: 1402837731774236407} - m_PrefabAsset: {fileID: 0} --- !u!1001 &4910748681285187440 PrefabInstance: m_ObjectHideFlags: 0 @@ -17092,84 +16813,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 8118433590942925222} m_PrefabAsset: {fileID: 0} ---- !u!1001 &7995715121813558043 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1917598936} - m_Modifications: - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.x - value: 0.055558335 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalScale.z - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.5274708 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.2487 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2919633612836661042, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6801323546823109225, guid: b451938283bd5b7efb58f17e427b40f5, - type: 3} - propertyPath: m_Name - value: Door - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b451938283bd5b7efb58f17e427b40f5, type: 3} --- !u!1001 &8118433590942925222 PrefabInstance: m_ObjectHideFlags: 0 @@ -17283,8 +16926,9 @@ SceneRoots: - {fileID: 1848247811} - {fileID: 366831943} - {fileID: 656768580} - - {fileID: 18574386} - - {fileID: 1128788156} - {fileID: 989818458} + - {fileID: 1128788156} + - {fileID: 18574386} - {fileID: 1482581177} + - {fileID: 1458351572} - {fileID: 1835055191} diff --git a/Assets/Scripts/Actions/MoveAction.cs b/Assets/Scripts/Actions/MoveAction.cs index 3aa3040c..82fe6fb6 100644 --- a/Assets/Scripts/Actions/MoveAction.cs +++ b/Assets/Scripts/Actions/MoveAction.cs @@ -51,13 +51,13 @@ namespace Actions { for (int xPosition = -maxMoveDistance; xPosition <= maxMoveDistance; xPosition++) { for (int zPosition = -maxMoveDistance; zPosition <= maxMoveDistance; zPosition++) { - for (int floor = 0; floor < maxMoveDistance; floor++) { + for (int floor = -maxMoveDistance; floor < maxMoveDistance; floor++) { GridPosition offsetGridPosition = new(xPosition, zPosition, floor); GridPosition testGridPosition = unitGridPosition + offsetGridPosition; if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions if (unitGridPosition == testGridPosition) continue; //Same grid position where the unit is already at - if (LevelGrid.Instance.HasAnyUnitOnGridPosition(testGridPosition)) continue; //Grid position already accopied with anther unit + if (LevelGrid.Instance.HasAnyUnitOnGridPosition(testGridPosition)) continue; //Grid position already occopied with anther unit if (!Pathfinding.Instance.IsWalkableGridPosition(testGridPosition)) continue; //Obstacle on path if (!Pathfinding.Instance.HasPath(unitGridPosition, testGridPosition)) continue; //No path available diff --git a/Assets/Scripts/Grid/GridSystem.cs b/Assets/Scripts/Grid/GridSystem.cs index 2c923282..86bede71 100644 --- a/Assets/Scripts/Grid/GridSystem.cs +++ b/Assets/Scripts/Grid/GridSystem.cs @@ -32,9 +32,9 @@ namespace Grid { public GridPosition GetGridPosition(Vector3 worldPosition) => new(Mathf.RoundToInt(worldPosition.x / CellSize), Mathf.RoundToInt(worldPosition.z / CellSize), Floor); public void CreateDebugObjects(Transform debugPrefab) { - for (int x = 0; x < Width; x++) { - for (int z = 0; z < Height; z++) { - GridPosition gridPosition = new(x, z, Floor); + for (int xPosition = 0; xPosition < Width; xPosition++) { + for (int zPosition = 0; zPosition < Height; zPosition++) { + GridPosition gridPosition = new(xPosition, zPosition, Floor); Transform debugTransform = Object.Instantiate(debugPrefab, GetWorldPosition(gridPosition), Quaternion.identity); GridDebugObject gridDebugObject = debugTransform.GetComponent(); gridDebugObject.SetGridObject(GetGridObject(gridPosition)); diff --git a/Assets/Scripts/Grid/LevelGrid.cs b/Assets/Scripts/Grid/LevelGrid.cs index 0ec3f347..7192fbd1 100644 --- a/Assets/Scripts/Grid/LevelGrid.cs +++ b/Assets/Scripts/Grid/LevelGrid.cs @@ -58,8 +58,9 @@ namespace Grid { public Vector3 GetWorldPosition(GridPosition gridPosition) => GetGridSystem(gridPosition.Floor).GetWorldPosition(gridPosition); public bool IsValidGridPosition(GridPosition gridPosition) { - if (gridPosition.Floor < 0 || gridPosition.Floor >= floorAmount) return false; - return GetGridSystem(gridPosition.Floor).IsValidGridPosition(gridPosition); + if (gridPosition.Floor >= 0 && gridPosition.Floor < FloorAmount) return GetGridSystem(gridPosition.Floor).IsValidGridPosition(gridPosition); + // Debug.LogError($"Floor {gridPosition.Floor} is over floorAmount {FloorAmount}"); + return false; } public int GetWidth() => GetGridSystem(0).Width; diff --git a/Assets/Scripts/Pathfinding.cs b/Assets/Scripts/Pathfinding.cs index 725aa718..587d1dd0 100644 --- a/Assets/Scripts/Pathfinding.cs +++ b/Assets/Scripts/Pathfinding.cs @@ -11,8 +11,10 @@ public class Pathfinding : MonoBehaviour { [SerializeField] private Transform gridDebugObjectPrefab; [SerializeField] private LayerMask obstaclesLayerMask; [SerializeField] private LayerMask floorLayerMask; + [SerializeField] private Transform pathfindingLinkContainer; public static Pathfinding Instance { get; private set; } private List> GridSystemList { get; set; } + private List PathfindingLinkList { get; set; } private int Width { get; set; } private int Height { get; set; } @@ -59,6 +61,14 @@ public class Pathfinding : MonoBehaviour { } } } + + PathfindingLinkList = new(); + foreach (Transform pathfindinLinkTransform in pathfindingLinkContainer) { + if (!pathfindinLinkTransform.TryGetComponent(out PathfindingLinkMonoBehaviour pathfindingLinkMonoBehaviour)) continue; + PathfindingLink pathfindingLink = pathfindingLinkMonoBehaviour.GetPathfindingLink(); + // Debug.Log($"PathfindingLink: {pathfindingLink.GridPositionA} -> {pathfindingLink.GridPositionB}"); + PathfindingLinkList.Add(pathfindingLink); + } } public bool IsWalkableGridPosition(GridPosition gridPosition) => GetGridSystem(gridPosition.Floor).GetGridObject(gridPosition).IsWalkable; @@ -154,14 +164,22 @@ public class Pathfinding : MonoBehaviour { List totalNeighbourList = new(); totalNeighbourList.AddRange(neighbourList); - foreach (GridPosition neighbourGridPosition in neighbourList.Select(pathNode => pathNode.GridPosition)) { - if (neighbourGridPosition.Floor - 1 >= 0) totalNeighbourList.Add(GetNode(neighbourGridPosition.XPosition, neighbourGridPosition.ZPosition, neighbourGridPosition.Floor - 1)); - if (neighbourGridPosition.Floor + 1 < FloorAmount) totalNeighbourList.Add(GetNode(neighbourGridPosition.XPosition, neighbourGridPosition.ZPosition, neighbourGridPosition.Floor + 1)); - } + IEnumerable pathfindingLinkGridPositionList = GetPathfindingLinkConnectedGridPositionList(gridPosition); + totalNeighbourList.AddRange(pathfindingLinkGridPositionList.Select(GetNode)); return totalNeighbourList; } + private IEnumerable GetPathfindingLinkConnectedGridPositionList(GridPosition gridPosition) { + List gridPositionList = new(); + foreach (PathfindingLink pathfindingLink in PathfindingLinkList) { + if (pathfindingLink.GridPositionA == gridPosition) gridPositionList.Add(pathfindingLink.GridPositionB); + if (pathfindingLink.GridPositionB == gridPosition) gridPositionList.Add(pathfindingLink.GridPositionA); + } + + return gridPositionList; + } + private GridSystem GetGridSystem(int floor) { if (floor >= 0 && floor < FloorAmount) return GridSystemList[floor]; Debug.LogError($"Try to access floor {floor} and has only {GridSystemList.Count} GridSystems in list!"); @@ -169,6 +187,7 @@ public class Pathfinding : MonoBehaviour { } private PathNode GetNode(int x, int z, int floor) => GetGridSystem(floor).GetGridObject(new(x, z, floor)); + private PathNode GetNode(GridPosition gridPosition) => GetGridSystem(gridPosition.Floor).GetGridObject(gridPosition); private static List CalculatePath(PathNode endNode) { List pathNodeList = new() { endNode }; diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index f26bfc62..51761dab 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -11,7 +11,7 @@ TagManager: - - Water - UI - - MousePlane + - Floor - Units - Obstacles -