Documentation
Character falling or not moving
Diagnose missing ground, wrong layers, visual misalignment, paused ticks and invalid paths using verified source behavior.
On this page
Goal#
Find the first failing part of the input → path → tick → visual chain without changing unrelated gameplay.
Before you begin#
Record the first Console error and compare your scene with the supplied demo. Inspect the gameplay root and visual child separately.
Exact steps: check in this order#
| Symptom | Check | Expected correction |
|---|---|---|
| Floor visible, but no ground found | Enabled non-trigger Collider; its Unity layer in Ground Mask; ray start height/distance spans it. | Physics ground query can hit the actual floor. A mesh renderer or trigger alone is insufficient. |
| Feet below ground | Compare grounded root/node Y with mesh pivot and visual offset. | Align the child geometry with a foot-level root. This package is not a gravity controller. |
| No click response | Camera reference/MainCamera tag, input handling, controls resource, ray target. | Sample input reaches the intended motor. Current bundled missing-resource error names TileTickControls. |
| Path exists but unit stays still | TickManager active/unpaused; sample UnitBrain attached/subscribed; command queue intact. | Simulation advances as ticks occur. |
| Path request fails | Path Service Behaviour is an active IPathService; GridManager.Instance exists. | Correct service is assigned and start tile is walkable. |
| Every route blocked | Unit/helper colliders accidentally in Blocked Mask; headroom, probes, step/slope limits. | Correct the failing constraint; do not enlarge every limit blindly. |
| Wrong bridge level | Layered surface/node identity and clicked surface; headroom under bridge. | Select the intended NavigationNode rather than only an X/Z tile. |
| Old collisions after editing | Surface cache when colliders change at runtime. | Invalidate deliberately with GridManager.ClearSurfaceCache(). |
Console messages to recognize#
must implement IPathService: wrong Path Service Behaviour component.GridManager.Instance was null: missing/inactive grid or initialization order.No walkable surface at start: inspect ground/masks/start location.No movement toward ... was possible: review traversal constraints and fallback result.
Custom physics and animation#
MovementMotor and UnitViewMotor write transforms in the current build. If a custom prefab also has a dynamic Rigidbody, another motion controller or root-motion integration, investigate conflicting writers. This is a custom-setup check, not a verified built-in gravity defect.
What you should see#
You can identify whether the failure begins at input, ground detection, pathfinding, simulation or presentation. Keep the smallest corrected scene for comparison.
If something goes wrong#
Changing the mesh height cannot fix a missing ground collider; changing ground layers cannot fix a paused tick source. Check each stage separately and keep evidence of the first error.
Next steps#
Rebuild the flat setup or send a reproducible report with version, masks, collider, motor references and first Console error.
