Quick answer: Lower World Velocity Scale to 0.3–0.5 to dampen fast-movement effects on cloth. Set clothTeleportDistance to snap cloth on teleports. Increase solver iterations (6–10) for tighter constraints.
Here is how to fix Unity Cloth simulation stretching on fast movement. Your character has a flowing cape. Walking looks great. Dashing stretches the cape 10 meters behind. Teleporting leaves the cape at the old position for a frame. The cloth simulation receives the full velocity change and its constraint solver cannot keep up.
The Symptom
Cloth vertices stretch far from the character during fast movement, dashes, or teleports. The cloth slowly recovers (snaps back to body) over several frames. During the stretch, the cloth may clip through the character model or other geometry.
What Causes This
Full world velocity applied. Unity’s Cloth component inherits the parent transform’s velocity. A 20 m/s dash applies 20 m/s to every cloth particle. The constraint solver tries to keep particles at their rest lengths but cannot in one iteration.
Low solver iterations. Default solver iterations is 1. Each iteration resolves one pass of distance constraints. Complex cloth with many interconnected particles needs more passes per frame.
No teleport threshold. Without a teleport distance, any movement speed is treated as “normal motion.” A teleport across the map applies as if the character ran there in one frame.
The Fix
Step 1: Reduce World Velocity Scale. Select the Cloth component. Set World Velocity Scale to 0.3–0.5. Now the cloth reacts to only 30–50% of the character’s speed, reducing stretch without removing cloth motion entirely.
Similarly lower World Acceleration Scale to 0.3 to reduce inertial effects.
Step 2: Set teleport thresholds.
Cloth cloth = GetComponent<Cloth>();
cloth.clothTeleportDistance = 0.5f;
cloth.clothTeleportRotation = 30f;
When the root bone moves more than 0.5 m or rotates more than 30° in a single frame, cloth resets instantly to the skinned pose. No stretch, no lag.
Step 3: Increase solver iterations. In the Cloth Inspector, set Solver Frequency to 120 (or higher for very fast movement). More solver steps per second means tighter constraint resolution.
Step 4: Use collision spheres. Add Cloth Sphere Colliders to bones that should block cloth (spine, legs). Without self-collision, stretched cloth passes through the body. Sphere colliders keep the cape on the right side of the character’s back.
Disable Cloth During Dash
For extreme cases, disable cloth simulation during the dash and snap it on resume:
public void OnDashStart()
{
cloth.enabled = false;
}
public void OnDashEnd()
{
cloth.enabled = true;
cloth.ClearTransformMotion();
}
ClearTransformMotion prevents the cloth from receiving the accumulated velocity delta when re-enabled. Without it, re-enabling after a dash causes a single-frame stretch as the cloth sees “I moved 15 meters.”
“Cloth is a physics sim. It does not know about dashes. Tell it to ignore fast motion or snap on teleport.”
Related Issues
For physics jitter, see Unity Physics Jittery Movement. For animation issues during fast motion, Mecanim Root Motion Sliding.
World Velocity Scale 0.3, teleport distance 0.5, solver frequency 120. Cape fixed.