Player-built structures now physically block enemies (husks walked straight through walls before). Dedicated
"Structure" physics layer (slot 9) so the player passes its own walls while enemies are stopped:
- New WorldCollisionConfig.StructureMask, baked from the "Structure" layer in WorldCollisionAuthoring (mirrors
EnvironmentMask). EnemyAISystem ORs it into the movement sweep filter (CollidesWith = envMask | structMask) —
no new system, same 1-2 SphereCasts per enemy.
- Wall/Turret/Pylon prefabs get a cell-sized BoxCollider on the Structure layer (Wall's existing one relayered).
- Physics matrix: Default x Structure unchecked, so the kinematic player CC (Default) passes its own walls while
the enemy's explicit cast still hits them. Despawn frees collision for free (collider dies with the entity).
Play-verified baked filters: StructMask=512; structure colliders BelongsTo=512, CollidesWith=0xFFFFFFFE
(includes Environment for the enemy cast, EXCLUDES bit 0 so the player passes). 389/389 EditMode, no exceptions.
Server-only/static colliders -> deterministic, no client divergence. SaveData stays v5.
Phase C complete (C5-C7). A visual fun-gate (husk stops at wall, player walks through) is the operator's eyes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds com.unity.ai.assistant 2.12.0-pre.2 (+ transitive com.unity.ai.inference 2.6.1 and the com.unity.dt.app-ui EditorBuildSettings config) to the package manifest/lockfile, plus the package's ProjectSettings/Packages/com.unity.ai.assistant/Settings.json. ProjectSettings.asset migrated serializedVersion 28->29 (new iOS thermal-FPS / Android system-bar fields) by the editor. Editor/package tooling only; committed separately from the class-switch dev tool to keep concerns isolated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>