Improve maze start/end placement with dead-end detection

Refactored PlaceStartAndEnd to intelligently place start and end points at dead ends using random selection and distance-based fallbacks. Added EnforceSingleConnection to ensure start/end points have exactly one connection, compatible with U-turn prefabs. Improved MazeReworkSpawner with object hierarchy grouping (Floors, Categories) and made RefreshSingleCell public. Updated maze config and cleaned up scene hierarchy.
This commit is contained in:
2026-07-04 06:51:32 +07:00
parent 6b4a5a8e12
commit 531e28409a
6 changed files with 279 additions and 339 deletions

View File

@@ -1,5 +1,104 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &1697779104191720984
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1895562424247967253}
m_Modifications:
- target: {fileID: 3377181292992421420, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_Name
value: Magic circle 2
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 3220440682565326704, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
insertIndex: -1
addedObject: {fileID: 7916597384863477479}
m_SourcePrefab: {fileID: 100100000, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
--- !u!4 &4039140197731819905 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3423388300971593625, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
m_PrefabInstance: {fileID: 1697779104191720984}
m_PrefabAsset: {fileID: 0}
--- !u!1 &4269118487993547112 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3220440682565326704, guid: 48c5715f9603c3842a353516a8baefbb, type: 3}
m_PrefabInstance: {fileID: 1697779104191720984}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7916597384863477479
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4269118487993547112}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_CustomShadowLayers: 0
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
m_RenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_ShadowRenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_Version: 4
m_LightLayerMask: 1
m_ShadowLayerMask: 1
m_RenderingLayers: 1
m_ShadowRenderingLayers: 1
--- !u!1001 &2818225372865226580
PrefabInstance:
m_ObjectHideFlags: 0
@@ -10,7 +109,7 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 817386962124533542, guid: f147133c37d69764abf51ce8374aed85, type: 3}
propertyPath: m_Name
value: U-Turn
value: End
objectReference: {fileID: 0}
- target: {fileID: 4418658990435547457, guid: f147133c37d69764abf51ce8374aed85, type: 3}
propertyPath: m_LocalPosition.x
@@ -54,6 +153,14 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 4418658990435547457, guid: f147133c37d69764abf51ce8374aed85, type: 3}
insertIndex: -1
addedObject: {fileID: 4039140197731819905}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f147133c37d69764abf51ce8374aed85, type: 3}
--- !u!4 &1895562424247967253 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4418658990435547457, guid: f147133c37d69764abf51ce8374aed85, type: 3}
m_PrefabInstance: {fileID: 2818225372865226580}
m_PrefabAsset: {fileID: 0}